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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa0
mov dword [esp + 0x2c], ecx
lea esi, [esp + 0x58]
mov ecx, esi
mov dword [esp + 0x38], edx
push 1
push 0x5702e5
push dword [ebp + 8]
call fcn.00426a30
add esp, 0xc
cmp dword [esi], 0
je 0x43a6ae
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x6c]
mov esi, edx
not esi
mov ecx, eax
sub ecx, edx
mov dword [esp + 0x34], ecx
mov ebx, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x1c], ecx
mov edi, dword [esp + 0x60]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x64]
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x78]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x44], esi
mov ecx, ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x18], ecx
add ecx, esi
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1c]
add ecx, eax
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 8], edx
mov dword [esp + 0x14], eax
cmp eax, ecx
mov esi, ecx
cmovb esi, eax
cmp ebx, 0xffffffff
cmove esi, eax
mov ebx, ecx
cmove ebx, edx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x50], esi
dec esi
mov dword [esp + 0x24], esi
mov ebx, edi
mov dword [esp + 0x20], ecx
mov edi, ebx
sub edi, edx
cmp edi, dword [esp + 4]
jae 0x43a7c7
mov eax, dword [esp + 0x18]
mov cl, byte [eax + edi]
xor eax, eax
xor esi, esi
inc esi
shld eax, esi, cl
shl esi, cl
test cl, 0x20
cmovne eax, esi
mov ecx, 0
cmovne esi, ecx
and eax, dword [esp + 0x48]
and esi, dword [esp + 0x4c]
or esi, eax
je 0x43a641
mov dword [esp + 0x3c], edi
mov eax, dword [esp + 0x44]
lea edx, [eax + ebx]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x10], ebx
add ebx, eax
mov esi, dword [esp + 0x50]
mov ecx, esi
sub ecx, 1
jb 0x43a5dd
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 8]
jae 0x43a7d7
lea edi, [edx + esi]
cmp edi, dword [esp + 4]
jae 0x43a7e2
mov eax, dword [esp + 0x1c]
mov al, byte [eax + esi - 1]
cmp al, byte [ebx + esi]
mov esi, ecx
je 0x43a591
mov ebx, dword [esp + 0x10]
add ebx, ecx
mov eax, dword [esp + 0x14]
sub ebx, eax
cmp dword [esp + 0xc], 0xffffffff
mov edx, dword [esp + 8]
je 0x43a539
jmp 0x43a65c
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
add ecx, eax
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 8]
cmp eax, dword [esp + 0x54]
jae 0x43a669
cmp eax, edx
jae 0x43a7ef
cmp ecx, dword [esp + 4]
jae 0x43a7ff
mov bl, byte [edi]
inc edi
inc eax
mov esi, dword [esp + 0x18]
cmp bl, byte [esi + ecx]
mov ebx, dword [esp + 0x10]
lea ecx, [ecx + 1]
je 0x43a5f3
sub ebx, dword [esp + 0x28]
cmp dword [esp + 0xc], 0xffffffff
mov eax, dword [esp + 0x14]
je 0x43a539
mov edi, ebx
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0xc]
jmp 0x43a514
mov ebx, dword [esp + 0xc]
cmp ebx, 0xffffffff
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x20]
cmovne ecx, edx
mov eax, dword [esp + 0x14]
jmp 0x43a514
mov edi, ebx
mov ecx, edx
mov ebx, dword [esp + 0xc]
jmp 0x43a514
mov edx, dword [esp + 0x3c]
inc edx
mov ecx, dword [esp + 0x38]
mov eax, edx
mov edx, dword [ebp + 8]
push 0x5279d0
push eax
call fcn.00439dcf
pop ecx
pop ecx
mov esi, eax
mov edi, edx
mov ecx, eax
call fcn.00429180
xor ecx, ecx
test al, 1
jne 0x43a7c9
shr eax, 0x10
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 4], edi
mov word [ecx + 8], ax
mov ecx, esi
jmp 0x43a7c9
mov al, byte [esp + 0x66]
mov byte [esp + 8], al
mov ebx, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x1c], eax
mov al, byte [esp + 0x65]
mov edx, dword [esp + 0x60]
xor esi, esi
dec esi
mov dword [esp + 0x24], ebx
cmp byte [esp + 8], 0
jne 0x43a7c7
mov byte [esp + 4], al
xor al, 1
mov byte [esp + 0x65], al
mov edi, edx
mov ecx, edx
mov edx, ebx
push dword [esp + 0x1c]
call fcn.00439e04
pop ecx
test eax, eax
je 0x43a810
test edx, edx
je 0x43a7ba
mov cl, byte [eax + edx - 1]
test cl, cl
js 0x43a71b
movzx eax, cl
mov edx, edi
jmp 0x43a77b
movzx ebx, byte [eax + edx - 2]
cmp bl, 0xc0
jge 0x43a74d
mov dword [esp + 0x18], ebx
movzx ebx, byte [eax + edx - 3]
mov dword [esp + 0x10], ebx
cmp bl, 0xc0
jge 0x43a754
movzx eax, byte [eax + edx - 4]
and eax, 7
shl eax, 6
mov esi, dword [esp + 0x10]
and esi, 0x3f
or esi, eax
jmp 0x43a75b
and ebx, 0x1f
mov edx, edi
jmp 0x43a76c
mov esi, dword [esp + 0x10]
and esi, 0xf
mov edx, edi
mov ebx, dword [esp + 0x18]
shl esi, 6
and ebx, 0x3f
or ebx, esi
xor esi, esi
dec esi
shl ebx, 6
and cl, 0x3f
movzx eax, cl
or eax, ebx
mov ebx, dword [esp + 0x24]
cmp byte [esp + 4], 0
jne 0x43a66d
cmp eax, 0x110000
je 0x43a7c7
mov ecx, esi
cmp eax, 0x80
jb 0x43a7ad
push 0xfffffffffffffffe
pop ecx
cmp eax, 0x800
jb 0x43a7ad
xor ecx, ecx
cmp eax, 0x10000
setb cl
or ecx, 0xfffffffc
add edx, ecx
mov dword [esp + 0x60], edx
mov al, 1
jmp 0x43a6d7
cmp byte [esp + 4], 0
mov edx, edi
jne 0x43a66d
xor ecx, ecx
mov eax, dword [esp + 0x2c]
mov dword [eax], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp + 8]
push 0x54644c
jmp 0x43a808
mov ecx, edi
mov edx, dword [esp + 4]
push 0x54645c
jmp 0x43a808
mov ecx, dword [esp + 0x14]
cmp ecx, edx
cmovbe ecx, edx
push 0x54642c
jmp 0x43a808
mov edx, dword [esp + 4]
push 0x54643c
call fcn.00506bf0
pop eax
ud2
mov ecx, ebx
mov edx, dword [esp + 0x1c]
push 0x54647c
push edi
push 0
call fcn.005071d0
add esp, 0xc
ud2