	TITLE	footest.c
	.386P
include listing.inc
if @Version gt 510
.model FLAT
else
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
_DATA	SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA	ENDS
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
_BSS	SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS	ENDS
_TLS	SEGMENT DWORD USE32 PUBLIC 'TLS'
_TLS	ENDS
FLAT	GROUP _DATA, CONST, _BSS
	ASSUME	CS: FLAT, DS: FLAT, SS: FLAT
endif
PUBLIC	_test_import
EXTRN	__imp__fn_two_args_import_cdecl:NEAR
EXTRN	__imp__fn_two_args_import_stdcall@8:NEAR
EXTRN	__imp__fn_one_plus_import_cdecl:NEAR
EXTRN	__imp__fn_one_plus_import_stdcall:NEAR
_TEXT	SEGMENT
_i$ = 8
_j$ = 12
_rv$ = -4
_test_import PROC NEAR
; File footest.c
; Line 19
	push	ebp
	mov	ebp, esp
	push	ecx
; Line 20
	mov	DWORD PTR _rv$[ebp], 0
; Line 21
	mov	eax, DWORD PTR _j$[ebp]
	push	eax
	mov	ecx, DWORD PTR _i$[ebp]
	push	ecx
	call	DWORD PTR __imp__fn_two_args_import_cdecl
	add	esp, 8
	mov	edx, DWORD PTR _rv$[ebp]
	add	edx, eax
	mov	DWORD PTR _rv$[ebp], edx
; Line 22
	mov	eax, DWORD PTR _j$[ebp]
	push	eax
	mov	ecx, DWORD PTR _i$[ebp]
	push	ecx
	call	DWORD PTR __imp__fn_two_args_import_stdcall@8
	mov	edx, DWORD PTR _rv$[ebp]
	add	edx, eax
	mov	DWORD PTR _rv$[ebp], edx
; Line 23
	mov	eax, DWORD PTR _j$[ebp]
	push	eax
	mov	ecx, DWORD PTR _i$[ebp]
	push	ecx
	call	DWORD PTR __imp__fn_one_plus_import_cdecl
	add	esp, 8
	mov	edx, DWORD PTR _rv$[ebp]
	add	edx, eax
	mov	DWORD PTR _rv$[ebp], edx
; Line 24
	mov	eax, DWORD PTR _j$[ebp]
	push	eax
	mov	ecx, DWORD PTR _i$[ebp]
	push	ecx
	call	DWORD PTR __imp__fn_one_plus_import_stdcall
	add	esp, 8
	mov	edx, DWORD PTR _rv$[ebp]
	add	edx, eax
	mov	DWORD PTR _rv$[ebp], edx
; Line 25
	mov	eax, DWORD PTR _rv$[ebp]
; Line 26
	mov	esp, ebp
	pop	ebp
	ret	0
_test_import ENDP
_TEXT	ENDS
PUBLIC	_fn_two_args_export_cdecl
PUBLIC	_fn_two_args_export_stdcall@8
PUBLIC	_fn_one_plus_export_cdecl
PUBLIC	_fn_one_plus_export_stdcall
PUBLIC	_test_export
_TEXT	SEGMENT
_i$ = 8
_j$ = 12
_rv$ = -4
_test_export PROC NEAR
; Line 29
	push	ebp
	mov	ebp, esp
	push	ecx
; Line 30
	mov	DWORD PTR _rv$[ebp], 0
; Line 31
	mov	eax, DWORD PTR _j$[ebp]
	push	eax
	mov	ecx, DWORD PTR _i$[ebp]
	push	ecx
	call	_fn_two_args_export_cdecl
	add	esp, 8
	mov	edx, DWORD PTR _rv$[ebp]
	add	edx, eax
	mov	DWORD PTR _rv$[ebp], edx
; Line 32
	mov	eax, DWORD PTR _j$[ebp]
	push	eax
	mov	ecx, DWORD PTR _i$[ebp]
	push	ecx
	call	_fn_two_args_export_stdcall@8
	mov	edx, DWORD PTR _rv$[ebp]
	add	edx, eax
	mov	DWORD PTR _rv$[ebp], edx
