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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
xor ecx, ecx
mov dword [esp + 0x24], 1
mov dword [esp + 0x18], ecx
or ebx, 0xffffffff
mov dword [esp + 0x20], ecx
mov eax, dword [edi + 4]
mov dword [esp + 0x10], ecx
mov eax, dword [eax]
mov dword [esp + 0x14], eax
movsx eax, word [eax + 8]
sub eax, ecx
je 0x40bf27
sub eax, 1
je 0x450474
sub eax, 0x32
jne 0x4503eb
push edi
mov ecx, esi
call fcn.0040dfd0
lea ecx, [esp + 0x18]
call fcn.0040cfa0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push dword [ebp + 0xc]
mov ecx, esi
push edi
call fcn.0040dd50
test ebx, ebx
js 0x40bf15
jmp 0x45048e
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb4
push ebx
mov ebx, dword [ebp + 0xc]
or al, 0x56
mov esi, dword [ebp + 0x10]
push edi
mov eax, dword [ebx + 4]
mov edi, ecx
sub esp, 0x10
mov dword [esp + 0x1c], edi
mov edx, dword [esi]
mov dword [esp + 0x3c], 3
mov eax, dword [eax + edx*4]
mov edx, esp
movsx ecx, word [eax + 0xa]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov eax, dword [ecx + 0xc]
lea ecx, [edi + 0x13c]
mov dword [edx + 0xc], eax
inc dword [eax]
call fcn.0040adf0
mov dword [esp + 0x5c], eax
test eax, eax
je 0x4504b6
mov eax, dword [edi + 0x150]
mov ecx, dword [esi]
mov dword [esp + 0x84], eax
inc ecx
xor eax, eax
mov dword [esp + 0x7c], 1
mov dword [esp + 0x70], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x54], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x60], 0x49cc38
mov dword [esp + 0x48], 0x49cc3c
mov dword [esi], ecx
mov eax, dword [eax + ecx*4]
cmp word [eax + 8], 0x47
jne 0x4504ce
lea eax, [esp + 0x10]
mov dword [esp + 0x1c], ecx
push eax
lea eax, [esp + 0x20]
mov dword [esp + 0x14], ecx
push eax
push esi
push ebx
mov ecx, edi
call fcn.0040ac91
test eax, eax
js 0x450a2d
mov ecx, dword [esp + 0x5c]
mov eax, dword [ecx + 0x10]
cmp eax, dword [0x4d23a0]
jg 0x4504e0
test eax, eax
jle 0x4504e0
shl eax, 4
add eax, dword [0x4d23dc]
mov esi, dword [eax + 4]
mov dword [esp + 0x34], eax
mov eax, dword [esi]
cmp word [eax + 8], 0
jne 0x40c07e
or dword [ebx - 0x7bf0d4c8], eax
imul eax, dword [esp + eax], 0x3b8
add byte [ebx + 0x33102454], cl
fstp xword [ecx]
pop ecx
adc al, 0x8b
clc
cmp dword [eax], 0x2b
je 0x4504e7
mov eax, 3
mov edx, dword [esp + 0x10]
xor ebx, ebx
cmp dword [ecx + 0x14], ebx
mov edi, eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ebx
jg 0x40c670
and al, 0x24
sti
inc dword [ebp + 0x6b840fc9]
mov eax, 0xf0e9fffb
mov eax, 0xe883fffb
add dword [edx + ebp*2 - 0x7d], esi
call 0x83637806
call 0x17c91354
mov ebx, 0x8d53fffb
inc esp
and al, 0x1c
mov ecx, esi
push eax
lea eax, [esp + 0x18]
push eax
push edi
call fcn.0040ec4f
jmp 0x450496
inc esp
and al, 0x18
push eax
push edi
push ecx
mov ecx, esi
call fcn.0040bf4f
jmp 0x450496
push ecx
mov ecx, esi
call fcn.0041131f
mov ebx, eax
jmp 0x40bf41
push eax
push 0x72
mov ecx, esi
call fcn.004735ab
jmp 0x40bf24
add byte [eax], al
call fcn.004735ab
or eax, 0xffffffff
jmp 0x40c3c9
sbb byte [ebx - 0x17909531], cl
sal dword [eax], 2
xor byte [edx], al
add cl, ch
dec ebp
add eax, 0xc0330000
jmp 0x40c074