; Listing generated by Microsoft (R) Optimizing Compiler Version 18.00.20617.1 

	TITLE	C:\Beefy\BeefySysLib\third_party\libffi\src\java_raw_api.c
	.686P
	.XMM
	include listing.inc
	.model	flat

INCLUDELIB LIBCMTD
INCLUDELIB OLDNAMES

PUBLIC	_ffi_java_ptrarray_to_raw
PUBLIC	_ffi_java_raw_to_ptrarray
PUBLIC	_ffi_java_raw_size
EXTRN	_memcpy:PROC
EXTRN	_abort:PROC
EXTRN	__fltused:DWORD
; Function compile flags: /Odtp
_TEXT	SEGMENT
_at$ = -16						; size = 4
_i$ = -12						; size = 4
tv72 = -8						; size = 4
_result$ = -4						; size = 4
_cif$ = 8						; size = 4
_ffi_java_raw_size PROC
; File c:\beefy\beefysyslib\third_party\libffi\src\java_raw_api.c
; Line 46
	push	ebp
	mov	ebp, esp
	sub	esp, 16					; 00000010H
; Line 47
	mov	DWORD PTR _result$[ebp], 0
; Line 50
	mov	eax, DWORD PTR _cif$[ebp]
	mov	ecx, DWORD PTR [eax+8]
	mov	DWORD PTR _at$[ebp], ecx
; Line 52
	mov	edx, DWORD PTR _cif$[ebp]
	mov	eax, DWORD PTR [edx+4]
	sub	eax, 1
	mov	DWORD PTR _i$[ebp], eax
	jmp	SHORT $LN8@ffi_java_r
$LN7@ffi_java_r:
	mov	ecx, DWORD PTR _i$[ebp]
	sub	ecx, 1
	mov	DWORD PTR _i$[ebp], ecx
	mov	edx, DWORD PTR _at$[ebp]
	add	edx, 4
	mov	DWORD PTR _at$[ebp], edx
$LN8@ffi_java_r:
	cmp	DWORD PTR _i$[ebp], 0
	jl	SHORT $LN6@ffi_java_r
; Line 54
	mov	eax, DWORD PTR _at$[ebp]
	mov	ecx, DWORD PTR [eax]
	movzx	edx, WORD PTR [ecx+6]
	mov	DWORD PTR tv72[ebp], edx
	mov	eax, DWORD PTR tv72[ebp]
	sub	eax, 3
	mov	DWORD PTR tv72[ebp], eax
	cmp	DWORD PTR tv72[ebp], 10			; 0000000aH
	ja	SHORT $LN1@ffi_java_r
	mov	ecx, DWORD PTR tv72[ebp]
	movzx	edx, BYTE PTR $LN11@ffi_java_r[ecx]
	jmp	DWORD PTR $LN12@ffi_java_r[edx*4]
$LN3@ffi_java_r:
; Line 58
	mov	eax, DWORD PTR _result$[ebp]
	add	eax, 8
	mov	DWORD PTR _result$[ebp], eax
; Line 59
	jmp	SHORT $LN4@ffi_java_r
$LN2@ffi_java_r:
; Line 62
	call	_abort
$LN1@ffi_java_r:
; Line 64
	mov	ecx, DWORD PTR _result$[ebp]
	add	ecx, 4
	mov	DWORD PTR _result$[ebp], ecx
$LN4@ffi_java_r:
; Line 66
	jmp	SHORT $LN7@ffi_java_r
$LN6@ffi_java_r:
; Line 68
	mov	eax, DWORD PTR _result$[ebp]
$LN10@ffi_java_r:
; Line 69
	mov	esp, ebp
	pop	ebp
	ret	0
	npad	2
$LN12@ffi_java_r:
	DD	$LN3@ffi_java_r
	DD	$LN2@ffi_java_r
	DD	$LN1@ffi_java_r
$LN11@ffi_java_r:
	DB	0
	DB	2
	DB	2
	DB	2
	DB	2
	DB	2
	DB	2
	DB	2
	DB	0
	DB	0
	DB	1
