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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x98
mov dword [esp + 0x2c], ecx
mov eax, edx
mov dword [esp + 8], eax
push esi
push edi
mov edi, ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x18], edi
push 0xfffffffffffffffc
pop edx
mov dword [esp + 0x3c], edx
test ecx, ecx
je 0x642721d3
test eax, eax
je 0x642721d3
cmp dword [ebp + 8], 0
je 0x642721d3
xor edx, edx
mov word [ecx], dx
xor ecx, ecx
push 2
pop esi
mul esi
mov dword [esp + 0x78], esi
seto cl
neg ecx
or ecx, eax
call fcn.64288b55
mov dword [esp + 0x14], eax
test eax, eax
jne 0x6427177a
push 0xfffffffffffffffd
jmp 0x642721d5
mov edx, dword [ebp + 8]
movzx eax, word [edx]
add edx, esi
mov dword [esp + 0x38], eax
test ax, ax
je 0x642721b6
mov esi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x64], 0x23
mov dword [esp + 0x88], 0x30
mov dword [esp + 0x74], 9
mov dword [esp + 0x8c], 0x2e
mov dword [esp + 0x7c], 0x68
mov eax, edi
mov dword [esp + 0x4c], edx
sub eax, dword [esp + 0x34]
sar eax, 1
mov dword [esp + 0x48], eax
inc eax
cmp eax, ecx
jae 0x642721af
mov eax, dword [esp + 0x38]
cmp ax, 0x25
je 0x64271801
mov word [edi], ax
push 2
pop eax
add edi, eax
xor eax, eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x18], edi
mov word [edi], ax
jmp 0x6427219a
movzx ecx, word [edx]
mov eax, ecx
cmp cx, word [esp + 0x64]
jne 0x64271811
movzx ecx, word [edx + 2]
cmp ax, word [esp + 0x64]
push 4
pop edx
cmovne edx, dword [esp + 0x78]
add edx, dword [esp + 0x4c]
cmp ax, word [esp + 0x64]
mov dword [ebp + 8], edx
sete al
mov dword [esp + 0x24], 0x20
mov byte [esp + 0x20], al
xor eax, eax
mov dword [esp + 0x2c], eax
cmp cx, word [esp + 0x88]
jne 0x642718b2
movzx ecx, word [edx]
add edx, 2
test cx, cx
je 0x642721b6
push 2
mov edi, eax
pop esi
lea eax, [ecx - 0x30]
cmp ax, word [esp + 0x74]
ja 0x64271881
test di, di
je 0x64271872
imul eax, edi, 0xa
movzx edi, ax
add ecx, 0xffffffd0
add edi, ecx
movzx ecx, word [edx]
add edx, esi
test cx, cx
jne 0x6427185d
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x28]
mov dword [ebp + 8], edx
test cx, cx
je 0x642721b6
mov eax, dword [esp + 0x2c]
movzx eax, ax
cmp eax, dword [esp + 0x10]
ja 0x642721b6
push 0x30
pop eax
mov dword [esp + 0x24], eax
xor eax, eax
mov byte [esp + 0x40], 0xff
cmp cx, word [esp + 0x8c]
jne 0x6427191b
movzx ecx, word [edx]
push 2
mov byte [esp + 0x44], al
pop eax
add edx, eax
test cx, cx
je 0x642721b6
lea eax, [ecx - 0x30]
cmp ax, word [esp + 0x74]
mov eax, dword [esp + 0x40]
ja 0x64271902
test al, al
je 0x642718ee
movsx eax, al
imul eax, eax, 0xa
sub cl, 0x30
add al, cl
movzx ecx, word [edx]
add edx, 2
mov dword [esp + 0x40], eax
test cx, cx
jne 0x642718d6
mov dword [ebp + 8], edx
test cx, cx
je 0x642721b6
movsx eax, al
cmp eax, dword [esp + 0x10]
ja 0x642721b6
cmp cx, 0x2a
jne 0x64271939
movzx ecx, word [edx]
push 2
pop eax
add edx, eax
movzx eax, word [esi]
add esi, 4
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], esi
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [esp + 0x38], edx
push 0x6c
pop esi
cmp cx, si
mov byte [esp + 0x1e], al
mov esi, dword [ebp + 0xc]
mov byte [esp + 0x1f], al
mov byte [esp + 0xe], al
mov byte [esp + 0xf], al
jne 0x64271996
movzx ecx, word [edx]
push 0x6c
pop esi
mov eax, ecx
mov dword [esp + 0x38], eax
cmp cx, si
jne 0x64271971
movzx ecx, word [edx + 2]
jmp 0x64271976
mov byte [esp + 0xe], 1
push 0x6c
pop esi
cmp ax, si
push 4
sete byte [esp + 0x13]
cmp word [esp + 0x3c], si
mov esi, dword [ebp + 0xc]
pop eax
cmovne eax, dword [esp + 0x78]
jmp 0x64271a28
cmp cx, 0x49
jne 0x642719ea
movzx eax, word [edx]
push 2
pop ecx
add edx, ecx
cmp eax, 0x33
jne 0x642719be
movzx eax, word [edx]
add edx, ecx
cmp eax, 0x32
jne 0x642721af
mov byte [esp + 0xe], 1
jmp 0x642719df
cmp eax, 0x36
jne 0x642721af
movzx eax, word [edx]
mov edx, dword [esp + 0x38]
add edx, 4
cmp eax, 0x34
jne 0x642721af
mov byte [esp + 0xf], 1
mov eax, edx
add edx, ecx
movzx eax, word [eax]
mov ecx, eax
jmp 0x64271a2a
cmp cx, 0x74
je 0x64271a1d
cmp cx, 0x7a
je 0x64271a1d
cmp cx, word [esp + 0x7c]
jne 0x64271a2f
movzx ecx, word [edx]
push 2
pop eax
add edx, eax
mov dword [ebp + 8], edx
cmp cx, word [esp + 0x7c]
jne 0x64271a16
mov byte [esp + 0x1e], 1
jmp 0x64271a25
mov byte [esp + 0x1f], 1
jmp 0x64271a2d
push 2
pop eax
mov byte [esp + 0xe], 1
movzx ecx, word [edx]
add edx, eax
mov dword [ebp + 8], edx
xor eax, eax
mov byte [esp + 0x33], al
movzx eax, cx
cmp eax, 0x69
ja 0x64271f44
je 0x64271eba
sub eax, 0
je 0x642721b6
sub eax, 0x58
je 0x64271f76
sub eax, 0xb
je 0x64271e97
sub eax, 1
je 0x64271eba
dec eax
sub eax, 1
jne 0x64271f6e
movsd xmm0, qword [esi]
add esi, 8
xorps xmm1, xmm1
mov dword [ebp + 0xc], esi
comisd xmm1, xmm0
movsd qword [esp + 0x58], xmm0
jbe 0x64271a9e
xorps xmm0, xmmword [0x648ae8c0]
mov byte [esp + 0x33], 1
movsd qword [esp + 0x58], xmm0
lea edx, [esp + 0x80]
lea ecx, [esp + 0x58]
call fcn.64270c06
test al, al
je 0x64272193
mov eax, dword [esp + 0x80]
lea edx, [esp + 0x98]
mov dword [esp + 0x68], eax
lea ecx, [esp + 0x58]
mov eax, dword [esp + 0x84]
mov dword [esp + 0x6c], eax
call fcn.64270cba
movsd xmm0, qword [esp + 0x58]
xor eax, eax
subsd xmm0, qword [esp + 0x98]
push 0xa
mov byte [esp + 0x12], al
pop eax
mov edi, eax
addsd xmm0, qword [0x648ae738]
mulsd xmm0, qword [0x648ae750]
lea edx, [esp + 0x90]
lea ecx, [esp + 0x58]
movsd qword [esp + 0x68], xmm0
movsd qword [esp + 0x58], xmm0
call fcn.64270c06
test al, al
je 0x64271b3a
mov eax, dword [esp + 0x90]
or eax, dword [esp + 0x94]
jne 0x64271b3a
inc byte [esp + 0xe]
movsd xmm0, qword [esp + 0x68]
sub edi, 1
jne 0x64271afe
mov edi, dword [esp + 0x28]
lea edx, [esp + 0x50]
lea ecx, [esp + 0x58]
call fcn.64270c06
mov ecx, dword [esp + 0x50]
mov eax, ecx
mov edx, dword [esp + 0x54]
or eax, edx
je 0x64271bbd
mov edi, ecx
mov esi, edx
xor eax, eax
push eax
push 0xa
pop eax
push eax
push esi
push edi
call fcn.64291f7f
mov ecx, edx
mov dword [esp + 0x38], eax
xor edx, edx
mov dword [esp + 0x4c], ecx
push edx
push 0xa
push ecx
push eax
call fcn.6429203b
mov ecx, edi
sub ecx, eax
mov eax, esi
sbb eax, edx
or ecx, eax
jne 0x64271bae
mov edi, dword [esp + 0x38]
mov eax, edi
mov esi, dword [esp + 0x4c]
or eax, esi
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], esi
jne 0x64271b68
mov esi, dword [ebp + 0xc]
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
xor eax, eax
mov byte [esp + 0xf], al
mov eax, ecx
or eax, edx
je 0x64271be4
push 0xa
pop esi
xor eax, eax
push eax
push esi
push edx
push ecx
call fcn.64291f7f
inc byte [esp + 0xf]
mov ecx, eax
or eax, edx
jne 0x64271bcc
mov esi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x40]
test cl, cl
js 0x64271c61
movzx edx, byte [esp + 0xe]
cmp cl, 0xa
movzx eax, cl
push 0xa
pop ecx
cmovg eax, ecx
mov dword [esp + 0x60], edx
movzx ecx, byte [esp + 0xf]
mov dword [esp + 0x4c], ecx
movsx ecx, al
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x4c]
add eax, edx
mov dword [esp + 0x38], ecx
cmp eax, ecx
jle 0x64271c7a
mov eax, edx
sub eax, ecx
add eax, dword [esp + 0x4c]
mov dword [esp + 0x68], eax
je 0x64271c7a
mov ecx, dword [esp + 0x54]
mov edi, eax
mov eax, dword [esp + 0x50]
push 0xa
pop esi
xor edx, edx
push edx
push esi
push ecx
push eax
call fcn.64291f7f
mov ecx, edx
sub edi, 1
jne 0x64271c3a
mov esi, dword [ebp + 0xc]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x50], eax
jmp 0x64271c7a
movzx edx, byte [esp + 0xf]
movzx eax, byte [esp + 0xe]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x60], eax
lea ecx, [eax + edx]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x2c]
test dx, dx
je 0x64271c92
movzx eax, dx
sub eax, ecx
jns 0x64271c90
xor eax, eax
mov edx, eax
jmp 0x64271c92
sub edx, ecx
push dword [esp + 0x20]
movzx eax, dx
push dword [esp + 0x28]
mov dword [esp + 0x60], eax
push eax
push dword [esp + 0x1c]
push dword [esp + 0x24]
push ecx
push ecx
push dword [esp + 0xa0]
push dword [esp + 0xa0]
call fcn.64272bf6
mov ecx, dword [esp + 0x6c]
mov edx, eax
movzx eax, byte [esp + 0x57]
inc ecx
mov dword [esp + 0x8c], eax
add esp, 0x24
add eax, edx
mov dword [esp + 0x2c], edx
add eax, ecx
mov ecx, dword [esp + 0x10]
cmp eax, ecx
ja 0x642721af
cmp byte [esp + 0x33], 0
je 0x64271d04
push 0x2d
pop eax
mov word [edi], ax
push 2
pop eax
add edi, eax
xor eax, eax
mov dword [esp + 0x18], edi
mov word [edi], ax
push edx
push dword [esp + 0x18]
lea eax, [esp + 0x20]
mov edx, ecx
mov ecx, dword [esp + 0x3c]
push eax
call fcn.64270d60
mov eax, dword [esp + 0x44]
add esp, 0xc
mov edi, dword [esp + 0x18]
test eax, eax
jle 0x6427218f
add eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x48]
add eax, dword [esp + 0x2c]
add ecx, 2
mov edx, dword [esp + 0x10]
add eax, ecx
cmp eax, edx
ja 0x642721af
mov eax, edi
mov dword [esp + 0x28], edi
sub eax, dword [esp + 0x34]
sar eax, 1
inc eax
cmp eax, edx
jae 0x64271d72
push 0x2e
pop eax
mov word [edi], ax
push 2
pop eax
add edi, eax
xor eax, eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x18], edi
mov word [edi], ax
cmp byte [esp + 0xe], 0
jbe 0x64271dde
mov eax, dword [esp + 0x40]
test al, al
jle 0x64271d9c
mov ecx, dword [esp + 0x60]
movsx eax, al
sub ecx, eax
mov al, byte [esp + 0xe]
test ecx, ecx
jle 0x64271da0
sub al, byte [esp + 0x40]
mov byte [esp + 0xe], al
jmp 0x64271da0
mov al, byte [esp + 0xe]
movzx eax, al
mov dword [esp + 0x60], eax
test eax, eax
je 0x64271dde
mov ecx, edi
mov esi, eax
sub ecx, dword [esp + 0x34]
mov eax, ecx
sar eax, 1
inc eax
cmp eax, edx
jae 0x64271dd2
push 0x30
pop eax
mov word [edi], ax
push 2
pop eax
add edi, eax
add ecx, eax
xor eax, eax
mov dword [esp + 0x18], edi
mov word [edi], ax
sub esi, 1
jne 0x64271db3
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x28], edi
mov ecx, dword [esp + 0x54]
xor eax, eax
cmp ecx, eax
jl 0x64271e33
mov eax, dword [esp + 0x50]
jg 0x64271df2
test eax, eax
je 0x64271e33
push dword [esp + 0x20]
mov edi, dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x60]
push edx
push edi
push ecx
push ecx
push ecx
push eax
call fcn.64272bf6
mov edx, dword [esp + 0x34]
add esp, 0x24
mov ecx, dword [esp + 0x34]
push eax
lea eax, [esp + 0x1c]
push edi
push eax
call fcn.64270d60
mov edi, dword [esp + 0x24]
add esp, 0xc
mov edx, dword [esp + 0x10]
mov dword [esp + 0x28], edi
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x40]
add ecx, dword [esp + 0x4c]
movsx eax, al
cmp eax, ecx
jle 0x64272193
mov eax, dword [esp + 0x40]
sub al, byte [esp + 0xf]
sub al, byte [esp + 0xe]
movzx eax, al
mov dword [esp + 0x58], eax
je 0x64272193
mov ecx, edi
mov esi, eax
sub ecx, dword [esp + 0x34]
mov eax, ecx
sar eax, 1
inc eax
cmp eax, edx
jae 0x64271e8a
push 0x30
pop eax
mov word [edi], ax
push 2
pop eax
add edi, eax
add ecx, eax
xor eax, eax
mov dword [esp + 0x18], edi
mov word [edi], ax
sub esi, 1
jne 0x64271e6b
mov esi, dword [ebp + 0xc]
jmp 0x6427218f
mov ax, word [esi]
add esi, 4
mov dword [ebp + 0xc], esi
mov word [edi], ax
push 2
pop eax
add edi, eax
xor eax, eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x18], edi
mov word [edi], ax
jmp 0x64272196
cmp byte [esp + 0xf], 0
push dword [esp + 0x20]
mov eax, dword [esp + 0x30]
push dword [esp + 0x28]
movzx eax, ax
push eax
push dword [esp + 0x1c]
push dword [esp + 0x24]
push ecx
push ecx
je 0x64271ef1
push dword [esi + 4]
add esi, 8
mov dword [ebp + 0xc], esi
push dword [esi - 8]
call fcn.64272bf6
jmp 0x64272144
add esi, 4
cmp byte [esp + 0x2a], 0
mov dword [ebp + 0xc], esi
je 0x64271f0b
mov ecx, dword [esi - 4]
call fcn.64272eb2
jmp 0x6427215f
cmp byte [esp + 0x3b], 0
mov dword [ebp + 0xc], esi
je 0x64271f23
mov cx, word [esi - 4]
call fcn.642730ee
jmp 0x6427215f
cmp byte [esp + 0x3a], 0
je 0x64271f37
mov cl, byte [esi - 4]
call fcn.6427338d
jmp 0x6427215f
mov ecx, dword [esi - 4]
call fcn.64272eb2
jmp 0x6427215f
sub eax, 0x6f
je 0x642720c4
sub eax, 1
je 0x642720a4
sub eax, 3
je 0x6427205c
dec eax
sub eax, 1
je 0x64271ff4
sub eax, 3
je 0x64271f76
mov word [edi], cx
jmp 0x64271ea3
push 0x58
pop eax
push dword [esp + 0x20]
cmp cx, ax
mov eax, dword [esp + 0x30]
push dword [esp + 0x28]
movzx eax, ax
sete cl
cmp byte [esp + 0x17], 0
push eax
push dword [esp + 0x1c]
mov byte [esp + 0x54], cl
push dword [esp + 0x24]
je 0x64271fac
xor eax, eax
push eax
push 0x10
jmp 0x64272133
add esi, 4
cmp byte [esp + 0x22], 0
push ecx
push dword [esp + 0x5c]
mov dword [ebp + 0xc], esi
je 0x64271fc5
push 0x10
jmp 0x64272156
cmp byte [esp + 0x3b], 0
mov dword [ebp + 0xc], esi
je 0x64271fd6
push 0x10
jmp 0x6427211b
cmp byte [esp + 0x3a], 0
je 0x64271fe4
mov dl, 0x10
jmp 0x642720fd
push 0x10
pop edx
mov ecx, dword [esi - 4]
call fcn.64272997
jmp 0x6427215f
push dword [esp + 0x20]
mov eax, dword [esp + 0x30]
push dword [esp + 0x28]
movzx eax, ax
push eax
push dword [esp + 0x1c]
xor eax, eax
push dword [esp + 0x24]
cmp byte [esp + 0x23], al
je 0x64272020
push eax
push 0xa
pop eax
push eax
xor cl, cl
jmp 0x64272133
push ecx
push eax
add esi, 4
cmp byte [esp + 0x2a], 0
push 0xa
mov dword [ebp + 0xc], esi
pop eax
je 0x64272039
mov edx, eax
jmp 0x64272157
cmp byte [esp + 0x3b], 0
je 0x64272047
mov edx, eax
jmp 0x6427211c
cmp byte [esp + 0x3a], 0
je 0x64272055
mov dl, al
jmp 0x642720fd
mov dword [ebp + 0xc], esi
mov edx, eax
jmp 0x64271fe7
mov edx, dword [esi]
add esi, 4
xor eax, eax
mov dword [ebp + 0xc], esi
movzx ecx, word [edx]
test cx, cx
je 0x64272077
xor ecx, ecx
inc eax
cmp word [edx + eax*2], cx
jne 0x64272070
mov ecx, dword [esp + 0x48]
inc ecx
add eax, ecx
mov ecx, dword [esp + 0x10]
cmp eax, ecx
ja 0x642721af
movzx edi, word [edx]
xor eax, eax
test di, di
je 0x6427209d
xor edi, edi
inc eax
cmp word [edx + eax*2], di
jne 0x64272096
push eax
push edx
jmp 0x64272178
push dword [esp + 0x20]
add esi, 4
push 0x30
pop eax
push eax
push 8
push dword [esp + 0x1c]
mov dword [ebp + 0xc], esi
push dword [esp + 0x24]
push ecx
push 1
jmp 0x64271fbe
push 0x6f
pop eax
push dword [esp + 0x20]
cmp cx, ax
mov eax, dword [esp + 0x30]
push dword [esp + 0x28]
movzx eax, ax
sete cl
cmp byte [esp + 0x26], 0
push eax
push dword [esp + 0x1c]
mov byte [esp + 0x54], cl
push dword [esp + 0x24]
je 0x64272107
add esi, 4
mov dl, 8
push ecx
push dword [esp + 0x5c]
mov dword [ebp + 0xc], esi
mov cl, byte [esi - 4]
call fcn.642721dc
jmp 0x6427215f
cmp byte [esp + 0x33], 0
je 0x64272127
push ecx
push dword [esp + 0x5c]
add esi, 4
mov dword [ebp + 0xc], esi
push 8
pop edx
mov cx, word [esi - 4]
call fcn.6427245e
jmp 0x6427215f
cmp byte [esp + 0x23], 0
je 0x64272149
xor eax, eax
push eax
push 8
push dword [esi + 4]
add esi, 8
mov dword [ebp + 0xc], esi
push dword [esi - 8]
call fcn.642726e6
add esp, 0x24
jmp 0x64272162
push ecx
push dword [esp + 0x5c]
add esi, 4
mov dword [ebp + 0xc], esi
push 8
pop edx
mov ecx, dword [esi - 4]
call fcn.64272997
add esp, 0x1c
mov ecx, dword [esp + 0x10]
mov edx, eax
mov eax, dword [esp + 0x48]
inc eax
add eax, edx
cmp eax, ecx
ja 0x642721af
push edx
push dword [esp + 0x18]
lea eax, [esp + 0x20]
mov edx, ecx
mov ecx, dword [esp + 0x3c]
push eax
call fcn.64270d60
mov edi, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x28], edi
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x10]
movzx eax, word [edx]
add edx, 2
mov dword [esp + 0x38], eax
test ax, ax
jne 0x642717c4
jmp 0x642721b6
or edx, 0xffffffff
mov dword [esp + 0x3c], edx
mov ecx, dword [esp + 0x14]
call fcn.64288b6a
sub edi, dword [esp + 0x34]
sar edi, 1
cmp dword [esp + 0x3c], 0xffffffff
cmove edi, dword [esp + 0x3c]
mov eax, edi
jmp 0x642721d6
push 0xfffffffffffffffe
pop eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret