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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xb0
mov esi, esp
mov dword [esi + 0x74], ecx
mov eax, dword [0x4b22c0]
xor eax, ebp
mov dword [esi + 0xa8], eax
mov eax, 0xe9e30d10
jmp 0x421900
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x48]
mov edx, dword [esi + 0x4c]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov eax, dword [esi + 0x1c]
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
push dword [eax]
push dword [ecx + 4]
push dword [ecx]
call fcn.004327c0
add esp, 0xc
mov ecx, dword [esi + 0x1c]
mov dword [ecx], eax
mov eax, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
mov eax, dword [eax]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
mov eax, dword [esi + 0x30]
mov eax, 0xad8b6a19
nop dword [eax + eax]
cmp eax, 0xe84727fe
jg 0x4219c0
cmp eax, 0xb91eb281
jg 0x421ac0
cmp eax, 0x8e88963e
jle 0x421b44
cmp eax, 0xa3c16ef8
jle 0x421c4e
cmp eax, 0xa3c16ef9
je 0x421c70
cmp eax, 0xad8b6a19
jne 0x421900
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x48]
mov edx, dword [esi + 0x4c]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov eax, dword [esi + 0x1c]
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
push dword [eax]
push dword [ecx + 4]
push dword [ecx]
call fcn.004327c0
add esp, 0xc
mov ecx, dword [esi + 0x1c]
mov edi, 0x4c5b1164
mov ebx, 0x1abb8c57
mov dword [ecx], eax
mov eax, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
mov eax, dword [eax]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
mov eax, dword [esi + 0x30]
cmp byte [eax], 0
mov eax, dword [0x4b3ff0]
lea ecx, [eax - 1]
setne byte [esi + 0x23]
imul ecx, eax
mov eax, 0x1abb8c57
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
cmove eax, edi
cmp dword [0x4b3fec], 0xa
setl dl
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
jmp 0x421900
cmp eax, 0x1abb8c56
jg 0x421b00
cmp eax, 0xf8f869b9
jg 0x421b77
cmp eax, 0xe84727ff
je 0x421c7a
cmp eax, 0xe998a0e2
je 0x421cac
cmp eax, 0xe9e30d10
jne 0x421900
push eax
mov eax, esp
mov dword [esi + 0x5c], eax
push eax
mov eax, esp
mov dword [esi + 0x28], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 8], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x44], eax
push eax
mov eax, esp
mov dword [esi + 0x14], eax
push eax
mov eax, esp
mov dword [esi + 0x30], eax
push eax
mov eax, esp
mov dword [esi + 0x34], eax
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 0x18], eax
push eax
mov eax, esp
mov dword [esi + 0x1c], eax
push eax
mov eax, esp
mov dword [esi + 0xc], eax
push eax
mov eax, esp
mov dword [esi + 0x38], eax
push eax
mov eax, esp
mov dword [esi + 0x3c], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x60], eax
movzx ecx, byte [ebp + 0x18]
mov eax, dword [esi + 0x5c]
mov byte [eax], cl
mov ecx, dword [ebp + 0x14]
mov eax, dword [esi + 0x28]
mov dword [eax], ecx
mov eax, dword [esi + 0x74]
mov dword [esi + 0x64], eax
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
call fcn.004017a0
mov eax, dword [esi + 0x44]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
add eax, 0x14
mov dword [esi + 0x10], eax
mov eax, 0xdaab413e
nop word [eax + eax]
cmp eax, 0x67f0cec4
je 0x421d03
cmp eax, 0xdaab413e
jne 0x421a90
mov eax, dword [esi + 0x10]
mov eax, dword [eax]
mov dword [esi + 4], eax
mov eax, 0x67f0cec4
jmp 0x421a90
cmp eax, 0xca8b04a8
jg 0x421ba2
cmp eax, 0xb91eb282
je 0x421d13
cmp eax, 0xc641b4ff
je 0x421d64
cmp eax, 0xc8385cad
jne 0x421900
mov eax, 0xe84727ff
jmp 0x421900
cmp eax, 0x4c5b1163
jg 0x421bdd
cmp eax, 0x1abb8c57
je 0x4218b8
cmp eax, 0x1cb70717
je 0x421da7
cmp eax, 0x208834e7
jne 0x421900
mov dword [esi + 0x58], 0xffffffff
mov eax, 0xf8f869ba
mov dword [esi + 0x54], 0xffffffff
jmp 0x421900
cmp eax, 0x84610e3f
je 0x421dc9
cmp eax, 0x8b512345
je 0x421e3f
cmp eax, 0x8e136621
jne 0x421900
vmovsd xmm0, qword [esi + 0x90]
mov eax, 0xe998a0e2
jmp 0x421900
cmp eax, 0xf8f869ba
je 0x421e99
cmp eax, 0x2e4c0e1
je 0x421ee3
cmp eax, 0x14c348a9
jne 0x421900
mov eax, 0x554c000a
jmp 0x421900
cmp eax, 0xca8b04a9
je 0x421ef0
cmp eax, 0xddbe991b
je 0x421f06
cmp eax, 0xe14d776c
jne 0x421900
vmovsd xmm0, qword [ebp + 0x1c]
mov eax, dword [esi + 0x38]
mov eax, 0x8b512345
vmovsd qword [esi + 0xa0], xmm0
jmp 0x421900
cmp eax, 0x4c5b1164
je 0x421f4b
cmp eax, 0x554c000a
je 0x421f61
cmp eax, 0x78f67c2a
jne 0x421900
mov edx, dword [0x4b3ff0]
mov ecx, dword [0x4b3fec]
mov edi, 0xc8385cad
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, 0x2e4c0e1
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
mov ecx, dword [esi + 0x28]
cmovge eax, edx
mov ecx, dword [ecx]
mov dword [esi + 0x80], ecx
jmp 0x421900
cmp eax, 0x9dcf91cf
jne 0x4222c6
vmovsd xmm0, qword [ebp + 0x1c]
mov eax, 0xc641b4ff
vmovsd qword [esi + 0x90], xmm0
jmp 0x421900
mov eax, 0x1cb70717
jmp 0x421900
mov eax, dword [esi + 0x80]
mov ecx, 0x6f6e20d4
add eax, 0x18
nop dword [eax + eax]
cmp ecx, 0x6f6e20d4
je 0x421ca5
cmp ecx, 0x15060fec
jne 0x421c90
jmp 0x421fad
mov ecx, 0x15060fec
jmp 0x421c90
vmovsd xmm0, qword [esi + 0x90]
mov eax, dword [0x4b3ff0]
mov ebx, 0xa3c16ef9
mov edi, 0x8e136621
vandpd xmm0, xmm0, xmmword [0x45c250]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, 0x8e136621
not ecx
vmovlpd qword [esi + 0x98], xmm0
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
cmove eax, ebx
cmp dword [0x4b3fec], 0xa
setl dl
cmovge eax, edi
xor dl, cl
cmovne eax, ebx
jmp 0x421900
mov eax, dword [esi + 4]
mov dword [esi + 0x7c], eax
mov eax, 0xb91eb282
jmp 0x421900
mov eax, dword [esi + 0x7c]
mov ecx, eax
xor ecx, 0xffffcfff
and ecx, eax
mov eax, dword [esi + 0x14]
mov dword [eax], ecx
mov ecx, 0xddbe991b
mov eax, dword [esi + 0x30]
mov eax, dword [esi + 0x14]
cmp dword [eax], 0x2000
mov eax, dword [esi + 0x30]
sete byte [eax]
mov eax, dword [esi + 0x34]
mov eax, dword [esi + 0x14]
cmp dword [eax], 0x3000
mov eax, dword [esi + 0x34]
sete byte [eax]
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x34]
cmp byte [eax], 0
mov eax, 0x208834e7
cmove eax, ecx
jmp 0x421900
mov edx, dword [0x4b3ff0]
mov ecx, dword [0x4b3fec]
mov edi, 0x8e136621
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, 0xe998a0e2
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x421900
vmovsd xmm0, qword [esi + 0x98]
mov eax, 0x554c000a
mov ecx, 0xe14d776c
vucomisd xmm0, qword [0x45c240]
cmova eax, ecx
jmp 0x421900
lea ecx, [ebp + 0xc]
mov eax, dword [esi + 0x60]
vmovsd xmm0, qword [ecx]
vmovsd qword [eax], xmm0
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x2c], ecx
movzx edx, byte [esi + 0x24]
mov edi, dword [esi + 0x84]
mov ebx, dword [esi + 0x88]
movsx ecx, byte [esi + 0x25]
mov dword [esi + 0x78], ecx
mov ecx, dword [esi + 0x8c]
mov dword [esi + 0x40], ecx
sub esp, 0x20
vmovsd xmm0, qword [eax]
mov ecx, dword [ebp + 8]
vmovsd qword [esp + 4], xmm0
mov dword [esp + 0x1c], edx
mov dword [esp], ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ebx
mov eax, dword [esi + 0x78]
mov edx, dword [esi + 0x40]
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
call fcn.004352a0
mov eax, 0x8e88963f
jmp 0x421900
mov eax, dword [esi + 0x38]
vmovsd xmm0, qword [esi + 0xa0]
sub esp, 0xc
mov dword [esp + 8], eax
vmovsd qword [esp], xmm0
call fcn.00433000
fstp st(0)
add esp, 0xc
mov eax, dword [esi + 0x38]
mov eax, dword [eax]
mov ecx, eax
neg ecx
cmovs ecx, eax
mov eax, 0xa7c5ac5
imul edx, ecx, 0x7597
mov ecx, dword [esi + 0xc]
shr edx, 5
mulx eax, eax, eax
shr eax, 7
add eax, dword [ecx]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
mov eax, dword [esi + 0x38]
mov eax, 0x14c348a9
jmp 0x421900
mov eax, dword [0x4b3ff0]
mov ebx, 0xad8b6a19
mov edi, 0x1abb8c57
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0x1abb8c57
sete cl
cmove eax, ebx
cmp dword [0x4b3fec], 0xa
setl dl
cmovge eax, edi
mov edi, dword [esi + 0x58]
xor dl, cl
mov edx, dword [esi + 0x54]
cmovne eax, ebx
mov dword [esi + 0x48], edi
mov dword [esi + 0x4c], edx
jmp 0x421900
mov eax, dword [esi + 0x28]
mov eax, 0x78f67c2a
jmp 0x421900
mov eax, dword [esi + 0x68]
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x54], eax
mov eax, 0xf8f869ba
jmp 0x421900
mov edx, dword [0x4b3ff0]
mov ecx, dword [0x4b3fec]
mov edi, 0x78f67c2a
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, 0x2e4c0e1
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x421900
cmp byte [esi + 0x23], 0
mov eax, 0x554c000a
mov ecx, 0x9dcf91cf
cmovne eax, ecx
jmp 0x421900
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov ecx, dword [esi + 8]
add eax, 0x32
push 0
push eax
call fcn.00433170
mov eax, dword [esi + 0x3c]
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov dword [esi + 0x2c], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
add eax, 0x14
mov dword [esi + 0x10], eax
mov eax, 0xdaab413e
nop
cmp eax, 0x67f0cec4
je 0x421fc8
cmp eax, 0xdaab413e
jne 0x421f90
mov eax, dword [esi + 0x10]
mov eax, dword [eax]
mov dword [esi + 4], eax
mov eax, 0x67f0cec4
jmp 0x421f90
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 0x6c], eax
mov dword [esi + 0x68], ecx
mov eax, 0xca8b04a9
jmp 0x421900
push dword [esi + 4]
push 0x4c
push dword [esi + 0x44]
push dword [esi + 0x64]
call fcn.00433900
add esp, 0x10
mov dword [esi + 0x40], eax
mov edx, 0x18f17654
mov eax, dword [esi + 8]
add eax, 0x10
mov dword [esi + 0x10], eax
mov eax, dword [0x4b3fe8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x4b3fe4], 0xa
setl cl
or cl, al
mov eax, 0xdf6f2b31
mov ecx, 0xef180c92
cmovne eax, ecx
mov ecx, 0xdf6f2b31
cmovne ecx, edx
mov edx, 0xebc401a2
nop dword [eax + eax]
cmp edx, 0xef180c91
jle 0x422060
cmp edx, 0xef180c92
je 0x422074
cmp edx, 0x23668ff
je 0x422085
cmp edx, 0x18f17654
jne 0x422030
mov edx, dword [esi + 0x10]
mov edx, dword [edx]
mov dword [esi + 4], edx
mov edx, eax
jmp 0x422030
cmp edx, 0xdf6f2b31
je 0x42207b
cmp edx, 0xebc401a2
jne 0x422030
mov edx, ecx
jmp 0x422030
mov edx, 0x23668ff
jmp 0x422030
mov edx, dword [esi + 0x10]
mov edx, 0x18f17654
jmp 0x422030
mov ebx, dword [esi + 4]
mov eax, dword [esi + 8]
mov ecx, dword [0x4b3fe0]
mov edi, 0xe68bbe09
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete cl
cmp dword [0x4b3fdc], 0xa
setl dl
or dl, cl
mov ecx, 0xb9bed6d9
mov edx, 0xe68bbe09
cmovne edi, ecx
mov ecx, 0x70ea01fd
cmovne edx, ecx
mov ecx, 0x1a5075d3
nop dword [eax]
cmp ecx, 0x1a5075d2
jle 0x422100
cmp ecx, 0x1a5075d3
je 0x422117
cmp ecx, 0x552e8d07
je 0x422122
cmp ecx, 0x70ea01fd
jne 0x4220d0
mov ecx, edi
jmp 0x4220d0
cmp ecx, 0xb9bed6d9
je 0x42211b
cmp ecx, 0xe68bbe09
jne 0x4220d0
mov ecx, 0x70ea01fd
jmp 0x4220d0
mov ecx, edx
jmp 0x4220d0
mov ecx, 0x552e8d07
jmp 0x4220d0
mov dword [esi + 4], eax
mov ecx, dword [esi + 4]
call fcn.00419350
sub esp, 0x18
vmovsd xmm0, qword [ebp + 0x1c]
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 0x40]
mov dword [esp + 4], ebx
mov dword [esp], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
vmovsd qword [esp + 0x10], xmm0
call fcn.00427f90
add esp, 0x18
mov ecx, dword [esi + 0x3c]
mov dword [ecx], eax
mov eax, dword [0x4b3fd8]
mov ecx, dword [0x4b3fd4]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
mov eax, 0xaebcd76a
sete byte [esi + 0x26]
cmp ecx, 0xa
setl byte [esi + 0x27]
nop word cs:[eax + eax]
cmp eax, 0xf30308c9
jg 0x4221d0
cmp eax, 0xa0527e5d
je 0x4221f0
cmp eax, 0xaebcd76a
je 0x4221ff
cmp eax, 0xd5731ede
jne 0x422190
sub esp, 8
vmovsd xmm0, qword [ebp + 0x1c]
vmovsd qword [esp], xmm0
call fcn.004397c0
add esp, 8
mov eax, 0x1fc02597
jmp 0x422190
cmp eax, 0xf30308ca
je 0x42227f
cmp eax, 0x1fc02597
je 0x422229
cmp eax, 0x5a3305b4
jne 0x422190
mov eax, 0xa0527e5d
jmp 0x422190
cmp dword [esi + 4], 0
mov eax, 0xf30308ca
setle byte [esi + 0x2c]
jmp 0x422190
movzx ecx, byte [esi + 0x26]
movzx eax, byte [esi + 0x27]
mov edi, 0x1fc02597
mov edx, ecx
xor dl, al
mov edx, 0xd5731ede
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x422190
sub esp, 8
vmovsd xmm0, qword [ebp + 0x1c]
vmovsd qword [esp], xmm0
call fcn.004397c0
add esp, 8
mov dword [esi + 4], eax
mov eax, dword [0x4b3fd8]
mov ebx, 0x5a3305b4
mov edi, 0xd5731ede
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0xd5731ede
sete cl
cmove eax, ebx
cmp dword [0x4b3fd4], 0xa
setl dl
cmovge eax, edi
xor dl, cl
cmovne eax, ebx
jmp 0x422190
movzx eax, byte [esi + 0x2c]
and al, 1
mov byte [esi + 0x10], al
movzx eax, byte [esi + 0x10]
mov byte [esi + 0x24], al
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov dword [esi + 0x84], eax
mov ecx, dword [esi + 8]
call fcn.0041bc20
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x5c]
movzx eax, byte [eax]
mov byte [esi + 0x25], al
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov dword [esi + 0x8c], eax
mov eax, 0x84610e3f
jmp 0x421900
cmp eax, 0x8e88963f
jne 0x421900
mov eax, dword [esi + 0x3c]
mov eax, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x34]
mov eax, dword [esi + 0x30]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 8]
call section..text
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xa8]
xor ecx, ebp
call fcn.0043d670
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x1c