_ffi_java_raw_size ENDP
_TEXT	ENDS
; Function compile flags: /Odtp
_TEXT	SEGMENT
_i$ = -12						; size = 4
_tp$ = -8						; size = 4
tv72 = -4						; size = 4
_cif$ = 8						; size = 4
_raw$ = 12						; size = 4
_args$ = 16						; size = 4
_ffi_java_raw_to_ptrarray PROC
; File c:\beefy\beefysyslib\third_party\libffi\src\java_raw_api.c
; Line 74
	push	ebp
	mov	ebp, esp
	sub	esp, 12					; 0000000cH
; Line 76
	mov	eax, DWORD PTR _cif$[ebp]
	mov	ecx, DWORD PTR [eax+8]
	mov	DWORD PTR _tp$[ebp], ecx
; Line 80
	mov	DWORD PTR _i$[ebp], 0
	jmp	SHORT $LN9@ffi_java_r
$LN8@ffi_java_r:
	mov	edx, DWORD PTR _i$[ebp]
	add	edx, 1
	mov	DWORD PTR _i$[ebp], edx
	mov	eax, DWORD PTR _tp$[ebp]
	add	eax, 4
	mov	DWORD PTR _tp$[ebp], eax
	mov	ecx, DWORD PTR _args$[ebp]
	add	ecx, 4
	mov	DWORD PTR _args$[ebp], ecx
$LN9@ffi_java_r:
	mov	edx, DWORD PTR _cif$[ebp]
	mov	eax, DWORD PTR _i$[ebp]
	cmp	eax, DWORD PTR [edx+4]
	jae	$LN10@ffi_java_r
; Line 82
	mov	ecx, DWORD PTR _tp$[ebp]
	mov	edx, DWORD PTR [ecx]
	movzx	eax, WORD PTR [edx+6]
	mov	DWORD PTR tv72[ebp], eax
	mov	ecx, DWORD PTR tv72[ebp]
	sub	ecx, 5
	mov	DWORD PTR tv72[ebp], ecx
	cmp	DWORD PTR tv72[ebp], 9
	ja	SHORT $LN1@ffi_java_r
	mov	edx, DWORD PTR tv72[ebp]
	movzx	eax, BYTE PTR $LN12@ffi_java_r[edx]
	jmp	DWORD PTR $LN13@ffi_java_r[eax*4]
$LN4@ffi_java_r:
; Line 86
	mov	ecx, DWORD PTR _raw$[ebp]
	add	ecx, 3
	mov	edx, DWORD PTR _args$[ebp]
	mov	DWORD PTR [edx], ecx
	mov	eax, DWORD PTR _raw$[ebp]
	add	eax, 4
	mov	DWORD PTR _raw$[ebp], eax
; Line 87
	jmp	SHORT $LN5@ffi_java_r
$LN3@ffi_java_r:
; Line 91
	mov	ecx, DWORD PTR _raw$[ebp]
	add	ecx, 2
	mov	edx, DWORD PTR _args$[ebp]
	mov	DWORD PTR [edx], ecx
	mov	eax, DWORD PTR _raw$[ebp]
	add	eax, 4
	mov	DWORD PTR _raw$[ebp], eax
; Line 92
	jmp	SHORT $LN5@ffi_java_r
$LN2@ffi_java_r:
; Line 104
	mov	ecx, DWORD PTR _raw$[ebp]
	mov	edx, DWORD PTR _args$[ebp]
	mov	DWORD PTR [edx], ecx
	mov	eax, DWORD PTR _raw$[ebp]
	add	eax, 4
	mov	DWORD PTR _raw$[ebp], eax
; Line 105
	jmp	SHORT $LN5@ffi_java_r
$LN1@ffi_java_r:
; Line 108
	mov	ecx, DWORD PTR _args$[ebp]
	mov	edx, DWORD PTR _raw$[ebp]
	mov	DWORD PTR [ecx], edx
; Line 110
	mov	eax, DWORD PTR _tp$[ebp]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [ecx]
	sub	edx, 1
	or	edx, 3
	add	edx, 1
	shr	edx, 2
	mov	eax, DWORD PTR _raw$[ebp]
	lea	ecx, DWORD PTR [eax+edx*4]
	mov	DWORD PTR _raw$[ebp], ecx
$LN5@ffi_java_r:
; Line 112
	jmp	$LN8@ffi_java_r
$LN10@ffi_java_r:
; Line 144
	mov	esp, ebp
	pop	ebp
	ret	0
	npad	2
$LN13@ffi_java_r:
	DD	$LN4@ffi_java_r
	DD	$LN3@ffi_java_r
	DD	$LN2@ffi_java_r
	DD	$LN1@ffi_java_r
$LN12@ffi_java_r:
	DB	0
	DB	0
	DB	1
	DB	1
	DB	3
	DB	3
	DB	3
	DB	3
	DB	3
	DB	2
_ffi_java_raw_to_ptrarray ENDP
_TEXT	ENDS
; Function compile flags: /Odtp
_TEXT	SEGMENT
_i$ = -12						; size = 4
tv72 = -8						; size = 4
_tp$ = -4						; size = 4
_cif$ = 8						; size = 4
_args$ = 12						; size = 4
_raw$ = 16						; size = 4
_ffi_java_ptrarray_to_raw PROC
; File c:\beefy\beefysyslib\third_party\libffi\src\java_raw_api.c
; Line 148
	push	ebp
	mov	ebp, esp
	sub	esp, 12					; 0000000cH
; Line 150
	mov	eax, DWORD PTR _cif$[ebp]
	mov	ecx, DWORD PTR [eax+8]
	mov	DWORD PTR _tp$[ebp], ecx
; Line 152
	mov	DWORD PTR _i$[ebp], 0
	jmp	SHORT $LN14@ffi_java_p
$LN13@ffi_java_p:
	mov	edx, DWORD PTR _i$[ebp]
	add	edx, 1
	mov	DWORD PTR _i$[ebp], edx
	mov	eax, DWORD PTR _tp$[ebp]
	add	eax, 4
	mov	DWORD PTR _tp$[ebp], eax
	mov	ecx, DWORD PTR _args$[ebp]
	add	ecx, 4
	mov	DWORD PTR _args$[ebp], ecx
$LN14@ffi_java_p:
	mov	edx, DWORD PTR _cif$[ebp]
	mov	eax, DWORD PTR _i$[ebp]
	cmp	eax, DWORD PTR [edx+4]
	jae	$LN12@ffi_java_p
; Line 154
	mov	ecx, DWORD PTR _tp$[ebp]
	mov	edx, DWORD PTR [ecx]
	movzx	eax, WORD PTR [edx+6]
	mov	DWORD PTR tv72[ebp], eax
	mov	ecx, DWORD PTR tv72[ebp]
	sub	ecx, 2
	mov	DWORD PTR tv72[ebp], ecx
	cmp	DWORD PTR tv72[ebp], 12			; 0000000cH
	ja	$LN1@ffi_java_p
	mov	edx, DWORD PTR tv72[ebp]
	jmp	DWORD PTR $LN17@ffi_java_p[edx*4]
$LN9@ffi_java_p:
; Line 158
	mov	eax, DWORD PTR _args$[ebp]
	mov	ecx, DWORD PTR [eax]
	movzx	edx, BYTE PTR [ecx]
	mov	eax, DWORD PTR _raw$[ebp]
	mov	DWORD PTR [eax], edx
	mov	ecx, DWORD PTR _raw$[ebp]
	add	ecx, 4
	mov	DWORD PTR _raw$[ebp], ecx
; Line 162
	jmp	$LN10@ffi_java_p
$LN8@ffi_java_p:
; Line 166
	mov	edx, DWORD PTR _args$[ebp]
	mov	eax, DWORD PTR [edx]
	movsx	ecx, BYTE PTR [eax]
	mov	edx, DWORD PTR _raw$[ebp]
	mov	DWORD PTR [edx], ecx
	mov	eax, DWORD PTR _raw$[ebp]
	add	eax, 4
	mov	DWORD PTR _raw$[ebp], eax
; Line 170
	jmp	$LN10@ffi_java_p
$LN7@ffi_java_p:
; Line 174
	mov	ecx, DWORD PTR _args$[ebp]
	mov	edx, DWORD PTR [ecx]
	movzx	eax, WORD PTR [edx]
	mov	ecx, DWORD PTR _raw$[ebp]
	mov	DWORD PTR [ecx], eax
	mov	edx, DWORD PTR _raw$[ebp]
	add	edx, 4
	mov	DWORD PTR _raw$[ebp], edx
