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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xf0
mov eax, dword [0x47f2c0]
xor eax, ebp
mov dword [esp + 0xe8], eax
lea eax, [esp + 0xd0]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
movzx eax, byte [esp + 0xc8]
mov byte [esp], al
call fcn.0040c970
sub esp, 4
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], eax
mov eax, 0xeb21e5bb
cmp eax, 0x29b6da13
je 0x4201e1
cmp eax, 0xeb21e5bb
jne 0x4201b0
mov ecx, dword [esp + 0x30]
mov dword [esp], 0x4748fe
call fcn.00410fc0
sub esp, 4
mov ecx, dword [esp + 0x28]
call fcn.00411200
mov eax, 0x29b6da13
jmp 0x4201b0
mov eax, dword [esp + 0x28]
mov eax, dword [0x4813b0]
mov edx, 0xcae462d5
mov esi, 0xff6dce3b
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x4813ac], 0xa
setl cl
or cl, al
mov eax, 0xb1dd1610
mov ecx, 0x912e4594
cmove eax, edx
cmove ecx, edx
nop word cs:[eax + eax]
cmp esi, 0xcae462d4
jle 0x420260
cmp esi, 0xcae462d5
je 0x420272
cmp esi, 0xd198ad43
je 0x42027d
cmp esi, 0xff6dce3b
jne 0x420230
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x28], esi
mov esi, 0xd198ad43
jmp 0x420230
cmp esi, 0x912e4594
je 0x420281
cmp esi, 0xb1dd1610
jne 0x420230
jmp 0x42028c
mov esi, dword [esp + 0x28]
mov esi, 0x912e4594
jmp 0x420230
mov esi, ecx
jmp 0x420230
mov edx, dword [esp + 0x28]
mov esi, eax
mov edx, dword [edx + 0x14]
jmp 0x420230
vmovsd xmm0, qword [ebp + 0x1c]
mov dword [esp + 0x30], edx
mov eax, 0x3000
mov ecx, 0x90ecc436
vandpd xmm0, xmm0, xmmword [0x459240]
and eax, dword [esp + 0x30]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x5c], eax
cmp eax, 0x3000
mov eax, 0x8440ae5f
cmove ecx, eax
mov eax, 0x56ecc195
mov dword [esp + 0x58], ecx
vmovapd xmmword [esp + 0xa0], xmm0
jmp 0x420320
mov edx, dword [0x480ff8]
mov ecx, dword [0x480ff4]
mov esi, 0x8acb43a1
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0xb351f6d3
cmovne esi, ebx
test edx, eax
mov eax, esi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, esi
nop word cs:[eax + eax]
cmp eax, 0x1578f1d3
jle 0x420380
cmp eax, 0x3f016367
jle 0x4203e0
cmp eax, 0x75a17374
jg 0x420500
cmp eax, 0x49f67e5d
jg 0x420655
cmp eax, 0x3f016368
je 0x4207d7
cmp eax, 0x491f9ff8
jne 0x420320
vmovapd xmm0, xmmword [esp + 0xa0]
mov eax, 0xad3cba5
vmovsd qword [esp + 0x90], xmm0
jmp 0x420320
cmp eax, 0xce2d45a4
jle 0x420480
cmp eax, 0xe42a0e22
jg 0x42053b
cmp eax, 0xd17ef9a4
jg 0x42069e
cmp eax, 0xce2d45a5
je 0x4207e1
cmp eax, 0xcf192736
jne 0x420320
mov eax, dword [0x480ff8]
mov esi, 0x206a04db
mov ebx, 0xd1ea2112
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0xd1ea2112
jmp 0x420638
cmp eax, 0x2e4cca21
jg 0x4205ca
cmp eax, 0x25bb7460
jg 0x420711
cmp eax, 0x1578f1d4
je 0x42080c
cmp eax, 0x206a04db
jne 0x420320
vmovsd xmm0, qword [esp + 0x78]
lea eax, [esp + 0xc4]
mov dword [esp + 0x3c], eax
mov eax, 0xbb23319b
vmovsd qword [esp + 0x28], xmm0
nop dword [eax + eax]
cmp eax, 0xfa259480
je 0x420824
cmp eax, 0xbb23319b
jne 0x420430
mov eax, dword [esp + 0x3c]
vmovsd xmm0, qword [esp + 0x28]
mov dword [esp + 8], eax
vmovsd qword [esp], xmm0
call fcn.00441654
fstp qword [esp + 0x80]
mov eax, 0xfa259480
vmovsd xmm0, qword [esp + 0x80]
jmp 0x420430
cmp eax, 0x92ece9a4
jle 0x4205f5
cmp eax, 0xb351f6d2
jg 0x420731
cmp eax, 0x92ece9a5
je 0x420894
cmp eax, 0xa64bf696
jne 0x420320
mov edx, dword [0x480ff8]
mov ecx, dword [0x480ff4]
mov esi, 0xd17ef9a5
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x1578f1d4
cmovne edx, esi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, esi
mov esi, dword [esp + 0x4c]
cmp ecx, 0xa
cmovge eax, edx
cmp esi, 0x2000
sete byte [esp + 0x27]
jmp 0x420320
cmp eax, 0x791bfb26
jg 0x420750
cmp eax, 0x75a17375
je 0x4202d4
cmp eax, 0x78195a98
jne 0x420320
mov eax, dword [esp + 0x50]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x40], eax
mov eax, 0x92ece9a5
jmp 0x420320
cmp eax, 0x4eb0114
jg 0x42078c
cmp eax, 0xe42a0e23
je 0x4208d3
cmp eax, 0x450227f
jne 0x420320
vmovsd xmm0, qword [esp + 0x98]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], esi
vmovsd qword [esp + 0x10], xmm0
call fcn.00426590
vmovsd xmm0, qword [ebp + 0x1c]
mov esi, eax
vmovsd qword [esp], xmm0
call fcn.00435130
mov ebx, eax
mov eax, 0xd31b4366
nop word [eax + eax]
cmp eax, 0xd31b4366
je 0x4205c3
cmp eax, 0x809a3f1d
jne 0x4205b0
jmp 0x4208dd
mov eax, 0x809a3f1d
jmp 0x4205b0
cmp eax, 0x37d54086
jle 0x4207c2
cmp eax, 0x37d54087
je 0x420950
cmp eax, 0x3d532e39
jne 0x420320
mov eax, 0x49f67e5e
jmp 0x420320
cmp eax, 0x8440ae5f
je 0x420983
cmp eax, 0x8acb43a1
je 0x42099d
cmp eax, 0x90ecc436
jne 0x420320
mov eax, dword [0x480ff8]
mov esi, 0xce2d45a5
mov ebx, 0x3f016368
lea ecx, [eax + 1]
imul ecx, eax
mov eax, 0x3f016368
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
cmove eax, esi
cmp dword [0x480ff4], 0xa
setl dl
cmovge eax, ebx
xor dl, cl
cmovne eax, esi
jmp 0x420320
cmp eax, 0x49f67e5e
je 0x4209a7
cmp eax, 0x56ecc195
jne 0x420320
mov edx, dword [0x480ff8]
mov ecx, dword [0x480ff4]
mov esi, 0x1578f1d4
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0xa64bf696
jmp 0x420302
cmp eax, 0xd17ef9a5
je 0x4209dc
cmp eax, 0xd1ea2112
jne 0x420320
vmovsd xmm0, qword [esp + 0x78]
lea eax, [esp + 0xc4]
mov dword [esp + 0x3c], eax
mov eax, 0xbb23319b
vmovsd qword [esp + 0x28], xmm0
cmp eax, 0xfa259480
je 0x4209e6
cmp eax, 0xbb23319b
jne 0x4206d0
mov eax, dword [esp + 0x3c]
vmovsd xmm0, qword [esp + 0x28]
mov dword [esp + 8], eax
vmovsd qword [esp], xmm0
call fcn.00441654
fstp qword [esp + 0x88]
mov eax, 0xfa259480
vmovsd xmm0, qword [esp + 0x88]
jmp 0x4206d0
cmp eax, 0x25bb7461
je 0x420a22
cmp eax, 0x2ce69896
jne 0x420320
mov eax, 0x37d54087
jmp 0x420320
cmp eax, 0xb351f6d3
je 0x420aff
cmp eax, 0xb89c6c65
jne 0x420320
mov eax, dword [esp + 0x58]
jmp 0x420320
cmp eax, 0x791bfb27
je 0x420b44
cmp eax, 0x7b21f337
jne 0x420320
mov eax, dword [0x480ff8]
mov ebx, 0x37d54087
mov esi, 0x2ce69896
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0x2ce69896
jmp 0x420877
cmp eax, 0x4eb0115
je 0x420b5b
cmp eax, 0xad3cba5
jne 0x420320
vmovsd xmm0, qword [esp + 0x90]
mov eax, 0x791bfb27
vucomisd xmm0, qword [0x459250]
seta byte [esp + 0x3b]
jmp 0x420320
cmp eax, 0x2e4cca22
jne 0x420c1c
mov eax, 0x25bb7461
jmp 0x420320
mov eax, 0xce2d45a5
jmp 0x420320
mov eax, dword [ebp + 0x14]
mov ebx, 0x3d532e39
mov esi, 0x3f016368
mov dword [esp + 0x64], eax
mov eax, dword [0x480ff8]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, 0x3f016368
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
jmp 0x420877
mov eax, dword [esp + 0x4c]
cmp eax, 0x2000
mov eax, 0xa64bf696
sete byte [esp + 0x27]
jmp 0x420320
vmovsd qword [esp + 0x30], xmm0
mov ebx, 0x2e4cca22
mov esi, 0xd1ea2112
vmovsd xmm0, qword [esp + 0x30]
mov eax, dword [esp + 0xc4]
mov ecx, eax
neg ecx
cmovs ecx, eax
mov eax, 0xa7c5ac5
imul edx, ecx, 0x7597
shr edx, 5
mulx eax, eax, eax
shr eax, 7
add edi, eax
mov eax, dword [0x480ff8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0xd1ea2112
sete cl
cmove eax, ebx
cmp dword [0x480ff4], 0xa
setl dl
cmovge eax, esi
xor dl, cl
cmovne eax, ebx
jmp 0x420320
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x44]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00430830
mov edi, eax
movzx eax, byte [esp + 0x27]
mov ecx, 0x25bb7461
mov dword [esp + 0x60], esi
not al
or al, 0xfe
cmp al, 0xff
mov eax, 0x491f9ff8
cmove eax, ecx
jmp 0x420320
mov eax, 0x4eb0115
jmp 0x420320
lea eax, [esp + 0xd0]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x30]
call fcn.00411510
lea edx, [ebp + 0xc]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0xc0], edx
mov dword [esp + 0xbc], ecx
movzx edx, bl
mov ecx, dword [esp + 0x48]
vmovsd xmm0, qword [esp + 0xbc]
vmovsd qword [esp + 4], xmm0
mov dword [esp + 0x1c], edx
movsx edx, byte [ebp + 0x18]
mov dword [esp + 0x18], esi
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
mov edx, dword [ebp + 8]
mov dword [esp + 0xc], esi
mov dword [esp], edx
call fcn.004328b0
sub esp, 0x20
mov eax, 0x32b626a2
jmp 0x420320
mov edx, dword [0x480ff8]
mov ecx, dword [0x480ff4]
mov esi, 0x2ce69896
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0x78195a98
jmp 0x420302
mov dword [esp + 0x44], 0xffffffff
mov eax, 0x92ece9a5
mov dword [esp + 0x40], 0xffffffff
jmp 0x420320
mov eax, 0xb351f6d3
jmp 0x420320
mov eax, dword [esp + 0x64]
mov ecx, 0xfc4081c9
add eax, 0x18
nop word cs:[eax + eax]
cmp ecx, 0xfc4081c9
je 0x4209d5
cmp ecx, 0xe25aa6d3
jne 0x4209c0
jmp 0x420b70
mov ecx, 0xe25aa6d3
jmp 0x4209c0
mov eax, 0xb89c6c65
jmp 0x420320
vmovsd qword [esp + 0x30], xmm0
vmovsd xmm0, qword [esp + 0x30]
mov eax, dword [esp + 0xc4]
mov ecx, eax
neg ecx
cmovs ecx, eax
mov eax, 0xa7c5ac5
imul edx, ecx, 0x7597
shr edx, 5
mulx eax, eax, eax
shr eax, 7
add edi, eax
mov eax, 0x206a04db
jmp 0x420320
lea eax, [edi + 0x32]
lea ecx, [esp + 0xd0]
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.004310a0
sub esp, 8
mov eax, dword [esp + 0x60]
vmovsd xmm0, qword [ebp + 0x1c]
mov esi, 0xff6dce3b
mov dword [esp + 0x68], eax
mov eax, dword [0x4813b0]
vmovsd qword [esp + 0x98], xmm0
lea ecx, [eax + 1]
imul eax, ecx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne al
cmp dword [0x4813ac], 0xa
setge cl
mov edx, ecx
or cl, al
xor dl, al
xor cl, 1
mov eax, 0xcae462d5
or cl, dl
mov ecx, 0xb1dd1610
mov edx, 0x912e4594
cmovne eax, ecx
mov ecx, 0xcae462d5
cmovne ecx, edx
nop
cmp esi, 0xcae462d4
jle 0x420ad0
cmp esi, 0xcae462d5
je 0x420ae5
cmp esi, 0xd198ad43
je 0x420af0
cmp esi, 0xff6dce3b
jne 0x420aa0
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x28], esi
mov esi, 0xd198ad43
jmp 0x420aa0
cmp esi, 0x912e4594
je 0x420af4
cmp esi, 0xb1dd1610
jne 0x420aa0
jmp 0x420b8f
mov esi, dword [esp + 0x28]
mov esi, 0x912e4594
jmp 0x420aa0
mov esi, ecx
jmp 0x420aa0
mov edx, dword [esp + 0x28]
mov esi, eax
mov edx, dword [edx + 0x14]
jmp 0x420aa0
mov edx, dword [0x480ff8]
mov ecx, dword [0x480ff4]
mov esi, 0xe42a0e23
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x8acb43a1
cmovne edx, esi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, esi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x420320
cmp byte [esp + 0x3b], 0
mov eax, 0x25bb7461
mov ecx, 0x75a17375
cmovne eax, ecx
jmp 0x420320
vmovsd xmm0, qword [ebp + 0x1c]
mov eax, 0xcf192736
vmovsd qword [esp + 0x78], xmm0
jmp 0x420320
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], ecx
mov eax, 0x7b21f337
jmp 0x420320
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x48]
mov dword [esp + 8], 0x4c
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004317a0
mov dword [esp + 0x6c], eax
lea eax, [esp + 0xd0]
mov dword [esp + 0x28], eax
mov eax, 0x71fc69e4
nop
cmp eax, 0xe88d4584
je 0x420be9
cmp eax, 0x71fc69e4
jne 0x420bd0
mov ecx, dword [esp + 0x28]
mov eax, 0xe88d4584
jmp 0x420bd0
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0xd0]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x10]
mov dword [esp], 0
mov dword [esp + 0x70], eax
call fcn.004274e0
sub esp, 4
mov dword [esp + 0x74], eax
mov eax, 0x450227f
jmp 0x420320
cmp eax, 0x32b626a2
jne 0x420320
lea ecx, [esp + 0xd0]
call section..text
mov ecx, dword [esp + 0xe8]
xor ecx, ebp
call fcn.0043a930
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x1c