Function at 0x417cef
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 0x52d83a
push dword [ebp + 8]
call fcn.004083b0
add esp, 0xc
cmp dword [esi], 0
je 0x417edb
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 0x418026
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 0x417e33
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 0x417e5c
cmp eax, dword [esp + 4]
jae 0x41803e
mov ecx, dword [esp + 8]
add ecx, esi
cmp ecx, dword [esp + 0xc]
jae 0x41804e
mov edx, dword [esp + 0x44]
mov dl, byte [edx + esi]
cmp dl, byte [edi + ecx]
je 0x417df7
add esi, dword [esp + 0x24]
mov eax, dword [esp + 4]
sub esi, dword [esp + 0x20]
jmp 0x417ebb
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 0x417daf
jmp 0x418026
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 0x417fcb
sub ebx, 1
jb 0x41805c
cmp ecx, dword [esp + 0xc]
jae 0x41806e
mov dl, byte [eax]
inc eax
cmp dl, byte [edi + ecx]
lea ecx, [ecx + 1]
je 0x417e85
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
mov ebx, 1
sub esi, eax
cmp dword [esp + 0x10], 0xffffffff
je 0x417ec6
mov dword [esp + 0x14], eax
mov ecx, esi
sub ecx, dword [esp + 4]
cmp ecx, dword [esp + 0xc]
jb 0x417daf
jmp 0x418026
cmp byte [esp + 0x56], 0
jne 0x418026
mov cl, byte [esp + 0x55]
mov eax, dword [esp + 0x50]
test cl, cl
sete dl
test eax, eax
mov dword [esp + 8], edx
je 0x41801a
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x18], edi
mov dword [esp + 0xc], edx
cmp eax, edx
jae 0x417f1e
cmp byte [esi + eax], 0xbf
jg 0x417f24
jmp 0x41807c
jne 0x41807c
mov bl, byte [esi + eax - 1]
test bl, bl
js 0x417f31
movzx ebx, bl
jmp 0x417f7a
movzx ecx, byte [esi + eax - 2]
cmp cl, 0xc0
jge 0x417f5b
movzx edx, byte [esi + eax - 3]
cmp dl, 0xc0
jge 0x417f60
movzx edi, byte [esi + eax - 4]
and edx, 0x3f
and edi, 7
shl edi, 6
or edx, edi
mov edi, dword [esp + 0x18]
jmp 0x417f63
and ecx, 0x1f
jmp 0x417f6f
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 0x418038
cmp ebx, 0x110000
je 0x418026
cmp ebx, 0x80
mov ecx, 0xffffffff
jb 0x417fb9
mov ecx, 0xfffffffe
cmp ebx, 0x800
jb 0x417fb9
xor ecx, ecx
cmp ebx, 0x10000
setb cl
or ecx, 0xfffffffc
add eax, ecx
mov dword [esp + 8], 0
jne 0x417f0f
jmp 0x417fcf
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 8]
mov edx, dword [ebp + 8]
inc eax
jne 0x417fdd
mov esi, edx
jmp 0x417ff9
mov esi, edx
sub esi, eax
jbe 0x417ff7
cmp byte [edi + eax], 0xbf
jg 0x417ff9
mov ecx, edi
push 0x500124
push edx
push eax
call fcn.004e8eb0
jne 0x417fe9
add edi, eax
mov edx, esi
mov ecx, edi
call fcn.00408eb0
test al, 1
jne 0x418026
mov ecx, dword [esp + 0x1c]
shr eax, 0x10
mov dword [ecx], edi
mov dword [ecx + 4], esi
mov word [ecx + 8], ax
jmp 0x418030
test cl, cl
mov dword [esp + 8], 0
jne 0x417fcf
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 0x417fcf
mov edx, dword [esp + 4]
mov ecx, esi
push 0x4ffcfc
call fcn.004e8970
mov edx, dword [esp + 0xc]
push 0x4ffd0c
call fcn.004e8970
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 4]
push 0x4ffcdc
call fcn.004e8970
mov edx, dword [esp + 0xc]
push 0x4ffcec
call fcn.004e8970
mov ecx, esi
push 0x4ffdf4
push eax
push 0
call fcn.004e8eb0