Function at 0x418e50
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 dword [esp + 0x3c], ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x10], edx
push 6
push 0x405c4c
push dword [ebp + 8]
call fcn.00413290
add esp, 0xc
test byte [esp + 0x40], 1
je 0x419024
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x14], edx
cmp edx, 0xffffffff
mov edx, dword [esp + 0x74]
lea ecx, [eax - 1]
mov dword [esp + 4], edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x38], ecx
mov dword [esp + 0xc], edx
je 0x419059
mov edi, dword [esp + 0x5c]
add ecx, edi
cmp ecx, edx
jae 0x419251
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x58]
sub eax, ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], eax
nop word cs:[eax + eax]
nop
movzx ecx, byte [esi + ecx]
xor eax, eax
mov ebx, 1
shld eax, ebx, cl
mov ebx, esi
mov esi, 1
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, esi
cmovne esi, ecx
and eax, dword [esp + 0x30]
and esi, dword [esp + 0x34]
or esi, eax
je 0x418fa0
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, edi
mov dword [esp + 8], eax
cmp esi, ecx
cmova ecx, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x2c], ecx
cmp ecx, esi
mov edi, esi
lea esi, [ebx + eax]
cmova edi, ecx
nop word cs:[eax + eax]
cmp edi, ecx
je 0x418fd0
mov eax, ecx
mov ecx, dword [esp + 8]
add ecx, eax
cmp ecx, edx
jae 0x419939
mov edx, dword [esp + 4]
lea ecx, [eax + 1]
movzx ebx, byte [edx + eax]
mov edx, dword [esp + 0xc]
cmp bl, byte [esi + eax]
je 0x418f60
mov edi, dword [esp + 8]
sub edi, dword [esp + 0x18]
lea edi, [edi + eax + 1]
jmp 0x418fa4
add edi, dword [esp + 0x1c]
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
lea ecx, [edi + eax]
cmp ecx, edx
jb 0x418f00
jmp 0x419251
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
nop dword [eax + eax]
cmp dword [esp + 0x14], ecx
mov edi, dword [esp + 8]
jae 0x41918e
dec ecx
cmp ecx, esi
jae 0x41996d
add edi, ecx
cmp edi, edx
jae 0x419979
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x20]
movzx eax, byte [eax + ecx]
cmp al, byte [ebx + edi]
je 0x418fe0
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x24]
add edi, dword [esp + 0x28]
mov dword [esp + 0x14], eax
jmp 0x418fac
lea ebx, [esp + 0x80]
lea edi, [esp + 0x40]
nop
mov ecx, ebx
mov edx, edi
call fcn.00417970
mov eax, dword [esp + 0x80]
cmp eax, 1
je 0x419030
test eax, eax
jne 0x419251
mov edi, dword [esp + 0x84]
jmp 0x41918e
mov edi, dword [esp + 0x5c]
add ecx, edi
cmp ecx, edx
jae 0x419251
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x18]
cmp ebx, eax
cmova eax, ebx
mov dword [esp + 0x14], eax
lea eax, [ebx - 1]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 4]
lea eax, [eax + ebx - 1]
mov dword [esp + 0x28], eax
jmp 0x4190c0
add edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
lea ecx, [edi + eax]
cmp ecx, edx
jae 0x419251
movzx ecx, byte [esi + ecx]
xor eax, eax
mov ebx, 1
shld eax, ebx, cl
mov ebx, esi
mov esi, 1
shl esi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, esi
cmovne esi, ecx
and eax, dword [esp + 0x30]
and esi, dword [esp + 0x34]
or esi, eax
je 0x4190a9
mov eax, dword [esp + 0x18]
lea ecx, [ebx + edi]
nop dword [eax + eax]
cmp dword [esp + 0x14], eax
je 0x419133
mov esi, eax
add eax, edi
cmp eax, edx
jae 0x419954
mov edx, dword [esp + 4]
lea eax, [esi + 1]
movzx ebx, byte [edx + esi]
mov edx, dword [esp + 0xc]
cmp bl, byte [ecx + esi]
je 0x419100
sub edi, dword [esp + 0x18]
lea edi, [edi + esi + 1]
jmp 0x4190ad
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
cmp ecx, eax
jae 0x419922
mov dword [esp + 8], edi
add ecx, edi
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
nop word cs:[eax + eax]
nop dword [eax + eax]
sub edi, 1
jb 0x41918a
cmp ecx, edx
jae 0x41997b
movzx eax, byte [esi]
mov ebx, dword [esp + 0x20]
dec esi
cmp al, byte [ebx + ecx]
lea ecx, [ecx - 1]
je 0x419160
mov edi, dword [esp + 8]
add edi, dword [esp + 0x24]
jmp 0x4190ad
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov edx, dword [ebp + 8]
mov esi, edi
add esi, 6
je 0x4191b4
cmp esi, edx
jae 0x4191b2
cmp byte [ecx + esi], 0xbf
jg 0x4191b4
push 0x405c80
push edx
push esi
call fcn.00432310
jne 0x4191a6
add esi, ecx
add ecx, edx
mov dword [esp + 8], edi
jmp 0x4191d7
inc esi
lea eax, [edx - 0x30]
cmp eax, 0xa
setb al
add edx, 0xffffffc0
cmp edx, 7
setb dl
or dl, al
je 0x419251
cmp esi, ecx
je 0x4192ca
movzx ebx, byte [esi]
movzx edx, bl
test bl, bl
jns 0x4191c0
movzx eax, byte [esi + 1]
and edx, 0x1f
and eax, 0x3f
cmp bl, 0xdf
jbe 0x419236
movzx edi, byte [esi + 2]
shl eax, 6
and edi, 0x3f
or edi, eax
cmp bl, 0xf0
jb 0x419240
movzx eax, byte [esi + 3]
and edx, 7
shl edi, 6
mov ebx, edx
shl ebx, 0x12
and eax, 0x3f
or eax, edi
mov edi, dword [esp + 8]
mov edx, eax
or edx, ebx
cmp edx, 0x110000
je 0x4192ca
add esi, 4
jmp 0x4191c1
shl edx, 6
add esi, 2
or edx, eax
jmp 0x4191c1
shl edx, 0xc
add esi, 3
or edx, edi
mov edi, dword [esp + 8]
jmp 0x4191c1
mov ecx, dword [esp + 0x10]
mov edx, dword [ebp + 8]
cmp edx, 3
jae 0x41928a
mov ebx, 2
cmp edx, 2
jne 0x419914
cmp word [ecx], 0x4e5a
jne 0x419475
mov eax, 0xfffffffe
mov edi, 2
mov edx, 2
jmp 0x41932a
movzx eax, word [ecx]
mov esi, edx
movzx edx, byte [ecx + 2]
xor eax, 0x5a5f
xor edx, 0x4e
or dx, ax
je 0x4192f2
cmp word [ecx], 0x4e5a
je 0x419308
mov edi, 3
cmp esi, 3
je 0x41942d
cmp dword [ecx], 0x4e5a5f5f
mov edx, esi
je 0x4193c5
mov edi, edx
jmp 0x41942d
test edi, edi
je 0x4198d7
mov edx, dword [ebp + 8]
cmp edi, edx
jae 0x419373
mov ecx, dword [esp + 0x10]
cmp byte [ecx + edi], 0xbf
jle 0x41937d
mov edx, edi
jmp 0x419258
mov eax, 0xfffffffd
mov edx, 3
cmp esi, 3
jne 0x41931e
mov edi, 3
jmp 0x41932a
cmp byte [ecx + 2], 0xbf
jle 0x4199c4
mov edx, 2
mov eax, 0xfffffffe
jmp 0x419328
cmp byte [ecx + 3], 0xbf
jle 0x4199d3
mov edi, esi
add eax, edi
add edx, ecx
lea ecx, [edx + eax]
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], ecx
mov ecx, edx
nop
test eax, eax
je 0x419352
dec eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jns 0x419340
jmp 0x419424
cmp dword [esp + 0x20], 0
je 0x419424
mov ebx, dword [esp + 0x14]
movzx ecx, byte [ebx]
movzx edx, cl
test cl, cl
js 0x41938a
lea ecx, [ebx + 1]
jmp 0x41940b
mov ecx, dword [esp + 0x10]
je 0x419258
push 0x405c90
push edi
push 0
call fcn.00432310
movzx esi, byte [ebx + 1]
and edx, 0x1f
and esi, 0x3f
cmp cl, 0xdf
jbe 0x4193ef
movzx eax, byte [ebx + 2]
shl esi, 6
and eax, 0x3f
or eax, esi
cmp cl, 0xf0
jb 0x419403
movzx ecx, byte [ebx + 3]
and edx, 7
shl eax, 6
lea esi, [ebx + 4]
shl edx, 0x12
and ecx, 0x3f
or ecx, eax
or edx, ecx
mov ecx, esi
jmp 0x41940b
mov edi, edx
mov eax, 0xfffffffc
mov edx, 4
cmp edi, 5
jb 0x4193f9
cmp byte [ecx + 4], 0xbf
jg 0x419328
mov edx, esi
push 0x405828
push esi
push 4
call fcn.00432310
shl edx, 6
lea ecx, [ebx + 2]
or edx, esi
jmp 0x41940b
mov edi, 4
jmp 0x41932a
shl edx, 0xc
lea ecx, [ebx + 3]
or edx, eax
cmp edx, 0x45
mov dword [esp + 4], ecx
je 0x4195cf
cmp edx, 0x110000
jne 0x4195f2
mov ecx, dword [esp + 0x10]
cmp edi, 3
jb 0x419475
cmp word [ecx], 0x525f
je 0x41949c
cmp byte [ecx], 0x52
je 0x419488
mov ebx, 2
cmp edi, 3
je 0x419914
movzx eax, word [ecx]
movzx edx, byte [ecx + 2]
xor eax, 0x5f5f
xor edx, 0x52
or dx, ax
jne 0x419914
movzx eax, byte [ecx + 3]
cmp al, 0xbf
jle 0x4199e2
add ecx, 3
mov edx, 0xfffffffd
jmp 0x4194b0
cmp byte [ecx], 0x52
mov edi, 2
mov ebx, 2
jne 0x419914
movzx eax, byte [ecx + 1]
cmp al, 0xbf
jle 0x419985
inc ecx
mov edx, 0xffffffff
jmp 0x4194b0
movzx eax, byte [ecx + 2]
cmp al, 0xbf
jle 0x419994
add ecx, 2
mov edx, 0xfffffffe
add al, 0xbf
mov ebx, 2
cmp al, 0x19
ja 0x419914
add edx, edi
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
cmp edx, eax
je 0x4194e2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jns 0x4194d0
jmp 0x419914
mov dword [esp + 0x40], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x44], edx
pxor xmm0, xmm0
lea ecx, [esp + 0x40]
xor edx, edx
movq qword [esp + 0x48], xmm0
movq qword [esp + 0x50], xmm0
call fcn.00414540
test al, al
jne 0x4199a3
mov eax, dword [esp + 0x40]
test eax, eax
je 0x419914
movzx ecx, byte [esp + 0x47]
movzx edx, word [esp + 0x45]
mov dword [esp + 4], eax
movzx eax, byte [esp + 0x44]
movq xmm0, qword [esp + 0x48]
shl ecx, 0x10
or edx, ecx
mov ecx, edx
shl ecx, 8
or ecx, eax
movd eax, xmm0
cmp eax, ecx
jae 0x419796
mov edx, dword [esp + 4]
mov esi, ecx
movzx ecx, byte [edx + eax]
add cl, 0xbf
cmp cl, 0x1a
jae 0x4197a0
mov dword [esp + 0x40], edx
lea ecx, [esp + 0x40]
xor edx, edx
mov dword [esp + 0x44], esi
movq qword [esp + 0x48], xmm0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
call fcn.00414540
test al, al
jne 0x4199a3
mov eax, dword [esp + 0x40]
test eax, eax
je 0x419914
movzx edx, byte [esp + 0x47]
movzx esi, word [esp + 0x45]
movzx ecx, byte [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
shl edx, 0x10
or esi, edx
mov edx, dword [esp + 0x10]
shl esi, 8
or esi, ecx
jmp 0x4197a4
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
sub ecx, dword [esp + 4]
test ecx, ecx
jne 0x4197e2
xor esi, esi
jmp 0x4198e6
mov esi, 0xa
mov dword [esp + 0x1c], 0
mov dword [esp + 8], edi
lea eax, [edx - 0x30]
cmp eax, 9
ja 0x419424
xor eax, eax
jmp 0x419624
inc ecx
mov dword [esp + 4], ecx
cmp edx, 0x110000
je 0x419424
lea ecx, [edx - 0x30]
cmp ecx, 0xa
jae 0x4196cd
mul esi
jo 0x419424
add eax, ecx
jb 0x419424
mov ecx, dword [esp + 4]
cmp ecx, dword [esp + 0xc]
je 0x419424
mov ecx, dword [esp + 4]
movzx ebx, byte [ecx]
movzx edx, bl
test bl, bl
jns 0x419613
movzx esi, byte [ecx + 1]
and edx, 0x1f
and esi, 0x3f
cmp bl, 0xdf
jbe 0x419699
movzx edi, byte [ecx + 2]
shl esi, 6
and edi, 0x3f
or edi, esi
cmp bl, 0xf0
jb 0x4196a7
movzx esi, byte [ecx + 3]
and edx, 7
shl edi, 6
add ecx, 4
shl edx, 0x12
mov dword [esp + 4], ecx
and esi, 0x3f
or esi, edi
or edx, esi
jmp 0x4196b3
shl edx, 6
add ecx, 2
mov dword [esp + 4], ecx
or edx, esi
jmp 0x4196b7
shl edx, 0xc
add ecx, 3
mov dword [esp + 4], ecx
or edx, edi
mov edi, dword [esp + 8]
mov esi, 0xa
cmp edx, 0x110000
jne 0x419624
jmp 0x419424
mov ecx, dword [esp + 0xc]
test eax, eax
jne 0x4196ff
inc dword [esp + 0x1c]
cmp edx, 0x45
jne 0x419603
jmp 0x4195d7
add ecx, 2
shl edx, 6
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xc]
or edx, esi
mov esi, 0xa
dec eax
je 0x4196d5
cmp dword [esp + 4], ecx
je 0x419424
mov ecx, dword [esp + 4]
movzx ebx, byte [ecx]
movzx edx, bl
test bl, bl
js 0x419722
inc ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xc]
jmp 0x4196fc
movzx esi, byte [ecx + 1]
and edx, 0x1f
and esi, 0x3f
cmp bl, 0xdf
jbe 0x4196e7
mov edi, ecx
movzx ecx, byte [ecx + 2]
shl esi, 6
and ecx, 0x3f
or ecx, esi
cmp bl, 0xf0
jb 0x419778
movzx esi, byte [edi + 3]
and edx, 7
shl ecx, 6
mov edi, edx
shl edi, 0x12
and esi, 0x3f
or esi, ecx
mov edx, esi
mov esi, 0xa
or edx, edi
mov edi, dword [esp + 8]
cmp edx, 0x110000
je 0x419424
add dword [esp + 4], 4
jmp 0x41971c
shl edx, 0xc
add edi, 3
mov esi, 0xa
mov dword [esp + 4], edi
or edx, ecx
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x4196fc
mov edx, dword [esp + 0x10]
test eax, eax
jne 0x4197aa
jmp 0x4197cc
mov edx, dword [esp + 0x10]
mov ecx, esi
test eax, eax
je 0x4197cc
cmp ecx, eax
jbe 0x4197ca
mov esi, dword [esp + 4]
cmp byte [esi + eax], 0xbf
jg 0x4197cc
mov edx, ecx
mov ecx, dword [esp + 4]
push 0x405a14
push edx
push eax
call fcn.00432310
jne 0x4197b8
add dword [esp + 4], eax
sub ecx, eax
mov dword [esp + 0x14], 0
test ecx, ecx
je 0x4195eb
mov edx, dword [esp + 4]
mov ebx, 2
cmp byte [edx], 0x2e
jne 0x419914
lea eax, [edx + ecx]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov al, 0x2e
test al, al
jns 0x419880
nop word cs:[eax + eax]
nop
mov ebx, edi
movzx edi, byte [edx + 1]
mov ecx, eax
and cl, 0x1f
movzx ecx, cl
and edi, 0x3f
cmp al, 0xdf
jbe 0x41985b
movzx esi, byte [edx + 2]
shl edi, 6
and esi, 0x3f
or esi, edi
cmp al, 0xf0
jb 0x419869
movzx eax, byte [edx + 3]
and ecx, 7
shl esi, 6
mov edi, ebx
shl ecx, 0x12
and eax, 0x3f
or eax, esi
or eax, ecx
cmp eax, 0x110000
je 0x4198de
add edx, 4
jmp 0x419884
shl ecx, 6
add edx, 2
or ecx, edi
mov edi, ebx
mov eax, ecx
jmp 0x419884
shl ecx, 0xc
add edx, 3
mov edi, ebx
or esi, ecx
mov eax, esi
jmp 0x419884
inc edx
movzx eax, al
mov ecx, eax
lea esi, [eax - 0x30]
and ecx, 0x1fffdf
add ecx, 0xffffffbf
cmp ecx, 0x1a
setb cl
cmp esi, 0xa
lea esi, [eax - 0x21]
setb ch
cmp esi, 0xf
setb bl
or bl, ch
or bl, cl
jne 0x4198bd
lea ecx, [eax - 0x3a]
cmp ecx, 7
jb 0x4198bd
lea ecx, [eax - 0x5b]
cmp ecx, 6
jae 0x4198cf
cmp edx, dword [esp + 8]
je 0x4198de
movzx eax, byte [edx]
test al, al
jns 0x419880
jmp 0x419810
add eax, 0xffffff81
cmp eax, 0xfffffffc
jae 0x4198bd
mov ebx, 2
jmp 0x419914
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], edx
mov edx, dword [esp + 4]
mov ebx, 1
mov dword [eax + 0x14], edi
mov dword [eax + 0x18], edx
mov dword [eax + 0x1c], esi
mov eax, dword [esp + 0x3c]
mov dword [eax], ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [esp + 0x18], 0
je 0x41918e
mov edx, eax
push 0x405e5c
call fcn.00431ec5
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0xc]
add ecx, dword [esp + 8]
cmp edx, ecx
cmova ecx, edx
push 0x405e7c
call fcn.00431ec5
add edi, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
cmp edx, edi
cmova edi, edx
mov ecx, edi
push 0x405e7c
call fcn.00431ec5
mov edx, esi
push 0x405e5c
call fcn.00431ec5
mov ecx, edi
push 0x405e6c
call fcn.00431ec5
mov edx, edi
push 0x4059a4
push edi
push 1
call fcn.00432310
mov edx, edi
push 0x4059b4
push edi
push 2
call fcn.00432310
lea eax, [esp + 0x80]
mov ecx, 0x4059c4
mov edx, 0x3d
push 0x405a04
push 0x405768
push eax
call fcn.00432100
mov edx, esi
push 0x405838
push esi
push 2
call fcn.00432310
mov edx, esi
push 0x405848
push esi
push 3
call fcn.00432310
mov edx, edi
push 0x405994
push edi
push 3
call fcn.00432310
int3