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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x88
lea esi, [esp + 0x40]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], edx
mov ecx, esi
push 1
push 0x57ff0d
push dword [ebp + 8]
call fcn.0041e660
add esp, 0xc
cmp dword [esi], 0
je 0x431af8
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x64]
mov esi, edx
mov dword [esp + 0x14], edx
sub edx, eax
mov dword [esp + 0x10], ecx
sub ecx, eax
mov dword [esp], eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x74]
neg esi
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x48]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x58]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x20], esi
mov dword [esp + 0xc], edx
mov edx, ecx
mov eax, edx
sub edx, dword [esp]
cmp edx, dword [esp + 4]
jae 0x431bf5
mov dword [esp + 8], eax
mov eax, dword [esp + 0x10]
xor esi, esi
xor edi, edi
inc edi
mov cl, byte [eax + edx]
mov eax, 0
shld esi, edi, cl
shl edi, cl
test cl, 0x20
cmovne esi, edi
cmovne edi, eax
and esi, dword [esp + 0x38]
and edi, dword [esp + 0x3c]
or edi, esi
je 0x431a2a
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 8]
cmp eax, edi
cmovb edi, eax
cmp ebx, 0xffffffff
lea ebx, [esi + ecx]
cmove edi, eax
dec edi
mov ecx, edi
cmp ecx, 0xffffffff
je 0x431a35
cmp edi, dword [esp]
jae 0x431c05
lea esi, [edx + ecx]
cmp esi, dword [esp + 4]
jae 0x431c0f
mov eax, dword [esp + 0x18]
lea esi, [ecx - 1]
mov al, byte [eax + ecx]
cmp al, byte [ebx + ecx]
mov ecx, esi
je 0x4319e1
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x1c]
mov eax, ecx
sub eax, dword [esp + 0x14]
cmp ebx, 0xffffffff
lea edx, [eax + esi + 1]
je 0x431982
jmp 0x431aa3
cmp ebx, 0xffffffff
je 0x431982
jmp 0x431a9f
cmp dword [esp + 0x1c], 0xffffffff
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
cmove edi, dword [esp]
add ecx, eax
cmp ebx, edi
jae 0x431ab7
cmp ebx, dword [esp]
jae 0x431c25
cmp ecx, dword [esp + 4]
jae 0x431c38
mov eax, dword [esp + 0x18]
mov al, byte [eax + ebx]
inc ebx
cmp al, byte [esi + ecx]
lea ecx, [ecx + 1]
je 0x431a54
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x1c]
sub ecx, dword [esp + 0x20]
cmp ebx, 0xffffffff
mov edx, ecx
je 0x431982
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
jmp 0x431980
mov ecx, edx
jmp 0x431aab
add ecx, dword [esp + 0x28]
lea ecx, [esi + ecx + 1]
mov eax, dword [esp]
mov dword [esp + 0xc], eax
jmp 0x431980
mov esi, edx
mov ecx, dword [esp + 0x30]
mov edx, dword [ebp + 8]
inc esi
push 0x5273b0
push esi
call fcn.0042e034
pop ecx
pop ecx
mov ecx, eax
mov esi, eax
mov edi, edx
call fcn.0041fdc0
mov edx, dword [esp + 0x24]
xor ecx, ecx
test al, 1
jne 0x431bfb
mov ecx, esi
shr eax, 0x10
mov dword [edx + 4], edi
mov word [edx + 8], ax
jmp 0x431bfb
mov al, byte [esp + 0x4e]
mov edi, dword [esp + 0x74]
mov esi, dword [esp + 0x48]
mov byte [esp], al
mov eax, dword [esp + 0x70]
mov dword [esp + 0x18], edi
mov dword [esp + 4], eax
mov al, byte [esp + 0x4d]
cmp byte [esp], 0
jne 0x431bf5
mov edx, dword [esp + 4]
mov ebx, eax
xor al, 1
mov ecx, esi
mov byte [esp + 0x4d], al
push edi
call fcn.0042e05f
pop ecx
test eax, eax
je 0x431c49
test edx, edx
je 0x431bed
mov bh, byte [eax + edx - 1]
test bh, bh
js 0x431b53
movzx eax, bh
jmp 0x431bae
movzx ecx, byte [eax + edx - 2]
mov edi, ecx
cmp cl, 0xc0
jge 0x431b87
movzx ecx, byte [eax + edx - 3]
mov dword [esp + 8], edi
cmp cl, 0xc0
mov dword [esp + 0x10], ecx
jge 0x431b8c
movzx eax, byte [eax + edx - 4]
mov edx, dword [esp + 0x10]
and eax, 7
and edx, 0x3f
shl eax, 6
or edx, eax
jmp 0x431b93
and edi, 0x1f
jmp 0x431b9f
mov edx, dword [esp + 0x10]
and edx, 0xf
mov edi, dword [esp + 8]
shl edx, 6
and edi, 0x3f
or edi, edx
and bh, 0x3f
shl edi, 6
movzx eax, bh
or eax, edi
mov edi, dword [esp + 0x18]
test bl, bl
jne 0x431ab9
cmp eax, 0x110000
je 0x431bf5
cmp eax, 0x80
mov ecx, 0xffffffff
jb 0x431be0
cmp eax, 0x800
push 0xfffffffffffffffe
pop ecx
jb 0x431be0
xor ecx, ecx
cmp eax, 0x10000
setb cl
or ecx, 0xfffffffc
add esi, ecx
mov al, 1
mov dword [esp + 0x48], esi
jmp 0x431b17
test bl, bl
jne 0x431ab9
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov dword [edx], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp]
push 0x526cbc
jmp 0x431c41
mov eax, dword [esp + 8]
mov edx, dword [esp + 4]
sub eax, dword [esp]
add eax, ecx
mov ecx, eax
push 0x526ccc
jmp 0x431c41
mov edx, dword [esp]
mov ecx, dword [esp + 0x14]
cmp ecx, edx
cmovbe ecx, edx
push 0x526cdc
jmp 0x431c41
mov edx, dword [esp + 4]
push 0x526cec
call fcn.0050d500
pop eax
ud2
mov ecx, dword [esp + 4]
mov edx, edi
push 0x526dec
push esi
push 0
call fcn.0050d950
add esp, 0xc
ud2