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

Disassembly:
push 0xffffffffffffffff
push 0x57187b
mov eax, dword fs:[0]
push eax
sub esp, 0x25c
mov eax, dword [0x641030]
xor eax, esp
mov dword [esp + 0x258], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x641030]
xor eax, esp
push eax
lea eax, [esp + 0x270]
mov dword fs:[0], eax
mov edi, dword [esp + 0x284]
mov eax, dword [esp + 0x290]
mov ebx, dword [esp + 0x28c]
mov esi, ecx
mov ecx, dword [esp + 0x280]
xor ebp, ebp
mov dword [esp + 0x30], ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], ebp
test ecx, ecx
jne 0x43c686
xor al, al
jmp 0x43cbe1
test edi, edi
je 0x43cbdf
mov eax, dword [esp + 0x288]
test eax, eax
je 0x43cbdf
test al, 1
je 0x43c6a9
dec eax
mov dword [esp + 0x288], eax
test eax, eax
je 0x43c67f
call fcn.004a3e00
lea ecx, [esp + 0x40]
mov byte [esp + 0x2b], al
mov dword [esp + 0x24], ebp
mov byte [esp + 0x1f], 1
call fcn.00447240
mov edx, dword [esp + 0x288]
xor eax, eax
mov dword [esp + 0x278], eax
mov dword [esp + 0x18], eax
cmp edx, eax
jbe 0x43c790
cmp byte [esi + 0x81], 0
je 0x43c7ad
lea ecx, [eax + 3]
cmp edx, ecx
jb 0x43c7ad
cmp byte [edi + eax], 0xfd
jne 0x43c7ad
cmp byte [edi + eax + 1], 0xef
jne 0x43c7ad
movzx edi, byte [edi + eax + 2]
add eax, 2
mov dword [esp + 0x18], eax
cmp edi, 6
jae 0x43c76c
inc eax
lea ecx, [edi + eax]
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], ecx
cmp edx, ecx
jb 0x43c76c
test ebp, ebp
je 0x43c753
push ebp
lea edx, [esp + 0x6c]
push edx
mov ecx, ebx
call fcn.00448260
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], 0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
add ecx, eax
push edi
push ecx
mov ecx, ebx
call fcn.00448260
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x18], edx
mov eax, edx
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x288]
cmp eax, edx
jb 0x43c6e4
test ebp, ebp
je 0x43c790
push ebp
lea ecx, [esp + 0x6c]
push ecx
mov ecx, ebx
call fcn.00448260
lea ecx, [esp + 0x40]
mov dword [esp + 0x278], 0xffffffff
call fcn.004479b0
mov al, byte [esp + 0x1f]
jmp 0x43cbe1
cmp byte [esp + 0x2b], 0
je 0x43c805
cmp byte [edi + eax + 1], 0
jne 0x43c805
mov cl, byte [edi + eax]
cmp cl, 0x80
jae 0x43c805
mov byte [esp + ebp + 0x68], cl
inc ebp
mov dword [esp + 0x14], ebp
cmp ebp, 0x200
jb 0x43c7f1
push ebp
lea eax, [esp + 0x6c]
push eax
mov ecx, ebx
call fcn.00448260
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], 0
mov ebp, dword [esp + 0x14]
add eax, 2
mov dword [esp + 0x24], 1
mov dword [esp + 0x18], eax
jmp 0x43c770
mov ecx, dword [esp + 0x20]
movzx edx, byte [edi + eax]
add edi, eax
movzx eax, byte [ecx + eax + 1]
mov ecx, dword [esp + 0x30]
shl eax, 8
or eax, edx
xor edx, edx
div dword [ecx + 0x1c]
mov dword [esp + 0x24], 0
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 0x20]
movzx dx, byte [eax + ecx + 1]
add eax, ecx
movzx ax, byte [eax]
shl dx, 8
or dx, ax
movzx eax, dx
test ax, ax
jne 0x43c86b
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x24], al
je 0x43c929
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x60]
push eax
jmp 0x43c91c
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 0x20]
mov dl, byte [eax + ecx]
add eax, ecx
mov dword [esp + 0x2c], eax
cmp dl, byte [edi]
jne 0x43c90e
mov ebp, dword [esp + 0x18]
mov al, byte [eax + 1]
mov edx, dword [esp + 0x20]
cmp al, byte [edx + ebp + 1]
mov ebp, dword [esp + 0x14]
jne 0x43c90e
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0x20]
mov al, byte [ecx + edx + 2]
add ecx, edx
mov byte [esp + 0x5c], al
mov dword [esp + 0x24], 2
cmp byte [ecx + 4], 0
jne 0x43c904
mov ecx, dword [esp + 0x2c]
mov dl, byte [ecx + 3]
mov byte [esp + 0x5d], dl
test ebp, ebp
je 0x43c8df
push ebp
lea ecx, [esp + 0x6c]
push ecx
mov ecx, ebx
call fcn.00448260
mov dword [esp + 0x14], 0
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
push edx
lea eax, [esp + 0x60]
push eax
mov ecx, ebx
call fcn.00448260
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
add eax, 2
mov dword [esp + 0x18], eax
jmp 0x43c770
mov dword [esp + 0x24], 1
jmp 0x43c8c2
lea eax, [esp + 0x24]
lea ecx, [esp + 0x5c]
push eax
push ecx
mov ecx, dword [esp + 0x38]
push edi
call fcn.004a43e0
cmp dword [esp + 0x24], 0
jne 0x43c8c2
cmp byte [edi], 0
jne 0x43c980
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
cmp byte [edx + eax + 1], 0
jne 0x43c980
mov byte [esp + ebp + 0x68], 0
inc ebp
mov dword [esp + 0x14], ebp
cmp ebp, 0x200
jb 0x43cbcd
push ebp
lea ecx, [esp + 0x6c]
push ecx
mov ecx, ebx
call fcn.00448260
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x14], 0
mov ebp, dword [esp + 0x14]
add eax, 2
mov dword [esp + 0x18], eax
jmp 0x43c770
mov eax, dword [esi + 8]
mov byte [esi + 0x82], 1
test eax, eax
je 0x43cbb4
cmp byte [esi + 0x81], 0
je 0x43cb89
cmp eax, 1
jne 0x43c9f3
cmp dword [esi + 0x10], 0
je 0x43cbb4
test ebp, ebp
je 0x43c9cb
push ebp
lea edx, [esp + 0x6c]
push edx
mov ecx, ebx
call fcn.00448260
mov dword [esp + 0x14], 0
mov ebp, dword [esp + 0x14]
mov eax, dword [esi + 0x10]
push eax
lea ecx, [esi + 0x14]
push ecx
mov ecx, ebx
call fcn.00448260
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
add eax, 2
mov byte [esp + 0x1f], 0
mov dword [esp + 0x18], eax
jmp 0x43c770
cmp eax, 7
jne 0x43ca6d
test ebp, ebp
je 0x43ca11
push ebp
lea edx, [esp + 0x6c]
push edx
mov ecx, ebx
call fcn.00448260
mov dword [esp + 0x14], 0
mov edx, dword [esp + 0x34]
mov ebp, dword [esi + 0x78]
mov ecx, dword [esi + 0x7c]
mov eax, dword [esi + 8]
push edx
push ebx
push 2
push edi
push ebp
mov dword [esp + 0x4c], ecx
push 0x4b0
mov ecx, esi
mov dword [esp + 0x44], eax
mov dword [esi + 8], 0
call fcn.00445640
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x20]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x18]
add eax, 2
mov dword [esi + 0x78], ebp
mov ebp, dword [esp + 0x14]
mov dword [esi + 0x7c], ecx
mov byte [esp + 0x1f], 0
mov dword [esp + 0x18], eax
jmp 0x43c770
cmp eax, 2
jne 0x43cb65
lea ecx, [esp + 0x40]
call fcn.00446f40
mov edx, dword [esi + 8]
mov ecx, dword [esp + 0x34]
mov ebp, dword [esi + 0x78]
mov eax, dword [esi + 0x7c]
push ecx
mov dword [esp + 0x30], edx
lea edx, [esp + 0x44]
push edx
push 2
push edi
push ebp
push 0x4b0
mov ecx, esi
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], eax
mov dword [esi + 8], 0
call fcn.00445640
lea ecx, [esp + 0x40]
call fcn.0051d090
test eax, eax
je 0x43cb37
mov eax, dword [esp + 0x14]
test eax, eax
je 0x43cadf
push eax
lea eax, [esp + 0x6c]
push eax
mov ecx, ebx
call fcn.00448260
mov dword [esp + 0x14], 0
lea ecx, [esp + 0x40]
call fcn.0051d090
push 0x26
mov ecx, ebx
mov ebp, eax
call fcn.00447e40
push 0x23
mov ecx, ebx
call fcn.00447e40
push 0x78
mov ecx, ebx
call fcn.00447e40
xor edi, edi
test ebp, ebp
jle 0x43cb2a
jmp 0x43cb10
push ebx
push 1
push edi
lea ecx, [esp + 0x4c]
call fcn.00446f90
push eax
mov ecx, esi
call fcn.0043c0e0
inc edi
cmp edi, ebp
jl 0x43cb10
push 0x3b
mov ecx, ebx
call fcn.00447e40
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x20]
add eax, 2
mov dword [esi + 0x78], ebp
mov ebp, dword [esp + 0x14]
mov dword [esi + 8], ecx
mov dword [esi + 0x7c], edx
mov byte [esp + 0x1f], 0
mov dword [esp + 0x18], eax
jmp 0x43c770
test ebp, ebp
je 0x43cb82
push ebp
lea eax, [esp + 0x6c]
push eax
mov ecx, ebx
call fcn.00448260
mov dword [esp + 0x14], 0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
push ecx
jmp 0x43cbab
test ebp, ebp
je 0x43cba6
push ebp
lea edx, [esp + 0x6c]
push edx
mov ecx, ebx
call fcn.00448260
mov dword [esp + 0x14], 0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
push eax
push ebx
push edi
mov ecx, esi
call fcn.0043c160
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
add eax, 2
mov byte [esp + 0x1f], 0
mov dword [esp + 0x18], eax
jmp 0x43c770
mov eax, dword [esp + 0x18]
add eax, 2
mov edi, edx
mov dword [esp + 0x18], eax
jmp 0x43c770
mov al, 1
mov ecx, dword [esp + 0x270]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x258]
xor ecx, esp
call fcn.005550b0
add esp, 0x268
ret 0x14