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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x40], ecx
mov ebp, dword [esp + 0xa0]
lea eax, [ecx*4 + 4]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x14]
mov dword [esp + 0x4c], eax
xor edx, edx
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x40df01
xor ebx, ebx
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
jmp 0x40d798
inc ebx
inc edx
cmp dword [esp + 0x40], ebx
jle 0x40d818
mov eax, dword [esp + 0x4c]
lea esi, [eax + edx*4]
lea ecx, [esp + 0x6c]
mov dword [esp + 4], ecx
mov eax, dword [ebp + ebx*4]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
mov dword [esp + 0x3c], edx
call dword [eax + 0xac]
mov dword [esi], eax
mov esi, dword [esp + 0x6c]
cmp esi, 1
mov edx, dword [esp + 0x3c]
jle 0x40d78c
cmp byte [eax], 0x2d
jne 0x40d78c
mov cl, byte [eax + 1]
cmp cl, 0x64
je 0x40d8d4
cmp cl, 0x66
jne 0x40d78c
mov ecx, esi
cmp esi, 8
jle 0x40d7ee
mov ecx, 8
mov edi, 0x5fa2e0
cmp ecx, ecx
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d78c
inc ebx
cmp dword [esp + 0x40], ebx
jle 0x40df42
mov ecx, dword [ebp + ebx*4]
mov dword [esp + 0x5c], ecx
dec edx
inc ebx
inc edx
cmp dword [esp + 0x40], ebx
jg 0x40d798
nop
mov ecx, dword [esp + 0x50]
mov ebp, dword [ecx + 0x30]
test ebp, ebp
je 0x40db3d
xor edi, edi
mov eax, dword [esp + 0x50]
mov ebx, dword [eax + 0x38]
test ebx, ebx
je 0x40d836
inc dword [ebx]
mov ecx, dword [esp + 0x50]
mov esi, dword [ecx + 0x20]
fld qword [ecx + 0x28]
fstp qword [esp + 0x40]
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov dword [esp + 0x3c], edx
call fcn.00405614
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0x5e43e0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.0046c770
test eax, eax
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
je 0x40d90c
call dword [eax + 0x18]
test edi, edi
je 0x40d8b3
mov eax, dword [edi]
dec eax
mov dword [edi], eax
test eax, eax
jle 0x40dbb9
test ebx, ebx
je 0x40d8c4
mov eax, dword [ebx]
dec eax
mov dword [ebx], eax
test eax, eax
jle 0x40db2a
mov eax, 1
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, esi
cmp esi, 6
jle 0x40d8e0
mov ecx, 6
mov edi, 0x5fa2c0
cmp ecx, ecx
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d78c
inc ebx
cmp dword [esp + 0x40], ebx
jle 0x40df16
mov eax, dword [ebp + ebx*4]
mov dword [esp + 0x58], eax
dec edx
jmp 0x40d78c
call dword [eax + 0x18]
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x40d923
cmp byte [eax], 0
je 0x40db9e
mov eax, dword [esp + 0x58]
test eax, eax
je 0x40d97c
lea eax, [esp + 0x6c]
mov dword [esp + 4], eax
mov edx, dword [esp + 0x58]
mov dword [esp], edx
mov eax, dword [0x68bb7c]
call dword [eax + 0x8c]
mov eax, dword [esp + 0x6c]
test eax, eax
jne 0x40dae6
mov dword [esp + 0x58], 0
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 0x34]
test eax, eax
je 0x40d971
mov edx, dword [eax]
dec edx
mov dword [eax], edx
test edx, edx
jle 0x40dedb
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
mov dword [edx + 0x34], ecx
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x40d9d5
lea eax, [esp + 0x6c]
mov dword [esp + 4], eax
mov edx, dword [esp + 0x5c]
mov dword [esp], edx
mov eax, dword [0x68bb7c]
call dword [eax + 0xac]
mov ecx, dword [esp + 0x6c]
test ecx, ecx
jne 0x40dadb
mov dword [esp + 0x5c], 0
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 0x38]
test eax, eax
je 0x40d9ca
mov edx, dword [eax]
dec edx
mov dword [eax], edx
test edx, edx
jle 0x40deee
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x50]
mov dword [edx + 0x38], ecx
mov edx, dword [esp + 0x50]
mov ecx, dword [edx + 0x14]
mov eax, edx
mov edx, dword [edx + 0x10]
call fcn.0040c704
test eax, eax
jne 0x40db65
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x40dd70
cmp ebp, eax
je 0x40dbcc
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x2ec]
test eax, eax
jne 0x40daf1
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x5fa35e
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x320]
mov ebp, eax
test eax, eax
je 0x40d8a2
mov dword [esp + 0xc], 0x5fa360
mov dword [esp + 8], 0x5fa367
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x38c]
test eax, eax
jne 0x40dac0
mov edx, dword [esp + 0x50]
mov ecx, dword [edx + 0x30]
lea eax, [esp + 0x78]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x74]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x70]
mov dword [esp + 8], eax
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [edx + 0x38]
mov dword [esp], eax
mov edx, ebp
mov eax, dword [esp + 0x54]
call fcn.0040c118
test eax, eax
je 0x40dc94
mov dword [esp + 4], ebp
mov dword [esp], 0
mov eax, dword [0x68bb7c]
call dword [eax + 0x14c]
jmp 0x40d8a2
mov edx, dword [esp + 0x5c]
inc dword [edx]
jmp 0x40d9b2
mov edx, dword [esp + 0x58]
inc dword [edx]
jmp 0x40d959
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x36c]
mov dword [esp + 8], 0
mov dword [esp + 4], str.cant_get_image_from_a_file_in_a_safe_interpreter
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x120]
jmp 0x40d8a2
mov dword [esp], ebx
mov eax, dword [0x68bb7c]
call dword [eax + pe_nt_image_headers32]
jmp 0x40d8c4
mov edi, dword [ecx + 0x34]
test edi, edi
je 0x40d829
inc dword [edi]
jmp 0x40d829
mov dword [esp + 4], ebp
mov dword [esp], 0
mov eax, dword [0x68bb7c]
call dword [eax + 0x14c]
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x36c]
mov dword [esp + 8], 0
mov dword [esp + 4], str.not_enough_free_memory_for_image_buffer
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x120]
jmp 0x40d8a2
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x18]
mov edx, dword [esp + 0x50]
mov dword [edx + 0x30], 0
jmp 0x40d923
mov dword [esp], edi
mov eax, dword [0x68bb7c]
call dword [eax + pe_nt_image_headers32]
jmp 0x40d8b3
mov edx, dword [esp + 0x50]
cmp dword [edx + 0x38], ebx
jne 0x40da05
mov edx, dword [esp + 0x50]
fld qword [edx + 0x28]
fldz
fucomp st(1)
fnstsw ax
test ah, 5
je 0x40de9e
fld qword [esp + 0x40]
fucompp
fnstsw ax
and ah, 0x45
xor ah, 0x40
je 0x40de8c
mov edx, dword [esp + 0x50]
or dword [edx + 0xc], 2
mov edx, dword [esp + 0x50]
mov esi, dword [edx + 0x4c]
test esi, esi
je 0x40dc26
nop
mov eax, esi
call fcn.0040cf6c
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x40dc18
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx + 0x14]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [ecx]
mov dword [esp], eax
call fcn.0042e72c
mov edx, dword [esp + 0x50]
and dword [edx + 0xc], 0xfffffffd
test edi, edi
je 0x40dc73
mov eax, dword [edi]
dec eax
mov dword [edi], eax
test eax, eax
jle 0x40dec8
test ebx, ebx
je 0x40dc84
mov eax, dword [ebx]
dec eax
mov dword [ebx], eax
test eax, eax
jle 0x40deb5
mov eax, dword [esp + 0x50]
call fcn.00409394
xor eax, eax
jmp 0x40d8c9
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x50]
call fcn.0040c704
test eax, eax
jne 0x40db4f
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 0x38]
mov edx, dword [esp + 0x78]
test edx, edx
je 0x40dcce
test eax, eax
je 0x40dcce
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x558]
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov edx, dword [esp + 0x74]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov edx, dword [esp + 0x50]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov eax, dword [edx + 0x30]
mov dword [esp + 8], eax
mov dword [esp + 4], ebp
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov eax, dword [esp + 0x7c]
call dword [eax + 0xc]
mov edx, eax
mov dword [esp + 4], ebp
mov dword [esp], 0
mov eax, dword [0x68bb7c]
mov dword [esp + 0x3c], edx
call dword [eax + 0x14c]
mov edx, dword [esp + 0x3c]
test edx, edx
jne 0x40d8a2
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x36c]
mov edx, dword [esp + 0x50]
or dword [edx + 0xc], 2
mov eax, dword [edx + 0x30]
test eax, eax
jne 0x40dbd9
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx + 0x34]
test edx, edx
je 0x40dbd9
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x38]
cmp edi, edx
je 0x40df54
lea eax, [esp + 0x78]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x74]
mov dword [esp + 8], eax
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
lea eax, [esp + 0x7c]
mov dword [esp], eax
mov eax, dword [esp + 0x54]
call fcn.0040c480
test eax, eax
jne 0x40d8a2
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x50]
call fcn.0040c704
test eax, eax
jne 0x40db65
mov edx, dword [esp + 0x50]
mov ebp, dword [edx + 0x38]
mov edx, dword [edx + 0x34]
mov eax, dword [esp + 0x78]
test eax, eax
je 0x40de15
test ebp, ebp
je 0x40de05
mov dword [esp], ebp
mov eax, dword [0x68bb7c]
mov dword [esp + 0x3c], edx
call dword [eax + 0x558]
mov ebp, eax
mov edx, dword [esp + 0x3c]
mov dword [esp], edx
mov eax, dword [0x68bb7c]
call dword [eax + 0x558]
mov edx, eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x50]
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebp
mov dword [esp + 4], edx
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov eax, dword [esp + 0x7c]
call dword [eax + 0x10]
test eax, eax
jne 0x40d8a2
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x36c]
mov edx, dword [esp + 0x50]
or dword [edx + 0xc], 2
jmp 0x40dbd9
mov edx, dword [esp + 0x50]
cmp dword [edx + 0x20], esi
jne 0x40dc03
jmp 0x40dc0b
fstp st(0)
mov dword [edx + 0x28], 0
mov dword [edx + 0x2c], 0x3ff00000
fld1
jmp 0x40dbef
mov dword [esp], ebx
mov eax, dword [0x68bb7c]
call dword [eax + pe_nt_image_headers32]
jmp 0x40dc84
mov dword [esp], edi
mov eax, dword [0x68bb7c]
call dword [eax + pe_nt_image_headers32]
jmp 0x40dc73
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + pe_nt_image_headers32]
jmp 0x40d971
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + pe_nt_image_headers32]
jmp 0x40d9ca
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
jmp 0x40d818
mov dword [esp + 8], 0
mov dword [esp + 4], str.value_for___data__missing
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x120]
mov eax, 1
jmp 0x40d8c9
mov dword [esp + 8], 0
mov dword [esp + 4], str.value_for___format__missing
jmp 0x40df26
cmp ecx, ebx
jne 0x40dd8e
jmp 0x40dbd9