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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x90
mov edi, edx
lea esi, [esp + 0x48]
mov dword [esp + 0x1c], ecx
mov ecx, esi
push 1
push 0x52d8ca
push dword [ebp + 8]
call fcn.004084e0
add esp, 0xc
cmp dword [esi], 0
je 0x41806b
mov esi, dword [esp + 0x68]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x18], edi
mov ecx, esi
mov dword [esp + 4], edx
mov dword [esp + 0xc], eax
sub ecx, edx
cmp ecx, eax
jae 0x4181b6
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0x50]
mov edx, dword [esp + 0x5c]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x20], edx
cmp edx, eax
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x60]
cmova eax, edx
mov dword [esp + 0x28], eax
sub eax, edx
mov dword [esp + 0x38], eax
mov eax, edx
neg eax
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x14], ebx
xor ebx, ebx
mov dword [esp + 0x44], eax
add eax, edx
inc ebx
mov dword [esp + 0x30], eax
mov edx, ecx
mov cl, byte [edi + ecx]
xor eax, eax
mov dword [esp + 0x24], esi
mov esi, ebx
shld eax, ebx, cl
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, esi
cmovne esi, ecx
and eax, dword [esp + 0x3c]
and esi, dword [esp + 0x40]
or esi, eax
je 0x417fc3
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
mov dword [esp + 8], edx
cmp eax, esi
cmovb esi, eax
cmp dword [esp + 0x10], 0xffffffff
cmove esi, eax
lea eax, [esi - 1]
sub esi, 1
jb 0x417fec
cmp eax, dword [esp + 4]
jae 0x4181ce
mov ecx, dword [esp + 8]
add ecx, esi
cmp ecx, dword [esp + 0xc]
jae 0x4181de
mov edx, dword [esp + 0x44]
mov dl, byte [edx + esi]
cmp dl, byte [edi + ecx]
je 0x417f87
add esi, dword [esp + 0x24]
mov eax, dword [esp + 4]
sub esi, dword [esp + 0x20]
jmp 0x41804b
cmp dword [esp + 0x10], 0xffffffff
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x14]
mov esi, edx
cmovne ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, edx
sub ecx, eax
cmp ecx, dword [esp + 0xc]
jb 0x417f3f
jmp 0x4181b6
cmp dword [esp + 0x10], 0xffffffff
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0x38]
cmove esi, dword [esp + 4]
cmp esi, ecx
cmovbe esi, ecx
add ecx, eax
mov eax, dword [esp + 0x30]
add esi, dword [esp + 0x34]
sub esi, 1
jb 0x41815b
sub ebx, 1
jb 0x4181ec
cmp ecx, dword [esp + 0xc]
jae 0x4181fe
mov dl, byte [eax]
inc eax
cmp dl, byte [edi + ecx]
lea ecx, [ecx + 1]
je 0x418015
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
mov ebx, 1
sub esi, eax
cmp dword [esp + 0x10], 0xffffffff
je 0x418056
mov dword [esp + 0x14], eax
mov ecx, esi
sub ecx, dword [esp + 4]
cmp ecx, dword [esp + 0xc]
jb 0x417f3f
jmp 0x4181b6
cmp byte [esp + 0x56], 0
jne 0x4181b6
mov cl, byte [esp + 0x55]
mov eax, dword [esp + 0x50]
test cl, cl
sete dl
test eax, eax
mov dword [esp + 8], edx
je 0x4181aa
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x18], edi
mov dword [esp + 0xc], edx
cmp eax, edx
jae 0x4180ae
cmp byte [esi + eax], 0xbf
jg 0x4180b4
jmp 0x41820c
jne 0x41820c
mov bl, byte [esi + eax - 1]
test bl, bl
js 0x4180c1
movzx ebx, bl
jmp 0x41810a
movzx ecx, byte [esi + eax - 2]
cmp cl, 0xc0
jge 0x4180eb
movzx edx, byte [esi + eax - 3]
cmp dl, 0xc0
jge 0x4180f0
movzx edi, byte [esi + eax - 4]
and edx, 0x3f
and edi, 7
shl edi, 6
or edx, edi
mov edi, dword [esp + 0x18]
jmp 0x4180f3
and ecx, 0x1f
jmp 0x4180ff
and edx, 0xf
shl edx, 6
and ecx, 0x3f
or ecx, edx
mov edx, dword [esp + 0xc]
and bl, 0x3f
shl ecx, 6
movzx ebx, bl
or ebx, ecx
test byte [esp + 8], 1
je 0x4181c8
cmp ebx, 0x110000
je 0x4181b6
cmp ebx, 0x80
mov ecx, 0xffffffff
jb 0x418149
mov ecx, 0xfffffffe
cmp ebx, 0x800
jb 0x418149
xor ecx, ecx
cmp ebx, 0x10000
setb cl
or ecx, 0xfffffffc
add eax, ecx
mov dword [esp + 8], 0
jne 0x41809f
jmp 0x41815f
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 8]
mov edx, dword [ebp + 8]
inc eax
jne 0x41816d
mov esi, edx
jmp 0x418189
mov esi, edx
sub esi, eax
jbe 0x418187
cmp byte [edi + eax], 0xbf
jg 0x418189
mov ecx, edi
push 0x50012c
push edx
push eax
call fcn.004e9120
jne 0x418179
add edi, eax
mov edx, esi
mov ecx, edi
call fcn.00408fe0
test al, 1
jne 0x4181b6
mov ecx, dword [esp + 0x1c]
shr eax, 0x10
mov dword [ecx], edi
mov dword [ecx + 4], esi
mov word [ecx + 8], ax
jmp 0x4181c0
test cl, cl
mov dword [esp + 8], 0
jne 0x41815f
mov eax, dword [esp + 0x1c]
mov dword [eax], 0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 8], eax
jmp 0x41815f
mov edx, dword [esp + 4]
mov ecx, esi
push 0x4ffd04
call fcn.004e8be0
mov edx, dword [esp + 0xc]
push 0x4ffd14
call fcn.004e8be0
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 4]
push 0x4ffce4
call fcn.004e8be0
mov edx, dword [esp + 0xc]
push 0x4ffcf4
call fcn.004e8be0
mov ecx, esi
push 0x4ffdfc
push eax
push 0
call fcn.004e9120