Function at 0x409140
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x100
mov eax, dword [esp + 0x104]
push ebx
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x68], 0x407090
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], str.microdvd
mov dword [esp + 0x74], 0x4071a0
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], str.subrip
mov dword [esp + 0x80], 0x407350
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], str.subviewer
mov dword [esp + 0x8c], 0x406ca0
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], str.sami
mov dword [esp + 0x98], 0x4076d0
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], str.vplayer
mov dword [esp + 0xa4], 0x407800
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], 0x424714
mov dword [esp + 0xb0], 0x407bb0
mov dword [esp + 0xb4], 0x407e00
mov dword [esp + 0xb8], 0x424710
mov dword [esp + 0xbc], 0x407e70
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], str.dunnowhat
mov dword [esp + 0xc8], 0x407f00
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], str.mpsub
mov dword [esp + 0xd4], 0x408090
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], 0x4246f8
mov dword [esp + 0xe0], 0x407540
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe8], str.subviewer_2.0
mov dword [esp + 0xec], 0x408200
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xf4], str.subrip_0.9
mov dword [esp + 0xf8], 0x408360
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], str.jacosub
jne 0x4092cd
xor eax, eax
pop ebx
add esp, 0x100
ret
push esi
push 0x4246d0
push eax
call dword [sym.imp.MSVCR71.dll_fopen]
mov esi, eax
add esp, 8
cmp esi, ebx
mov dword [esp + 0x3c], esi
je 0x409333
lea eax, [esp + 0x48]
push eax
push esi
call fcn.00408b30
mov ecx, dword [esp + 0x50]
add esp, 8
cmp ecx, ebx
mov dword [0x42a2b0], eax
je 0x40930a
fld qword [0x4244b8]
jmp 0x409310
fld qword [0x4246c8]
cmp eax, 0xffffffff
fstp dword [0x42a2a8]
jne 0x40933e
mov ecx, dword [sym.imp.MSVCR71.dll__iob]
add ecx, 0x40
push str.WARN:_Could_not_determine_file_format_n
push ecx
call dword [sym.imp.MSVCR71.dll_fprintf]
add esp, 8
pop esi
xor eax, eax
pop ebx
add esp, 0x100
ret
push ebp
push edi
lea edi, [eax + eax*2]
mov edx, dword [esp + edi*4 + 0x7c]
mov eax, dword [sym.imp.MSVCR71.dll__iob]
lea edi, [esp + edi*4 + 0x74]
push edx
add eax, 0x40
push str.INFO:_Detected_subtitle_file_format:__s_n
push eax
mov dword [esp + 0x48], edi
call dword [sym.imp.MSVCR71.dll_fprintf]
push esi
call dword [sym.imp.MSVCR71.dll_rewind]
mov esi, dword [sym.imp.MSVCR71.dll_malloc]
push 0xa00
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], 0x20
call esi
mov ebp, eax
add esp, 0x14
cmp ebp, ebx
mov dword [esp + 0x34], ebp
je 0x409c34
push 0x50
call esi
mov ecx, dword [edi]
add esp, 4
mov esi, eax
mov dword [0x42b198], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x4c], 0xa00
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
cmp edx, eax
mov dword [esp + 0x20], ebx
jl 0x4093e5
mov edx, eax
mov eax, dword [esp + 0x4c]
add eax, 0x500
push eax
add edx, 0x10
push ebp
mov dword [esp + 0x1c], edx
mov dword [esp + 0x54], eax
call dword [sym.imp.MSVCR71.dll_realloc]
add esp, 8
mov ebp, eax
xor eax, eax
mov ecx, 0x14
mov edi, esi
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x44]
push esi
push eax
call dword [esp + 0x24]
mov esi, eax
add esp, 8
test esi, esi
je 0x409554
cmp esi, 0xffffffff
je 0x409c22
mov eax, dword [0x42b1a4]
test eax, eax
jne 0x40942a
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 4]
test eax, eax
je 0x40942a
push esi
call eax
add esp, 4
test ebx, ebx
je 0x4094f7
mov edx, dword [ebx + ebp - 0x4c]
cmp edx, dword [esi + 4]
jbe 0x4094f7
mov edi, dword [esp + 0x10]
dec edi
js 0x409548
lea eax, [ebx + ebp + 4]
mov edi, edi
mov edx, dword [eax - 0x4c]
mov ecx, dword [eax - 0x50]
mov dword [eax + 4], edx
mov dl, byte [eax - 8]
mov dword [eax], ecx
mov ecx, dword [eax - 0x54]
mov byte [eax + 0x48], dl
xor edx, edx
test ecx, ecx
mov dword [eax - 4], ecx
jle 0x409484
lea ecx, [eax + 8]
mov ebx, dword [ecx - 0x50]
mov dword [ecx], ebx
mov ebx, dword [eax - 0x54]
inc edx
add ecx, 4
cmp edx, ebx
jl 0x409470
mov ebx, dword [esp + 0x20]
test edi, edi
je 0x4094a7
mov ecx, dword [eax - 0xa0]
cmp ecx, dword [esi + 4]
jbe 0x4094a7
dec edi
sub eax, 0x50
test edi, edi
jge 0x409450
inc dword [esp + 0x10]
add ebx, 0x50
jmp 0x4093b2
mov ecx, dword [esi + 4]
lea edx, [edi + edi*4]
shl edx, 4
lea eax, [edx + ebp]
mov dword [eax + 4], ecx
mov edx, dword [esi + 8]
mov dword [eax + 8], edx
mov ecx, dword [esi]
mov dword [eax], ecx
mov dl, byte [esi + 0x4c]
mov byte [eax + 0x4c], dl
lea ecx, [esi + 0xc]
lea edx, [eax + 0xc]
mov edi, 0x10
mov ebx, dword [ecx]
mov dword [edx], ebx
add ecx, 4
add edx, 4
dec edi
jne 0x4094d1
mov ecx, dword [0x42b198]
test ecx, ecx
mov ebx, dword [esp + 0x20]
je 0x409548
mov edx, dword [eax - 0x48]
mov dword [eax + 8], edx
mov dword [eax - 0x48], ecx
jmp 0x40953e
mov eax, dword [esi + 4]
mov dword [ebx + ebp + 4], eax
mov ecx, dword [esi + 8]
mov dword [ebx + ebp + 8], ecx
mov edx, dword [esi]
mov dword [ebx + ebp], edx
mov al, byte [esi + 0x4c]
mov byte [ebx + ebp + 0x4c], al
mov eax, dword [esi]
xor edx, edx
test eax, eax
jle 0x409531
lea ecx, [ebx + ebp + 0xc]
lea eax, [esi + 0xc]
mov edi, dword [eax]
mov dword [ecx], edi
mov edi, dword [esi]
inc edx
add eax, 4
add ecx, 4
cmp edx, edi
jl 0x409520
mov eax, dword [0x42b198]
test eax, eax
je 0x409548
mov dword [ebx + ebp - 0x48], eax
mov dword [0x42b198], 0
inc dword [esp + 0x10]
add ebx, 0x50
jmp 0x4093b2
mov ecx, dword [esp + 0x44]
push ecx
mov dword [esp + 0x38], ebp
call dword [sym.imp.MSVCR71.dll_fclose]
mov esi, dword [esp + 0x14]
mov edx, dword [sym.imp.MSVCR71.dll__iob]
push esi
add edx, 0x40
push str.INFO:_Read__i_subtitles_n
push edx
call dword [sym.imp.MSVCR71.dll_fprintf]
xor edi, edi
add esp, 0x10
cmp esi, edi
jle 0x409c2a
mov eax, dword [0x42a2d0]
cmp eax, 2
je 0x4095cc
cmp eax, edi
je 0x4095a7
mov eax, dword [0x42a2b0]
cmp eax, 0xc
je 0x4095cc
cmp eax, 6
je 0x4095cc
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x118]
push eax
push 1
push ecx
push 0x40c00000
mov eax, esi
mov ecx, ebp
call fcn.00408fd0
add esp, 0x10
jmp 0x409bef
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x118]
push edx
push edi
push eax
push 0x40c00000
mov eax, esi
mov ecx, ebp
call fcn.00408fd0
add esp, 0x10
cmp esi, edi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x48], edi
jle 0x409b80
jmp 0x409610
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x34]
lea ecx, [edx + edx*4]
shl ecx, 4
mov ebp, dword [eax + ecx + 4]
add eax, ecx
mov ecx, dword [eax]
mov ebx, dword [eax + 8]
mov dword [esp + 0x24], ecx
xor ecx, ecx
lea edi, [eax + 8]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x4c]
inc edx
cmp edx, ecx
mov dword [esp + 0x44], edi
mov dword [esp + 0x58], ebx
jge 0x40968e
mov ecx, eax
mov eax, edi
mov edi, dword [esp + 0x24]
mov esi, edx
cmp dword [ecx + 0x54], ebx
jae 0x409686
mov ecx, dword [esp + 0x18]
inc ecx
add eax, 0x50
mov edx, dword [eax - 8]
mov dword [esp + 0x18], ecx
lea ecx, [eax - 8]
add edi, edx
mov edx, dword [eax - 4]
inc esi
cmp edx, ebp
jae 0x409678
mov ebp, edx
mov edx, dword [eax]
cmp edx, ebx
jbe 0x409680
mov ebx, edx
cmp esi, dword [esp + 0x4c]
jl 0x409655
mov dword [esp + 0x58], ebx
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x18]
lea edi, [edi + edi + 1]
lea edx, [edi*4]
push edx
call dword [sym.imp.MSVCR71.dll_malloc]
add esp, 4
test edi, edi
mov dword [esp + 0x5c], eax
jle 0x4096f2
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x24]
shl ebx, 2
mov esi, eax
push ebx
call dword [sym.imp.MSVCR71.dll_malloc]
mov dword [esi], eax
add esp, 4
xor eax, eax
test edi, edi
jle 0x4096e0
mov ecx, dword [esi]
mov dword [ecx + eax*4], 0xffffffff
inc eax
cmp eax, edi
jl 0x4096d2
mov eax, dword [esp + 0x3c]
add esi, 4
dec eax
mov dword [esp + 0x3c], eax
jne 0x4096c0
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 0x10]
lea eax, [edx + edx*4]
shl eax, 2
mov dword [esp + 0x28], eax
lea eax, [edx + edx*4]
mov edx, dword [esp + 0x5c]
shl eax, 4
mov dword [esp + 0x20], 0
lea ecx, [ebp - 1]
mov dword [esp + 0x68], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], edx
mov edi, dword [esp + 0x18]
test edi, edi
mov esi, dword [esp + 0x24]
lea ebp, [ecx + 1]
mov dword [esp + 0x60], ebp
mov dword [esp + 0x40], ebx
jl 0x409762
mov ecx, dword [esp + 0x44]
lea edx, [edi + 1]
nop
mov eax, dword [ecx - 4]
dec eax
cmp eax, ebp
jbe 0x40974c
cmp eax, ebx
jb 0x409756
mov eax, dword [ecx]
cmp eax, ebp
jbe 0x409758
cmp eax, ebx
jae 0x409758
mov ebx, eax
add ecx, 0x50
dec edx
jne 0x409740
mov dword [esp + 0x40], ebx
test edi, edi
mov dword [esp + 0x1c], 0
jl 0x4098c7
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
cmp dword [eax - 4], edx
ja 0x40986d
mov ecx, dword [esp + 0x60]
mov edx, eax
cmp dword [edx], ecx
jbe 0x40986d
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov eax, edx
mov ebp, dword [eax - 8]
lea edi, [ebx + 1]
xor eax, eax
xor dl, dl
or esi, 0xffffffff
test ecx, ecx
mov dword [esp + 0x64], ebp
mov dword [esp + 0x70], edi
je 0x4097f9
xor ecx, ecx
test ebx, ebx
jle 0x4097f9
mov edi, dword [esp + 0x30]
mov edi, edi
mov ebp, dword [esp + 0x2c]
mov ebp, dword [ebp - 4]
cmp dword [ebp + ecx*4], edi
jne 0x4097e8
mov edx, dword [esp + 0x2c]
mov edx, dword [edx]
mov dword [edx + ecx*4], edi
mov dl, 1
inc ecx
cmp ecx, ebx
jl 0x4097d0
test dl, dl
jne 0x40986d
mov ebp, dword [esp + 0x64]
mov edi, dword [esp + 0x70]
xor ecx, ecx
test ebx, ebx
jle 0x409898
mov edx, dword [esp + 0x2c]
mov edx, dword [edx]
lea esp, [esp]
cmp dword [edx], 0xffffffff
jne 0x409818
inc eax
jmp 0x409830
cmp eax, ebp
je 0x409844
test eax, eax
je 0x40982e
cmp eax, ebp
jbe 0x40982e
cmp eax, edi
jae 0x40982e
mov esi, ecx
mov edi, eax
sub esi, eax
xor eax, eax
inc ecx
add edx, 4
cmp ecx, ebx
jl 0x409810
test eax, eax
je 0x409848
cmp eax, ebp
jb 0x409848
cmp eax, edi
jae 0x409848
sub ecx, eax
mov esi, ecx
cmp esi, 0xffffffff
je 0x409898
test ebp, ebp
jbe 0x40986d
mov edx, dword [esp + 0x2c]
lea eax, [esi*4]
mov esi, dword [esp + 0x30]
mov ecx, ebp
mov edi, dword [edx]
mov dword [eax + edi], esi
add eax, 4
dec ecx
jne 0x409862
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
inc eax
add esi, 0x50
inc edx
cmp eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x30], edx
jle 0x409782
jmp 0x4098b7
mov eax, dword [sym.imp.MSVCR71.dll__iob]
add eax, 0x40
push str.WARN:_We_could_not_find_a_suitable_position_for_an_overlapping_subtitle_n
push eax
call dword [sym.imp.MSVCR71.dll_fprintf]
add esp, 8
mov dword [esp + 0x54], 0x11
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x60]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x54]
lea eax, [edx + 1]
cmp eax, esi
jge 0x4098f3
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx]
lea ecx, [ecx + eax*4]
jmp 0x4098e0
cmp dword [ecx], 0xffffffff
je 0x4098ef
mov edx, eax
inc eax
add ecx, 4
cmp eax, esi
jl 0x4098e0
mov dword [esp + 0x54], edx
cmp edx, 0x10
jge 0x409a3d
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
lea edx, [edi + 0x50]
push edx
push eax
call dword [sym.imp.MSVCR71.dll_realloc]
lea edx, [edi + eax]
mov dword [esp + 0x40], eax
xor eax, eax
mov ecx, 0x14
mov edi, edx
rep stosd dword es:[edi], eax
add esp, 8
cmp esi, 0x10
mov byte [edx + 0x4c], al
mov dword [edx + 4], ebp
mov dword [edx + 8], ebx
mov eax, esi
jl 0x409939
mov eax, 0x10
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], ebx
jle 0x4099f3
jmp 0x409950
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
mov eax, dword [edx + ebx*4]
cmp eax, 0xffffffff
je 0x4099c1
mov ecx, dword [esp + 0x34]
lea eax, [eax + eax*4]
shl eax, 4
mov ebp, dword [eax + ecx]
xor esi, esi
test ebp, ebp
jle 0x4099bb
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
add edx, eax
add eax, ebp
lea edi, [ecx + edx*4 + 0xc]
mov dword [esp + 0x30], eax
lea esp, [esp]
mov edx, dword [esp + 0x2c]
mov eax, dword [edx]
mov eax, dword [eax + ebx*4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x34]
lea edx, [esi + ecx*4]
mov ecx, dword [eax + edx*4 + 0xc]
push ecx
call dword [sym.imp.MSVCR71.dll__strdup]
add esp, 4
mov dword [edi], eax
add edi, 4
inc esi
cmp esi, ebp
jl 0x409990
lea ebx, [ebx + ebp - 1]
jmp 0x4099e6
push 0x424604
call dword [sym.imp.MSVCR71.dll__strdup]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x3c]
add edx, ecx
add esp, 4
inc ecx
mov dword [esi + edx*4 + 0xc], eax
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x14]
inc ebx
cmp ebx, eax
jl 0x409950
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x40]
inc ebp
add ebx, 0x50
add edi, 0x14
inc esi
add edx, 4
cmp ecx, eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x28], edi
mov dword [esp + 0x20], esi
mov dword [esp + 0x2c], edx
jae 0x409b10
mov ebx, eax
jmp 0x409721
mov ecx, dword [esp + 0x10]
lea eax, [edi + ecx + 1]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x38]
shl edx, 4
push edx
push eax
call dword [sym.imp.MSVCR71.dll_realloc]
add esp, 8
test edi, edi
mov dword [esp + 0x38], eax
jl 0x409af4
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x44]
lea esi, [esi + esi*4]
shl esi, 4
add esi, eax
inc edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], edx
xor eax, eax
mov ecx, 0x14
mov edi, esi
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [eax - 4]
mov dword [esi + 4], ecx
mov edx, dword [eax]
mov dword [esi + 8], edx
mov ecx, dword [eax - 8]
mov dword [esi], ecx
mov dl, byte [eax + 0x44]
mov eax, ecx
xor ebp, ebp
test eax, eax
mov byte [esi + 0x4c], dl
jle 0x409adb
mov edi, dword [esp + 0x28]
lea ebx, [esi + 0xc]
add edi, 4
lea ebx, [ebx]
mov eax, dword [edi]
push eax
call dword [sym.imp.MSVCR71.dll__strdup]
add esp, 4
mov dword [ebx], eax
mov eax, dword [esi]
inc ebp
add edi, 4
add ebx, 4
cmp ebp, eax
jl 0x409ac0
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
add ecx, 0x50
add esi, 0x50
dec eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], eax
jne 0x409a83
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
lea edx, [eax + ecx + 1]
mov ecx, dword [esp + 0x48]
add ecx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x48], ecx
jmp 0x409b38
mov eax, dword [esp + 0x20]
test eax, eax
jle 0x409b38
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x68]
inc edx
add eax, ecx
mov ecx, dword [esp + 0x20]
jmp 0x409b30
mov dword [eax], edx
add eax, 0x50
dec ecx
jne 0x409b30
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x5c]
mov ebp, dword [sym.imp.MSVCR71.dll_free]
lea edi, [edi + edi + 1]
xor esi, esi
test edi, edi
jle 0x409b5e
mov edx, dword [ebx + esi*4]
push edx
call ebp
add esp, 4
inc esi
cmp esi, edi
jl 0x409b50
push ebx
call ebp
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + ecx + 1]
mov ecx, dword [esp + 0x50]
add esp, 4
cmp eax, ecx
mov dword [esp + 0x48], eax
jl 0x409610
mov eax, dword [esp + 0x6c]
dec eax
js 0x409bd7
mov ecx, dword [esp + 0x34]
lea ebp, [eax + eax*4]
lea ebx, [eax + eax*4]
shl ebp, 4
shl ebx, 2
add ebp, ecx
inc eax
mov dword [esp + 0x1c], eax
mov edi, edi
mov eax, dword [ebp]
dec eax
js 0x409bc6
mov ecx, dword [esp + 0x34]
lea edx, [ebx + eax]
lea esi, [ecx + edx*4 + 0xc]
lea edi, [eax + 1]
mov edx, dword [esi]
push edx
call dword [sym.imp.MSVCR71.dll_free]
add esp, 4
sub esi, 4
dec edi
jne 0x409bb4
mov eax, dword [esp + 0x1c]
sub ebp, 0x50
sub ebx, 0x14
dec eax
mov dword [esp + 0x1c], eax
jne 0x409ba0
mov eax, dword [esp + 0x34]
push eax
call dword [sym.imp.MSVCR71.dll_free]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x14]
add esp, 4
xor edi, edi
cmp ebp, edi
je 0x409c34
push 0x14
call dword [sym.imp.MSVCR71.dll_malloc]
mov ecx, dword [esp + 0x118]
mov edx, dword [esp + 0x54]
add esp, 4
mov dword [eax + 0x10], edi
pop edi
mov dword [eax], ebp
pop ebp
mov dword [eax + 0xc], esi
pop esi
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
pop ebx
add esp, 0x100
ret
test ebp, ebp
mov dword [esp + 0x34], ebp
je 0x409c34
push ebp
call dword [sym.imp.MSVCR71.dll_free]
add esp, 4
pop edi
pop ebp
pop esi
xor eax, eax
pop ebx
add esp, 0x100
ret