; Line 33
	mov	eax, DWORD PTR _j$[ebp]
	push	eax
	mov	ecx, DWORD PTR _i$[ebp]
	push	ecx
	call	_fn_one_plus_export_cdecl
	add	esp, 8
	mov	edx, DWORD PTR _rv$[ebp]
	add	edx, eax
	mov	DWORD PTR _rv$[ebp], edx
; Line 34
	mov	eax, DWORD PTR _j$[ebp]
	push	eax
	mov	ecx, DWORD PTR _i$[ebp]
	push	ecx
	call	_fn_one_plus_export_stdcall
	add	esp, 8
	mov	edx, DWORD PTR _rv$[ebp]
	add	edx, eax
	mov	DWORD PTR _rv$[ebp], edx
; Line 35
	mov	eax, DWORD PTR _rv$[ebp]
; Line 36
	mov	esp, ebp
	pop	ebp
	ret	0
_test_export ENDP
_i$ = 8
_j$ = 12
_fn_two_args_export_cdecl PROC NEAR
; Line 39
	push	ebp
	mov	ebp, esp
; Line 40
	mov	eax, DWORD PTR _i$[ebp]
	add	eax, DWORD PTR _j$[ebp]
; Line 41
	pop	ebp
	ret	0
_fn_two_args_export_cdecl ENDP
_i$ = 8
_j$ = 12
_fn_two_args_export_stdcall@8 PROC NEAR
; Line 44
	push	ebp
	mov	ebp, esp
; Line 45
	mov	eax, DWORD PTR _i$[ebp]
	add	eax, DWORD PTR _j$[ebp]
; Line 46
	pop	ebp
	ret	8
_fn_two_args_export_stdcall@8 ENDP
_i$ = 8
_vlist$ = -4
_fn_one_plus_export_cdecl PROC NEAR
; Line 49
	push	ebp
	mov	ebp, esp
	push	ecx
; Line 51
	lea	eax, DWORD PTR _i$[ebp+4]
	mov	DWORD PTR _vlist$[ebp], eax
; Line 52
	mov	ecx, DWORD PTR _vlist$[ebp]
	add	ecx, 4
	mov	DWORD PTR _vlist$[ebp], ecx
	mov	edx, DWORD PTR _vlist$[ebp]
	mov	eax, DWORD PTR _i$[ebp]
	add	eax, DWORD PTR [edx-4]
; Line 54
	mov	esp, ebp
	pop	ebp
	ret	0
_fn_one_plus_export_cdecl ENDP
_i$ = 8
_vlist$ = -4
_fn_one_plus_export_stdcall PROC NEAR
; Line 57
	push	ebp
	mov	ebp, esp
	push	ecx
; Line 59
	lea	eax, DWORD PTR _i$[ebp+4]
	mov	DWORD PTR _vlist$[ebp], eax
; Line 60
	mov	ecx, DWORD PTR _vlist$[ebp]
	add	ecx, 4
	mov	DWORD PTR _vlist$[ebp], ecx
	mov	edx, DWORD PTR _vlist$[ebp]
	mov	eax, DWORD PTR _i$[ebp]
	add	eax, DWORD PTR [edx-4]
; Line 62
	mov	esp, ebp
	pop	ebp
	ret	0
_fn_one_plus_export_stdcall ENDP
_TEXT	ENDS
PUBLIC	_main
EXTRN	_printf:NEAR
_DATA	SEGMENT
$SG186	DB	'import is %d', 00H
	ORG $+3
$SG187	DB	'export is %d', 00H
_DATA	ENDS
_TEXT	SEGMENT
_main	PROC NEAR
; Line 65
	push	ebp
	mov	ebp, esp
; Line 66
	push	7
	push	5
	call	_test_import
	add	esp, 8
	push	eax
	push	OFFSET FLAT:$SG186
	call	_printf
	add	esp, 8
; Line 67
	push	7
	push	5
	call	_test_export
	add	esp, 8
	push	eax
	push	OFFSET FLAT:$SG187
	call	_printf
	add	esp, 8
; Line 68
	pop	ebp
	ret	0
_main	ENDP
_TEXT	ENDS
END
