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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc0
mov esi, esp
mov dword [esi + 0x44], ecx
mov eax, dword [0x4ad2c0]
xor eax, ebp
mov dword [esi + 0xb8], eax
mov eax, dword [0x4af000]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, dword [0x4aeffc]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x1f]
cmp eax, 0xa
mov eax, 0x3708a982
setl byte [esi + 0x20]
jmp 0x4204a0
mov edx, dword [0x4af000]
mov ecx, dword [0x4aeffc]
mov edi, 0x3e1491e1
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, 0x910d5df5
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
nop dword [eax]
cmp eax, 0x107db058
jg 0x420510
cmp eax, 0xd16d5a76
jle 0x420560
cmp eax, 0xf4538ed7
jle 0x42060f
cmp eax, 0x272d572
jg 0x4207fe
cmp eax, 0xf4538ed8
je 0x420925
cmp eax, 0xfdd2597f
jne 0x4204a0
mov eax, 0x14f8b589
imul dword [esi + 0x8c]
mov eax, edx
shr eax, 0x1f
sar edx, 0xd
add edx, eax
mov eax, dword [esi + 0x18]
add edx, dword [eax]
mov eax, dword [esi + 0x18]
mov dword [eax], edx
mov eax, dword [esi + 0x40]
mov eax, 0x4be2849a
jmp 0x4204a0
cmp eax, 0x3e1491e0
jg 0x4205b0
cmp eax, 0x2717b293
jle 0x420649
cmp eax, 0x2fec7e73
jg 0x42081e
cmp eax, 0x2717b294
je 0x420a06
cmp eax, 0x2ef5aa70
jne 0x4204a0
mov eax, 0x89e47173
jmp 0x4204a0
cmp eax, 0x9df1dc22
jle 0x42072a
cmp eax, 0xa857dac3
jg 0x420863
cmp eax, 0x9df1dc23
je 0x420a48
cmp eax, 0xa5b0fda4
jne 0x4204a0
cmp byte [esi + 0x21], 0
mov eax, 0xcdc67ec9
mov ecx, 0x107db059
cmovne eax, ecx
jmp 0x4204a0
cmp eax, 0x462671d7
jle 0x420761
cmp eax, 0x57ae6069
jg 0x42088e
cmp eax, 0x462671d8
je 0x420b66
cmp eax, 0x4be2849a
jne 0x4204a0
mov edx, dword [0x4af000]
mov ecx, dword [0x4aeffc]
mov edi, 0x57ae606a
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, 0xf4538ed8
jmp 0x420489
cmp eax, 0xe11ced29
jg 0x4208f4
cmp eax, 0xd16d5a77
je 0x420bab
cmp eax, 0xd29f3eb6
jne 0x4204a0
mov eax, dword [esi + 0x24]
vmovsd xmm0, qword [eax]
mov eax, 0x272d573
vmovsd qword [esi + 0xa0], xmm0
jmp 0x4204a0
cmp eax, 0x107db059
je 0x420bed
cmp eax, 0x1cddde48
je 0x42045b
cmp eax, 0x25f6bc03
jne 0x4204a0
push dword [esi + 0x94]
push 0x4c
push dword [esi + 0x98]
push dword [esi + 0x70]
call fcn.004325c0
add esp, 0x10
mov dword [esi + 0x54], eax
mov edx, 0xa9cf5c0f
mov edi, 0x809569cc
mov eax, dword [esi + 8]
mov dword [esi + 4], eax
mov eax, dword [0x4aeff8]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x4aeff4], 0xa
setl cl
or cl, al
mov eax, 0x78b19bb1
mov ecx, 0x32b2cab9
cmovne eax, ecx
mov ecx, 0x78b19bb1
cmovne ecx, edx
nop dword [eax]
cmp edi, 0xa9cf5c0e
jle 0x420700
cmp edi, 0x78b19bb1
je 0x420715
cmp edi, 0x32b2cab9
je 0x42071f
cmp edi, 0xa9cf5c0f
jne 0x4206d0
mov edx, dword [esi + 4]
mov edi, eax
add edx, 0x10
jmp 0x4206d0
cmp edi, 0x809569cc
je 0x420726
cmp edi, 0x88dcb8bb
jne 0x4206d0
jmp 0x420c05
mov edi, dword [esi + 4]
mov edi, 0xa9cf5c0f
jmp 0x4206d0
mov edi, 0x88dcb8bb
jmp 0x4206d0
mov edi, ecx
jmp 0x4206d0
cmp eax, 0x89e47173
je 0x420ce8
cmp eax, 0x8ce17d50
je 0x420d70
cmp eax, 0x910d5df5
jne 0x4204a0
cmp byte [esi + 0x22], 0
mov eax, 0x4be2849a
mov ecx, 0xa857dac4
cmovne eax, ecx
jmp 0x4204a0
cmp eax, 0x3e1491e1
je 0x420d86
cmp eax, 0x40c542f7
je 0x420d90
cmp eax, 0x440b1a03
jne 0x4204a0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x74]
mov edi, 0x2fec7e74
mov dword [eax], ecx
mov eax, dword [esi + 0x2c]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0x2000
mov eax, dword [esi + 0x2c]
sete byte [eax]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0x3000
mov eax, dword [esi + 0x10]
sete byte [eax]
mov edx, dword [0x4af000]
mov ecx, dword [0x4aeffc]
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, 0xa5b0fda4
cmovne edi, ebx
test edx, eax
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
cmovge eax, edi
cmp byte [edx], 0
setne byte [esi + 0x21]
jmp 0x4204a0
cmp eax, 0x272d573
je 0x420d9a
cmp eax, 0xc35a441
jne 0x4204a0
mov eax, 0x9df1dc23
jmp 0x4204a0
cmp eax, 0x2fec7e74
je 0x420dc0
cmp eax, 0x3708a982
jne 0x4204a0
movzx ecx, byte [esi + 0x1f]
movzx eax, byte [esi + 0x20]
mov edi, 0x89e47173
mov ebx, 0x2ef5aa70
mov edx, eax
xor dl, cl
test al, al
mov eax, 0x2ef5aa70
cmovne eax, edi
test cl, cl
cmove eax, ebx
test dl, dl
cmovne eax, edi
jmp 0x4204a0
cmp eax, 0xa857dac4
je 0x420dfc
cmp eax, 0xcdc67ec9
jne 0x4204a0
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov dword [esi + 0x88], eax
mov eax, 0x2717b294
jmp 0x4204a0
cmp eax, 0x57ae606a
je 0x420e09
cmp eax, 0x60a5178f
jne 0x4204a0
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x58]
mov dword [eax], ecx
mov ecx, dword [esi + 0x34]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x3c]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x14]
push dword [eax]
push dword [ecx + 4]
push dword [ecx]
call fcn.00431890
add esp, 0xc
mov ecx, dword [esi + 0x3c]
mov dword [ecx], eax
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, 0x4be2849a
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
mov eax, 0xd29f3eb6
cmove eax, ecx
jmp 0x4204a0
cmp eax, 0xe11ced2a
jne 0x420fd7
mov eax, dword [0x4af000]
mov edi, 0x440b1a03
mov ebx, 0x2fec7e74
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0x2fec7e74
jmp 0x420d53
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 8]
add eax, 0x32
push 0
push eax
call fcn.00432050
mov eax, dword [esi + 0x30]
mov eax, dword [esi + 0x24]
mov edi, 0x40445780
vmovsd xmm0, qword [eax]
vmovsd qword [esi + 0xa8], xmm0
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x28]
mov ecx, dword [eax]
mov eax, dword [0x4af3f8]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
setne al
cmp dword [0x4af3f4], 0xa
setge dl
mov ah, dl
or dl, al
xor ah, al
xor dl, 1
or dl, ah
mov eax, 0xe6350323
mov edx, 0xc55e8175
cmovne eax, edx
mov edx, 0xe6350323
cmovne edx, edi
mov edi, 0xcb9a9286
nop word cs:[eax + eax]
cmp edi, 0xcb9a9285
jle 0x4209e0
cmp edi, 0xcb9a9286
je 0x4209fb
cmp edi, 0xe6350323
je 0x4209ff
cmp edi, 0x40445780
jne 0x4209b0
mov edi, eax
jmp 0x4209b0
cmp edi, 0x92fcba3a
je 0x420ec6
cmp edi, 0xc55e8175
jne 0x4209b0
mov edi, 0x92fcba3a
jmp 0x4209b0
mov edi, edx
jmp 0x4209b0
mov edi, 0x40445780
jmp 0x4209b0
mov eax, dword [esi + 0x88]
add eax, 0x18
mov dword [esi + 4], eax
mov eax, 0x9f494c8a
nop word [eax + eax]
cmp eax, 0x2cc4c95b
je 0x420f29
cmp eax, 0x9f494c8a
jne 0x420a20
mov eax, dword [esi + 4]
vmovsd xmm0, qword [eax]
mov eax, 0x2cc4c95b
vmovsd qword [esi + 0xb0], xmm0
jmp 0x420a20
push eax
push eax
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 0x14], eax
push eax
mov eax, esp
mov dword [esi + 0x3c], eax
push eax
mov eax, esp
mov dword [esi + 0x18], eax
push eax
mov eax, esp
mov dword [esi + 0x40], eax
push eax
mov eax, esp
mov dword [esi + 0x30], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x6c], eax
mov ecx, dword [ebp + 8]
vmovsd xmm0, qword [ebp + 0x1c]
mov eax, dword [esi + 0x84]
mov dword [eax], ecx
movzx ecx, byte [ebp + 0x18]
mov eax, dword [esi + 0x24]
vmovsd qword [eax], xmm0
mov eax, dword [esi + 0x64]
mov byte [eax], cl
mov ecx, dword [ebp + 0x14]
mov eax, dword [esi + 0x28]
mov dword [eax], ecx
mov eax, dword [esi + 0x68]
mov ecx, dword [esi + 0x44]
mov dword [eax], ecx
mov eax, dword [esi + 0x68]
mov eax, dword [eax]
mov dword [esi + 0x70], eax
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
call fcn.00401220
mov eax, dword [esi + 0x38]
mov eax, dword [esi + 0xc]
mov eax, dword [esi + 0x28]
mov ecx, dword [0x4af3f8]
mov edi, 0x40445780
lea edx, [ecx - 1]
mov eax, dword [eax]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
setne cl
cmp dword [0x4af3f4], 0xa
setge dl
mov ch, dl
or dl, cl
xor ch, cl
xor dl, 1
or dl, ch
mov ecx, 0xe6350323
mov edx, 0xc55e8175
cmovne ecx, edx
mov edx, 0xe6350323
cmovne edx, edi
mov edi, 0xcb9a9286
nop dword [eax]
cmp edi, 0xcb9a9285
jle 0x420b40
cmp edi, 0xcb9a9286
je 0x420b5b
cmp edi, 0xe6350323
je 0x420b5f
cmp edi, 0x40445780
jne 0x420b10
mov edi, ecx
jmp 0x420b10
cmp edi, 0x92fcba3a
je 0x420f45
cmp edi, 0xc55e8175
jne 0x420b10
mov edi, 0x92fcba3a
jmp 0x420b10
mov edi, edx
jmp 0x420b10
mov edi, 0x40445780
jmp 0x420b10
mov edx, dword [0x4af000]
mov ecx, dword [0x4aeffc]
mov edi, 0x1cddde48
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, 0x3e1491e1
cmovne edx, edi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, edx
jmp 0x4204a0
mov eax, dword [esi + 0x24]
vmovsd xmm0, qword [eax]
mov eax, dword [esi + 0x40]
sub esp, 0xc
mov dword [esp + 8], eax
vmovsd qword [esp], xmm0
call fcn.00431f60
fstp st(0)
add esp, 0xc
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov ecx, eax
neg ecx
cmovs ecx, eax
imul eax, ecx, 0x7597
mov dword [esi + 0x8c], eax
mov eax, 0xfdd2597f
jmp 0x4204a0
mov dword [esi + 0x58], 0xffffffff
mov eax, 0x60a5178f
mov dword [esi + 0x34], 0xffffffff
jmp 0x4204a0
mov dword [esi + 0xb0], edx
mov eax, dword [esi + 0xb0]
mov eax, dword [eax]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x4c], eax
mov eax, 0xbf7745bc
nop word cs:[eax + eax]
cmp eax, 0xd40e719e
jle 0x420c80
cmp eax, 0xd40e719f
je 0x420ca0
cmp eax, 0x2ba51479
je 0x420f6b
cmp eax, 0x79bd5c86
jne 0x420c30
mov eax, dword [esi + 4]
mov ebx, 0x2ba51479
mov dword [esi + 0x48], eax
mov eax, dword [0x4aeff0]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, 0xd40e719f
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
jmp 0x420cc6
cmp eax, 0x91f49581
je 0x420caa
cmp eax, 0xbf7745bc
jne 0x420c30
mov ecx, dword [esi + 0x4c]
call fcn.00418ff0
mov dword [esi + 4], eax
mov eax, 0x91f49581
jmp 0x420c30
mov eax, dword [esi + 4]
mov eax, 0x79bd5c86
jmp 0x420c30
mov eax, dword [0x4aeff0]
mov ebx, 0x79bd5c86
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0xd40e719f
sete cl
cmove eax, ebx
cmp dword [0x4aefec], 0xa
mov edi, 0xd40e719f
setl dl
cmovge eax, edi
xor dl, cl
cmovne eax, ebx
jmp 0x420c30
push eax
mov eax, esp
mov dword [esi + 0x84], eax
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 0x24], eax
push eax
mov eax, esp
mov dword [esi + 0x64], eax
push eax
mov eax, esp
mov dword [esi + 0x28], eax
push eax
mov eax, esp
mov dword [esi + 0x68], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 8], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x38], eax
push eax
mov eax, esp
mov dword [esi + 0xc], eax
push eax
mov eax, esp
mov dword [esi + 0x2c], eax
push eax
mov eax, esp
mov dword [esi + 0x10], eax
mov eax, dword [0x4af000]
mov edi, 0xc35a441
mov ebx, 0x2ef5aa70
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0x2ef5aa70
sete cl
cmove eax, edi
cmp dword [0x4aeffc], 0xa
setl dl
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
jmp 0x4204a0
mov eax, dword [esi + 0x78]
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x7c]
mov dword [esi + 0x34], eax
mov eax, 0x60a5178f
jmp 0x4204a0
mov eax, 0x1cddde48
jmp 0x4204a0
mov eax, 0x25f6bc03
jmp 0x4204a0
vmovsd xmm0, qword [esi + 0xa0]
mov eax, 0x462671d8
vandpd xmm0, xmm0, xmmword [0x45b200]
vucomisd xmm0, qword [0x45b210]
seta byte [esi + 0x22]
jmp 0x4204a0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x74]
mov dword [eax], ecx
mov eax, dword [esi + 0x2c]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0x2000
mov eax, dword [esi + 0x2c]
sete byte [eax]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0x3000
mov eax, dword [esi + 0x10]
sete byte [eax]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, 0x440b1a03
jmp 0x4204a0
mov eax, dword [esi + 0x40]
mov eax, 0xd16d5a77
jmp 0x4204a0
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 8]
add eax, 0x32
push 0
push eax
call fcn.00432050
mov eax, dword [esi + 0x30]
mov eax, dword [esi + 0x24]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x28]
mov ecx, dword [0x4af3f8]
mov edi, 0x40445780
lea edx, [ecx + 1]
mov eax, dword [eax]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [0x4af3f4], 0xa
setl dl
or dl, cl
mov ecx, 0xe6350323
mov edx, 0xc55e8175
cmovne ecx, edx
mov edx, 0xe6350323
cmovne edx, edi
mov edi, 0xcb9a9286
nop dword [eax]
cmp edi, 0xcb9a9285
jle 0x420ea0
cmp edi, 0xcb9a9286
je 0x420ebb
cmp edi, 0xe6350323
je 0x420ebf
cmp edi, 0x40445780
jne 0x420e70
mov edi, ecx
jmp 0x420e70
cmp edi, 0x92fcba3a
je 0x420fbe
cmp edi, 0xc55e8175
jne 0x420e70
mov edi, 0x92fcba3a
jmp 0x420e70
mov edi, edx
jmp 0x420e70
mov edi, 0x40445780
jmp 0x420e70
mov edi, dword [0x4af000]
mov dword [esi + 0xb0], ecx
mov edx, dword [0x4aeffc]
mov ecx, dword [esi + 0xb0]
lea eax, [edi + 1]
imul eax, edi
mov ecx, dword [ecx + 0x14]
mov edi, 0x57ae606a
not eax
or eax, 0xfffffffe
mov dword [esi + 0x94], ecx
cmp eax, 0xffffffff
mov ecx, dword [esi + 0x38]
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0x40c542f7
cmovne edi, ebx
cmp eax, 0xffffffff
mov eax, edi
cmove eax, ebx
cmp edx, 0xa
mov dword [esi + 0x98], ecx
cmovge eax, edi
jmp 0x4204a0
mov eax, dword [esi + 0xb0]
mov ecx, dword [esi + 0xb4]
mov dword [esi + 0x78], eax
mov dword [esi + 0x7c], ecx
mov eax, 0x8ce17d50
jmp 0x4204a0
mov dword [esi + 0xb0], eax
mov eax, dword [esi + 0xb0]
mov eax, dword [eax + 0x14]
mov ecx, eax
xor ecx, 0xffffcfff
and ecx, eax
mov eax, 0xe11ced2a
mov dword [esi + 0x74], ecx
jmp 0x4204a0
mov eax, dword [esi + 0x48]
mov dword [esi + 0xb0], eax
mov eax, dword [esi + 0xb0]
vmovsd xmm0, qword [esi + 0xa8]
mov ecx, dword [esi + 0x90]
sub esp, 0x18
mov edi, dword [esi + 0x54]
mov edx, dword [esi + 0x50]
vmovsd qword [esp + 0x10], xmm0
mov dword [esp + 0xc], ecx
mov dword [esp], eax
mov dword [esp + 8], edi
mov dword [esp + 4], edx
call fcn.00427a80
add esp, 0x18
mov dword [esi + 0x9c], eax
mov eax, 0xe3cb88b9
jmp 0x4204a0
mov dword [esi + 0xb0], eax
mov eax, dword [esi + 0xb0]
mov eax, dword [esi + 0x38]
mov eax, 0xf4538ed8
jmp 0x4204a0
cmp eax, 0xe3cb88b9
jne 0x4204a0
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x9c]
lea edi, [esi + 0xb0]
mov dword [eax], ecx
mov eax, dword [esi + 0x24]
vmovsd xmm0, qword [eax]
mov eax, 0x200d3ef9
vmovsd qword [esi + 0x58], xmm0
nop word cs:[eax + eax]
cmp eax, 0x65db1d0b
je 0x42106e
cmp eax, 0x200d3ef9
jne 0x421010
mov eax, 0xaedb91b3
nop word cs:[eax + eax]
cmp eax, 0xf222ca87
je 0x42105f
cmp eax, 0xaedb91b3
jne 0x421030
vmovsd xmm0, qword [esi + 0x58]
vmovsd qword [esi + 0xb0], xmm0
push edi
call fcn.004431c7
add esp, 4
cwde
mov dword [esi + 4], eax
mov eax, 0xf222ca87
jmp 0x421030
cmp dword [esi + 4], 0
mov eax, 0x65db1d0b
setle byte [esi + 3]
jmp 0x421010
movzx eax, byte [esi + 3]
mov ebx, 0xeb6e8c62
mov byte [esi + 0x44], al
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
mov dword [esi + 0x48], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x34], eax
mov eax, dword [0x4af140]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, dword [0x4af13c]
setne cl
sete byte [esi + 0x23]
sete dl
cmp eax, 0xa
setge al
setl byte [esi + 3]
setl ah
or al, cl
xor ah, dl
mov ecx, 0x536b75f6
xor al, 1
or al, ah
mov eax, 0x5c9aaf39
cmove ecx, eax
mov dword [esi + 0x54], ecx
mov ecx, 0x66bc5938
cmove ecx, eax
mov eax, 0xa8b75cdd
mov dword [esi + 0x58], ecx
mov ecx, 0x7f527be5
cmovne ecx, eax
mov eax, 0x566d598b
mov dword [esi + 0x50], ecx
jmp 0x421100
mov eax, 0x8e909c8
nop word cs:[eax + eax]
mov edx, eax
cmp eax, 0x566d598a
jg 0x421140
cmp edx, 0x8e909c7
jle 0x421170
cmp edx, 0x536b75f6
je 0x4210f0
mov eax, dword [esi + 0x58]
cmp edx, 0x5626c73f
je 0x421100
mov eax, edx
cmp edx, 0x8e909c8
jne 0x421100
jmp 0x421205
cmp edx, 0x66bc5937
jg 0x4211a0
cmp edx, 0x566d598b
je 0x4211c0
mov eax, edx
cmp edx, 0x5c9aaf39
jne 0x421100
mov eax, dword [esi + 4]
mov eax, 0x66bc5938
jmp 0x421100
cmp edx, 0xa8b75cdd
je 0x4211ed
mov eax, edx
cmp edx, 0xeb6e8c62
jne 0x421100
mov eax, dword [esi + 0x34]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x50]
jmp 0x421100
cmp edx, 0x66bc5938
je 0x4211f7
mov eax, edx
cmp edx, 0x7f527be5
jne 0x421100
mov eax, 0xeb6e8c62
jmp 0x421100
mov dh, byte [esi + 0x23]
movzx ecx, byte [esi + 3]
mov eax, 0x7f527be5
mov edi, 0xeb6e8c62
mov dl, dh
xor dl, cl
test cl, cl
jne 0x4211de
mov edi, 0x7f527be5
test dh, dh
cmovne eax, edi
test dl, dl
cmovne eax, ebx
jmp 0x421100
mov eax, 0x5626c73f
jmp 0x421100
mov eax, dword [esi + 4]
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 0x54]
jmp 0x421100
mov eax, dword [esi + 0x4c]
mov dword [esi + 0xb0], eax
mov ecx, dword [esi + 0xb0]
call fcn.004103a0
mov ecx, dword [esi + 0x64]
lea ebx, [ebp + 0xc]
movsx edx, byte [ecx]
mov ecx, dword [esi + 0x28]
mov edi, dword [ecx]
mov ecx, dword [esi + 0x6c]
vmovsd xmm0, qword [ebx]
vmovsd qword [ecx], xmm0
mov ebx, dword [esi + 0x6c]
mov ecx, dword [esi + 0x70]
sub esp, 0x20
vmovsd xmm0, qword [ebx]
vmovsd qword [esp + 4], xmm0
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], edi
movzx ebx, byte [esi + 0x44]
mov dword [esp], eax
and ebx, 1
mov dword [esp + 0x1c], ebx
mov ebx, dword [esi + 0x48]
mov dword [esp + 0x18], ebx
call fcn.004339a0
mov eax, dword [esi + 0x30]
mov eax, dword [esi + 0x18]
mov eax, dword [esi + 0x3c]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x2c]
mov eax, dword [esi + 0xc]
mov eax, dword [esi + 0x38]
mov edi, dword [esi + 8]
mov eax, 0xe5982db4
mov ebx, 0x1f072494
nop word cs:[eax + eax]
cmp eax, 0xfbeba97
je 0x421392
cmp eax, 0xe5982db4
jne 0x4212a0
mov ecx, edi
call fcn.004096d0
mov eax, dword [0x4af450]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
cmp dword [0x4af44c], 0xa
setge cl
mov edx, ecx
or cl, al
xor dl, al
xor cl, 1
mov eax, 0xe155e4a7
or cl, dl
mov ecx, 0x5e2edcb5
mov edx, 0xc5022d28
cmovne eax, ecx
mov ecx, 0xe155e4a7
cmovne ecx, ebx
nop dword [eax]
cmp edx, 0xe155e4a6
jle 0x421330
cmp edx, 0xe155e4a7
je 0x421344
cmp edx, 0x5e2edcb5
je 0x42134b
cmp edx, 0x1f072494
jne 0x421300
mov edx, eax
jmp 0x421300
cmp edx, 0xb65abd80
je 0x421352
cmp edx, 0xc5022d28
jne 0x421300
mov edx, ecx
jmp 0x421300
mov edx, 0x1f072494
jmp 0x421300
mov edx, 0xb65abd80
jmp 0x421300
mov eax, 0xb6c5bc6e
nop word [eax + eax]
cmp eax, 0xb6c5bc6e
je 0x421370
cmp eax, 0xca3adc25
jne 0x421360
jmp 0x421377
mov eax, 0xca3adc25
jmp 0x421360
mov dword [esi + 0xb0], edi
mov ecx, dword [esi + 0xb0]
call fcn.0040ab80
mov eax, 0xfbeba97
jmp 0x4212a0
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xb8]
xor ecx, ebp
call fcn.0043c4a0
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x1c