; Line 178
	jmp	$LN10@ffi_java_p
$LN6@ffi_java_p:
; Line 182
	mov	eax, DWORD PTR _args$[ebp]
	mov	ecx, DWORD PTR [eax]
	movsx	edx, WORD PTR [ecx]
	mov	eax, DWORD PTR _raw$[ebp]
	mov	DWORD PTR [eax], edx
	mov	ecx, DWORD PTR _raw$[ebp]
	add	ecx, 4
	mov	DWORD PTR _raw$[ebp], ecx
; Line 186
	jmp	$LN10@ffi_java_p
$LN5@ffi_java_p:
; Line 190
	mov	edx, DWORD PTR _args$[ebp]
	mov	eax, DWORD PTR [edx]
	mov	ecx, DWORD PTR _raw$[ebp]
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR [ecx], edx
	mov	eax, DWORD PTR _raw$[ebp]
	add	eax, 4
	mov	DWORD PTR _raw$[ebp], eax
; Line 194
	jmp	SHORT $LN10@ffi_java_p
$LN4@ffi_java_p:
; Line 198
	mov	ecx, DWORD PTR _args$[ebp]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR _raw$[ebp]
	mov	ecx, DWORD PTR [edx]
	mov	DWORD PTR [eax], ecx
	mov	edx, DWORD PTR _raw$[ebp]
	add	edx, 4
	mov	DWORD PTR _raw$[ebp], edx
; Line 202
	jmp	SHORT $LN10@ffi_java_p
$LN3@ffi_java_p:
; Line 205
	mov	eax, DWORD PTR _args$[ebp]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR _raw$[ebp]
	mov	eax, DWORD PTR [ecx]
	mov	DWORD PTR [edx], eax
	mov	ecx, DWORD PTR _raw$[ebp]
	add	ecx, 4
	mov	DWORD PTR _raw$[ebp], ecx
; Line 206
	jmp	SHORT $LN10@ffi_java_p
$LN2@ffi_java_p:
; Line 218
	mov	edx, DWORD PTR _args$[ebp]
	mov	eax, DWORD PTR [edx]
	mov	ecx, DWORD PTR _raw$[ebp]
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR [ecx], edx
	mov	eax, DWORD PTR _raw$[ebp]
	add	eax, 4
	mov	DWORD PTR _raw$[ebp], eax
; Line 219
	jmp	SHORT $LN10@ffi_java_p
$LN1@ffi_java_p:
; Line 225
	mov	ecx, DWORD PTR _tp$[ebp]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx]
	push	eax
	mov	ecx, DWORD PTR _args$[ebp]
	mov	edx, DWORD PTR [ecx]
	push	edx
	mov	eax, DWORD PTR _raw$[ebp]
	push	eax
	call	_memcpy
	add	esp, 12					; 0000000cH
; Line 227
	mov	ecx, DWORD PTR _tp$[ebp]
	mov	edx, DWORD PTR [ecx]
	mov	eax, DWORD PTR [edx]
	sub	eax, 1
	or	eax, 3
	add	eax, 1
	shr	eax, 2
	mov	ecx, DWORD PTR _raw$[ebp]
	lea	edx, DWORD PTR [ecx+eax*4]
	mov	DWORD PTR _raw$[ebp], edx
$LN10@ffi_java_p:
; Line 230
	jmp	$LN13@ffi_java_p
$LN12@ffi_java_p:
; Line 231
	mov	esp, ebp
	pop	ebp
	ret	0
	npad	2
$LN17@ffi_java_p:
	DD	$LN3@ffi_java_p
	DD	$LN1@ffi_java_p
	DD	$LN1@ffi_java_p
	DD	$LN9@ffi_java_p
	DD	$LN8@ffi_java_p
	DD	$LN7@ffi_java_p
	DD	$LN6@ffi_java_p
	DD	$LN5@ffi_java_p
	DD	$LN4@ffi_java_p
	DD	$LN1@ffi_java_p
	DD	$LN1@ffi_java_p
	DD	$LN1@ffi_java_p
	DD	$LN2@ffi_java_p
_ffi_java_ptrarray_to_raw ENDP
_TEXT	ENDS
END
