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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x1b8
mov eax, dword [0x100969c0]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
push esi
mov esi, dword [0x1009a5f4]
push edi
push 0
mov dword [ebp - 0x98], eax
mov eax, dword [ebx + 0x10]
push 0
push ecx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x30], esi
call fcn.10022de0
push eax
call fcn.10020c40
mov ecx, eax
add esp, 0x10
test ecx, ecx
mov dword [ebp - 0x58], ecx
mov edi, ecx
mov edx, ecx
sete al
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x4c], eax
test ecx, ecx
jne 0x1001a6fc
push dword [ebp - 0x28]
push dword [ebp - 0x68]
call fcn.1001ec90
mov edi, eax
add esp, 8
mov dword [ebp - 0x38], edi
mov edx, edi
mov dword [ebp - 0x6c], edi
mov ecx, dword [esi + 0x3fc0]
cmp ecx, dword [edx + 8]
jne 0x1001a708
int3
mov edx, dword [ebp - 0x28]
mov eax, edx
and eax, 0x30200
cmp eax, 0x30200
jne 0x1001a71f
or edx, 6
mov dword [ebp - 0x28], edx
cmp dword [esi + 0x3f9c], 0
mov ecx, dword [esi + 0x3f30]
mov eax, dword [edi + 0x24c]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x54], eax
jne 0x1001a747
cmp byte [esi + 0x3f3d], 0
je 0x1001a747
mov al, 1
jmp 0x1001a749
xor al, al
mov byte [edi + 0xc3], al
lea eax, [ecx - 1]
cmp dword [edi + 0x24c], eax
setl ch
mov byte [ebp - 0x64], ch
test edx, 0x4000000
je 0x1001a798
mov eax, dword [esi + 0x4a64]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x4a60]
mov eax, dword [edi + 0x84]
cmp edi, dword [edx + esi*8 + 4]
setne cl
cmp eax, dword [edx + esi*8]
mov esi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x28]
setne al
or cl, al
or ch, cl
mov byte [ebp - 0x64], ch
mov byte [edi + 0xc1], ch
test ch, ch
je 0x1001a7b7
or byte [edi + 0xe0], 8
or byte [edi + 0xe1], 8
or byte [edi + 0xe2], 8
mov eax, dword [ebp - 0x54]
cmp eax, dword [ebp - 0x50]
je 0x1001a929
mov ecx, dword [0x1009a5f4]
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x2c], ecx
test edx, 0x1000000
je 0x1001a7e9
mov eax, edx
and eax, 0x14000000
cmp eax, 0x4000000
je 0x1001a7e9
mov al, 1
jmp 0x1001a7eb
xor al, al
cmp dword [ebp - 0x58], 0
mov ah, byte [edi + 0xc4]
mov byte [ebp - 0x21], al
je 0x1001a802
cmp al, ah
je 0x1001a8cb
test al, al
jne 0x1001a824
lea esi, [ecx + 0x3f84]
lea eax, [ebp - 0x34]
mov ecx, esi
push eax
call fcn.10032250
mov ax, word [esi]
mov esi, dword [ebp - 0x30]
dec ax
jmp 0x1001a8be
cmp dword [ebp - 0x58], 0
je 0x1001a8cb
cmp al, ah
je 0x1001a8cb
test al, al
je 0x1001a8cb
mov edx, dword [ebp - 0x2c]
movsx ecx, word [edi + 0xd0]
inc ecx
mov eax, dword [edx + 0x3f84]
mov dword [ebp - 0x34], eax
cmp ecx, eax
jge 0x1001a877
mov eax, dword [edx + 0x3f8c]
mov eax, dword [eax + ecx*4]
inc ecx
dec word [eax + 0xd0]
mov esi, dword [edx + 0x3f84]
mov dword [ebp - 0x34], esi
cmp ecx, esi
jl 0x1001a856
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
movsx ecx, word [edi + 0xd0]
mov edx, dword [edx + 0x3f8c]
mov eax, dword [eax + 0x3f8c]
lea eax, [eax + ecx*4]
sub eax, edx
sar eax, 2
lea ecx, [edx + eax*4]
mov edx, dword [ebp - 0x34]
sub edx, eax
lea eax, [edx*4 - 4]
push eax
lea eax, [ecx + 4]
push eax
push ecx
call fcn.1005caa0
mov eax, dword [ebp - 0x2c]
add esp, 0xc
dec dword [eax + 0x3f84]
or eax, 0xffffffff
mov edx, dword [ebp - 0x28]
mov word [edi + 0xd0], ax
mov al, byte [ebp - 0x21]
mov byte [edi + 0xc4], al
mov dword [edi + 0xc], edx
test dword [esi + 0x49a0], 0x100
je 0x1001a8e8
mov eax, dword [esi + 0x49d8]
jmp 0x1001a8ea
xor eax, eax
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x50]
mov dword [edi + 0x24c], eax
xor eax, eax
movsd xmm0, qword [esi + 0x3f28]
cvtpd2ps xmm0, xmm0
movss dword [edi + 0x250], xmm0
mov word [edi + 0xcc], ax
movzx eax, word [esi + 0x3fb4]
inc dword [esi + 0x3fb4]
mov word [edi + 0xce], ax
jmp 0x1001a92f
mov edx, dword [edi + 0xc]
mov dword [ebp - 0x28], edx
mov eax, dword [esi + 0x3f9c]
test eax, eax
jne 0x1001a93d
xor ecx, ecx
jmp 0x1001a94a
imul ecx, eax, 0x68
mov eax, dword [esi + 0x3fa4]
mov ecx, dword [eax + ecx - 0x68]
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x2c], ecx
cmp eax, dword [ebp - 0x50]
je 0x1001a964
mov eax, edx
and eax, 0x5000000
neg eax
sbb eax, eax
and eax, ecx
jmp 0x1001a96a
mov eax, dword [edi + 0x30c]
cmp dword [edi + 0xf4], 0
lea ecx, [edi + 0xf4]
mov dword [ebp - 0x40], eax
jne 0x1001a985
lea eax, [edi + 8]
push eax
call fcn.10032250
lea ecx, [ebp - 0x18c]
mov dword [esi + 0x3fc4], edi
call fcn.10018cd0
test dword [ebp - 0x28], 0x2000000
xorps xmm0, xmm0
mov eax, dword [esi + 0x3fc4]
movups xmmword [ebp - 0x13c], xmm0
mov word [ebp - 0x12c], 0
movups xmm0, xmmword [esi + 0x4950]
movzx eax, word [eax + 0xf4]
mov word [ebp - 0x13c], ax
movzx eax, word [esi + 0x4a10]
mov word [ebp - 0x13a], ax
movzx eax, word [esi + 0x4a1c]
movups xmmword [ebp - 0x18c], xmm0
mov word [ebp - 0x138], ax
movups xmm0, xmmword [esi + 0x4960]
movzx eax, word [esi + 0x4a28]
mov word [ebp - 0x136], ax
movzx eax, word [esi + 0x4a34]
movups xmmword [ebp - 0x17c], xmm0
mov word [ebp - 0x134], ax
movups xmm0, xmmword [esi + 0x4970]
movzx eax, word [esi + 0x4a4c]
mov word [ebp - 0x132], ax
movzx eax, word [esi + 0x4a40]
movups xmmword [ebp - 0x16c], xmm0
mov word [ebp - 0x130], ax
movups xmm0, xmmword [esi + 0x4980]
movzx eax, word [esi + 0x4a64]
mov word [ebp - 0x12e], ax
movzx eax, word [esi + 0x5d78]
movups xmmword [ebp - 0x15c], xmm0
mov dword [ebp - 0x190], edi
movups xmm0, xmmword [esi + 0x4990]
mov word [ebp - 0x12c], ax
movups xmmword [ebp - 0x14c], xmm0
je 0x1001aa92
test byte [esi + 0x491c], 4
mov byte [ebp - 0x12a], 1
jne 0x1001aa99
mov byte [ebp - 0x12a], 0
mov edi, dword [esi + 0x3f9c]
mov ecx, dword [esi + 0x3fa0]
cmp edi, ecx
jne 0x1001ab0c
inc edi
test ecx, ecx
je 0x1001aab9
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x1001aabe
mov eax, 8
cmp eax, edi
cmovg edi, eax
cmp edi, ecx
jle 0x1001ab0c
imul eax, edi, 0x68
push eax
call fcn.10025330
mov edx, dword [esi + 0x3fa4]
add esp, 4
mov dword [ebp - 0x3c], eax
test edx, edx
je 0x1001ab00
imul ecx, dword [esi + 0x3f9c], 0x68
push ecx
push edx
push eax
call fcn.1005caa0
push dword [esi + 0x3fa4]
call fcn.100253c0
mov eax, dword [ebp - 0x3c]
add esp, 0x10
mov dword [esi + 0x3fa4], eax
mov dword [esi + 0x3fa0], edi
imul edi, dword [esi + 0x3f9c], 0x68
mov ecx, 0x1a
mov eax, dword [ebp - 0x30]
add edi, dword [esi + 0x3fa4]
lea esi, [ebp - 0x190]
rep movsd dword es:[edi], dword [esi]
inc dword [eax + 0x3f9c]
mov ecx, dword [ebp - 0x28]
test ecx, 0x10000000
je 0x1001ab40
inc dword [eax + 0x5ce8]
mov edx, dword [ebp - 0x54]
mov edi, dword [ebp - 0x38]
cmp edx, dword [ebp - 0x50]
je 0x1001ac02
mov edx, dword [ebp - 0x40]
mov dword [edi + 0x30c], edx
mov dword [edi + 0x320], edi
mov dword [edi + 0x31c], edi
mov dword [edi + 0x318], edi
mov dword [edi + 0x314], edi
test edx, edx
je 0x1001abbe
mov eax, ecx
and eax, 0x3000000
cmp eax, 0x1000000
jne 0x1001ab8e
mov eax, dword [edx + 0x314]
mov dword [edi + 0x314], eax
test ecx, 0x4000000
je 0x1001aba2
mov eax, dword [edx + 0x318]
mov dword [edi + 0x318], eax
test ecx, 0x8000000
jne 0x1001abbe
test ecx, 0x5000000
je 0x1001abbe
mov eax, dword [edx + 0x31c]
mov dword [edi + 0x31c], eax
test dword [edi + 0x10], 0x100
je 0x1001abe3
mov edx, edi
lea esi, [edx + 0x320]
nop
mov eax, dword [edx + 0x30c]
mov edx, eax
mov dword [esi], eax
test dword [edx + 0x10], 0x100
jne 0x1001abd0
mov edx, dword [ebp - 0x2c]
mov eax, ecx
and eax, 0x1000000
mov dword [edi + 0x310], edx
neg eax
sbb eax, eax
and eax, edx
mov dword [edi + 0x324], eax
mov eax, dword [ebp - 0x30]
test dword [edi + 0x10], 0x100
je 0x1001ac13
mov eax, dword [eax + 0x4918]
jmp 0x1001ac16
mov eax, dword [edi + 8]
mov esi, dword [0x1009a5f4]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x60], eax
mov eax, dword [esi + 0x3fc4]
lea ecx, [esi + 0x4a34]
mov eax, dword [eax + 8]
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x60]
push eax
call fcn.10032360
test dword [ebp - 0x28], 0x4000000
mov eax, dword [ebp - 0x38]
mov dword [esi + 0x4918], eax
mov esi, dword [ebp - 0x30]
mov eax, dword [esi + 0x4918]
mov dword [edi + 0x364], eax
je 0x1001ac9a
mov eax, dword [esi + 0x4a64]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x4a60]
mov dword [eax + ecx*8 + 4], edi
lea esi, [eax + ecx*8]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
push esi
mov eax, dword [eax + 0x158]
lea ecx, [ecx + 0x4a64]
mov dword [esi + 0xc], eax
call fcn.10032570
mov eax, dword [esi]
mov esi, dword [ebp - 0x30]
mov dword [edi + 0x84], eax
test byte [esi + 0x49a0], 1
mov byte [ebp - 0x21], 0
mov byte [ebp - 0x23], 0
mov byte [ebp - 0x22], 0
je 0x1001ad52
movsx eax, byte [edi + 0xe0]
mov ecx, dword [esi + 0x49a4]
test ecx, eax
setne byte [ebp - 0x21]
test ecx, eax
je 0x1001ad41
movss xmm1, dword [esi + 0x49bc]
movss xmm0, dword [esi + 0x49b8]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
comiss xmm0, dword [0x100815a8]
jbe 0x1001ad41
mov eax, dword [esi + 0x49b0]
mov ecx, dword [esi + 0x49b4]
mov dword [edi + 0xe4], eax
mov dword [edi + 0xe8], ecx
mov eax, dword [esi + 0x49b8]
mov ecx, dword [esi + 0x49bc]
mov dword [edi + 0xec], eax
mov dword [edi + 0xf0], ecx
movzx ecx, byte [edi + 0xe0]
mov eax, dword [edi + 0xe0]
and ecx, 0xf1
and eax, 0xffffff00
or ecx, eax
mov dword [edi + 0xe0], ecx
jmp 0x1001ad52
push ecx
lea eax, [esi + 0x49b0]
push eax
push edi
call fcn.1002e630
add esp, 0xc
test byte [esi + 0x49a0], 2
xorps xmm1, xmm1
je 0x1001adee
mov cl, byte [edi + 0xe1]
movsx eax, cl
and eax, dword [esi + 0x49a8]
je 0x1001ad86
movss xmm0, dword [esi + 0x49c0]
comiss xmm0, xmm1
jbe 0x1001ad86
mov byte [ebp - 0x23], 1
jmp 0x1001ad8e
mov byte [ebp - 0x23], 0
test eax, eax
je 0x1001ada1
movss xmm0, dword [esi + 0x49c4]
comiss xmm0, xmm1
jbe 0x1001ada5
mov byte [ebp - 0x22], 1
jmp 0x1001ada9
mov byte [ebp - 0x23], 0
mov byte [ebp - 0x22], 0
test byte [edi + 0x10], 4
je 0x1001adbd
test cl, 4
jne 0x1001adbd
mov eax, dword [edi + 0x28]
mov dword [esi + 0x49c0], eax
test byte [edi + 0x10], 8
je 0x1001add5
test byte [edi + 0xe1], 4
jne 0x1001add5
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x49c4], eax
push dword [esi + 0x49a8]
lea eax, [esi + 0x49c0]
push eax
push edi
call fcn.1002e790
add esp, 0xc
xorps xmm1, xmm1
test byte [esi + 0x49a0], 0x80
je 0x1001ae35
movss xmm0, dword [esi + 0x49d0]
comiss xmm0, xmm1
jb 0x1001ae16
movss dword [edi + 0x98], xmm0
mov dword [edi + 0xa0], 0
movss xmm0, dword [esi + 0x49d4]
comiss xmm0, xmm1
jb 0x1001ae35
movss dword [edi + 0x9c], xmm0
mov dword [edi + 0xa4], 0
test byte [esi + 0x49a0], 4
je 0x1001ae52
mov eax, dword [esi + 0x49c8]
mov ecx, dword [esi + 0x49cc]
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], ecx
jmp 0x1001ae68
mov eax, dword [ebp - 0x54]
cmp eax, dword [ebp - 0x50]
je 0x1001ae68
mov dword [edi + 0x40], 0
mov dword [edi + 0x44], 0
test byte [esi + 0x49a0], 8
je 0x1001aeb5
mov ecx, dword [esi + 0x49ac]
mov dl, byte [esi + 0x49dc]
test ecx, ecx
je 0x1001ae8c
movsx eax, byte [edi + 0xe2]
test ecx, eax
je 0x1001aeb5
movzx ecx, byte [edi + 0xe2]
mov eax, dword [edi + 0xe0]
and ecx, 0xf1
shl ecx, 0x10
and eax, 0xff00ffff
or ecx, eax
mov byte [edi + 0xbd], dl
mov dword [edi + 0xe0], ecx
test byte [esi + 0x49a0], 0x20
je 0x1001aec9
push 0
push edi
call fcn.10020e10
add esp, 8
cmp byte [edi + 0xc1], 0
je 0x1001aee7
and byte [edi + 0xe0], 0xf7
and byte [edi + 0xe1], 0xf7
and byte [edi + 0xe2], 0xf7
mov ecx, dword [0x1009a5f4]
mov byte [edi + 0xc0], 0
test dword [ecx + 0x49a0], 0x200
je 0x1001af70
mov edx, dword [ecx + 0x4a04]
test dl, 1
je 0x1001af70
cmp byte [edi + 0xc1], 0
jne 0x1001af70
cmp byte [edi + 0xc2], 0
jne 0x1001af70
test dl, 2
je 0x1001af42
cmp dword [ecx + 0x3fc8], 0
je 0x1001af42
mov esi, dword [ecx + 0x3fc8]
mov eax, dword [edi + 0x314]
cmp eax, dword [esi + 0x314]
mov esi, dword [ebp - 0x30]
je 0x1001af70
test dl, 4
je 0x1001af5f
mov ecx, dword [ecx + 0x4a88]
test ecx, ecx
je 0x1001af5f
mov eax, dword [edi + 0x314]
cmp eax, dword [ecx + 0x314]
je 0x1001af70
mov dword [edi + 0x278], 0
mov byte [edi + 0xc0], 1
cmp byte [ebp - 0x12a], 0
je 0x1001afb6
cmp dword [edi + 0x314], edi
jne 0x1001afb6
mov esi, dword [0x1009a5f4]
and dword [esi + 0x491c], 0xfffffffb
mov eax, dword [esi + 0x5d74]
lea ecx, [esi + 0x4a40]
mov dword [esi + 0x38a8], eax
lea eax, [esi + 0x491c]
push eax
call fcn.10032250
inc word [esi + 0x5d78]
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x54]
mov dword [esi + 0x3fc4], 0
cmp eax, dword [ebp - 0x50]
je 0x1001c793
cmp byte [edi + 0xc0], 0
jne 0x1001c79c
mov eax, dword [ebp - 0x28]
and eax, 0x3000000
cmp dword [ebp - 0x98], 0
mov dword [ebp - 0x38], eax
mov al, byte [edi + 0xdd]
mov byte [edi + 0xba], 1
mov byte [ebp - 0x45], al
setne al
mov byte [edi + 0xc5], al
mov dword [edi + 0x224], 0xff7fffff
mov dword [edi + 0x228], 0xff7fffff
mov dword [edi + 0x22c], 0x7f7fffff
mov dword [edi + 0x230], 0x7f7fffff
mov edi, dword [ebp - 0x6c]
push 1
lea ecx, [edi + 0xf4]
call fcn.10032890
mov ecx, dword [edi + 0x278]
call fcn.1003a3c0
mov dword [edi + 0x1a4], 0xffffffff
cmp byte [edi + 0x370], 0
je 0x1001b13e
mov byte [edi + 0x370], 0
mov eax, dword [edi + 0x278]
mov ecx, dword [edi + 0x368]
add eax, 0xc
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x44], ecx
cmp ecx, dword [eax + 4]
jle 0x1001b0c4
lea eax, [ecx + ecx]
push eax
call fcn.10025330
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x3c], edx
cmp dword [eax + 8], 0
je 0x1001b0bb
mov ecx, dword [eax]
add ecx, ecx
push ecx
push dword [eax + 8]
push edx
call fcn.1005caa0
mov eax, dword [ebp - 0x2c]
push dword [eax + 8]
call fcn.100253c0
mov eax, dword [ebp - 0x2c]
add esp, 0x10
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x44]
mov dword [eax + 8], edx
mov dword [eax + 4], ecx
mov eax, dword [edi + 0x278]
mov ecx, dword [edi + 0x36c]
add eax, 0x18
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x44], ecx
cmp ecx, dword [eax + 4]
jle 0x1001b12a
lea eax, [ecx + ecx*4]
shl eax, 2
push eax
call fcn.10025330
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x3c], edx
cmp dword [eax + 8], 0
je 0x1001b121
mov ecx, dword [eax]
lea ecx, [ecx + ecx*4]
shl ecx, 2
push ecx
push dword [eax + 8]
push edx
call fcn.1005caa0
mov eax, dword [ebp - 0x2c]
push dword [eax + 8]
call fcn.100253c0
mov eax, dword [ebp - 0x2c]
add esp, 0x10
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x44]
mov dword [eax + 8], edx
mov dword [eax + 4], ecx
mov dword [edi + 0x36c], 0
mov dword [edi + 0x368], 0
cmp dword [esi + 0x4c5c], 0
je 0x1001b1e6
test dword [edi + 0xc], 0x20000
jne 0x1001b1e6
cmp dword [ebp - 0x58], 0
je 0x1001b1e6
mov ecx, dword [edi + 4]
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1001b188
test dl, dl
je 0x1001b184
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1001b188
add eax, 2
add ecx, 2
test dl, dl
jne 0x1001b168
xor eax, eax
jmp 0x1001b18d
sbb eax, eax
or eax, 1
test eax, eax
je 0x1001b1e6
mov ecx, dword [ebp - 0x68]
mov edx, dword [edi + 0x78]
mov dword [ebp - 0x34], edx
lea eax, [ecx + 1]
mov dword [ebp - 0x3c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001b1a0
sub ecx, dword [ebp - 0x3c]
lea eax, [ecx + 1]
mov ecx, dword [edi + 4]
mov dword [ebp - 0x2c], eax
cmp edx, eax
jae 0x1001b1d0
push ecx
call fcn.100253c0
push dword [ebp - 0x2c]
call fcn.10025330
mov ecx, eax
add esp, 8
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
push eax
push dword [ebp - 0x68]
push ecx
call fcn.1005caa0
mov dword [edi + 4], eax
add esp, 0xc
mov eax, dword [ebp - 0x34]
mov dword [edi + 0x78], eax
lea eax, [edi + 0x38]
push eax
lea eax, [edi + 0x30]
push eax
push edi
call fcn.1001dd90
mov al, byte [edi + 0xdc]
add esp, 0xc
test al, al
jle 0x1001b209
dec al
mov byte [edi + 0xdc], al
mov al, byte [edi + 0xdd]
test al, al
jle 0x1001b21b
dec al
mov byte [edi + 0xdd], al
mov al, byte [edi + 0xde]
test al, al
jle 0x1001b22d
dec al
mov byte [edi + 0xde], al
cmp dword [ebp - 0x58], 0
mov al, byte [ebp - 0x23]
mov cl, byte [ebp - 0x22]
jne 0x1001b248
test al, al
je 0x1001b241
test cl, cl
jne 0x1001b248
mov byte [edi + 0xdd], 1
cmp byte [ebp - 0x64], 0
mov edx, dword [ebp - 0x28]
je 0x1001b2a5
test edx, 0x6000000
je 0x1001b2a5
mov byte [edi + 0xdd], 1
test dl, 0x40
je 0x1001b2a5
test al, al
jne 0x1001b277
mov dword [edi + 0x28], 0
mov dword [edi + 0x20], 0
test cl, cl
jne 0x1001b289
mov dword [edi + 0x2c], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x30], 0
mov dword [edi + 0x34], 0
mov eax, dword [0x1009a5f4]
mov eax, dword [eax + 0x4a84]
mov eax, dword [eax]
mov dword [edi + 0x14], eax
mov ecx, dword [0x1009a5f4]
mov dword [ebp - 0x3c], eax
mov dword [ecx + 0x3fc4], edi
mov eax, dword [edi + 0x1a4]
cmp eax, 0xffffffff
je 0x1001b2da
shl eax, 9
add eax, dword [ecx + 0x4d54]
jmp 0x1001b2dc
xor eax, eax
mov dword [ecx + 0x4d34], eax
mov dword [ecx + 0x3d24], 0x3f800000
mov eax, dword [edi]
movss xmm0, dword [eax + 0x3d20]
mov eax, dword [edi + 0x30c]
mulss xmm0, dword [edi + 0x270]
test eax, eax
je 0x1001b310
mulss xmm0, dword [eax + 0x270]
movss dword [ecx + 0x3d34], xmm0
movss dword [ecx + 0x3d1c], xmm0
mov eax, dword [0x1009a5f4]
cmp dword [eax + 0x4d34], 0
mov ecx, dword [eax + 0x3fc4]
jne 0x1001b341
cmp dword [ecx + 0x1a0], 0
jne 0x1001b341
mov al, 1
jmp 0x1001b343
xor al, al
mov byte [ecx + 0x160], al
test edx, 0x1000000
je 0x1001b35c
mov eax, dword [esi + 0x38d8]
mov dword [edi + 0x54], eax
jmp 0x1001b383
test edx, 0x6000000
je 0x1001b376
test edx, 0x8000000
jne 0x1001b376
movss xmm0, dword [esi + 0x38e0]
jmp 0x1001b37e
movss xmm0, dword [esi + 0x38bc]
movss dword [edi + 0x54], xmm0
mov eax, dword [esi + 0x38b0]
xorps xmm1, xmm1
mov ecx, dword [esi + 0x38b4]
mov dword [edi + 0x48], eax
mov eax, edx
and eax, 0x5000000
mov dword [edi + 0x4c], ecx
cmp eax, 0x1000000
jne 0x1001b3db
test byte [edi + 0x10], 2
jne 0x1001b3db
movss xmm0, dword [edi + 0x54]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1001b3db
test edx, 0x400
je 0x1001b3cc
movss xmm0, dword [esi + 0x38b4]
jmp 0x1001b3cf
xorps xmm0, xmm0
mov dword [edi + 0x48], 0
movss dword [edi + 0x4c], xmm0
movss xmm0, dword [edi + 0x48]
maxss xmm0, dword [esi + 0x38f4]
maxss xmm0, dword [esi + 0x49fc]
movss dword [edi + 0x164], xmm0
mov eax, dword [esi + 0x4a00]
mov dword [edi + 0x168], eax
test dl, 1
je 0x1001b40e
xorps xmm0, xmm0
jmp 0x1001b422
movss xmm0, dword [esi + 0x38e8]
addss xmm0, xmm0
addss xmm0, dword [esi + 0x3d1c]
movss dword [edi + 0x58], xmm0
test edx, 0x400
je 0x1001b451
movss xmm0, dword [esi + 0x38e8]
movss xmm2, dword [esi + 0x3d1c]
addss xmm0, xmm0
addss xmm2, dword [edi + 0x168]
addss xmm2, xmm0
jmp 0x1001b454
xorps xmm2, xmm2
cmp byte [ebp - 0x23], 0
mov eax, dword [ebp - 0x4c]
movss dword [edi + 0x5c], xmm2
mov byte [ebp - 0x34], al
je 0x1001b477
movss xmm0, dword [edi + 0x40]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1001b477
mov byte [ebp - 0x4c], 1
cmp byte [ebp - 0x22], 0
je 0x1001b48f
movss xmm0, dword [edi + 0x44]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1001b48f
mov byte [ebp - 0x34], 1
test dl, 0x21
jne 0x1001b561
movss xmm0, dword [edi + 0x18]
movaps xmm2, xmm0
movss xmm1, dword [edi + 0x58]
addss xmm2, dword [edi + 0x28]
addss xmm1, dword [edi + 0x1c]
movss dword [ebp - 0xbc], xmm0
movss xmm0, dword [edi + 0x1c]
movss dword [ebp - 0xb8], xmm0
movss dword [ebp - 0xb4], xmm2
movss dword [ebp - 0xb0], xmm1
cmp dword [esi + 0x3fc8], edi
jne 0x1001b529
cmp dword [esi + 0x4004], 0
jne 0x1001b529
cmp dword [esi + 0x4008], 0
jne 0x1001b529
push 1
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0xbc]
push eax
call fcn.100244b0
add esp, 0xc
test al, al
je 0x1001b529
cmp word [esi + 0x2aea], 2
jne 0x1001b529
mov eax, dword [0x1009a5f4]
cmp dword [eax + 0x4738], 0xffffffff
jne 0x1001b529
mov byte [edi + 0xbe], 1
cmp byte [edi + 0xbe], 0
je 0x1001b568
mov cl, byte [edi + 0xbd]
test cl, cl
push edi
sete al
test cl, cl
mov byte [edi + 0xbd], al
mov ecx, 1
mov eax, dword [ebp - 0x34]
movzx eax, al
cmovne eax, ecx
mov dword [ebp - 0x34], eax
call fcn.100252a0
add esp, 4
jmp 0x1001b568
mov byte [edi + 0xbd], 0
mov byte [edi + 0xbe], 0
lea eax, [edi + 0x38]
movss xmm0, dword [edi + 0xb0]
movss dword [ebp - 0xac], xmm0
movss xmm0, dword [edi + 0xb4]
mov dword [edi + 0x60], 0
mov dword [edi + 0x68], 0
movss dword [ebp - 0x5c], xmm0
movss xmm0, dword [edi + 0x5c]
addss xmm0, dword [edi + 0x58]
push eax
lea eax, [ebp - 0x74]
push edi
push eax
movss dword [edi + 0x64], xmm0
mov dword [edi + 0x6c], 0
mov dword [edi + 0xb0], 0
mov dword [edi + 0xb4], 0
call fcn.1001db80
add esp, 0xc
test byte [ebp - 0x28], 0x40
je 0x1001b615
cmp byte [edi + 0xbd], 0
jne 0x1001b615
cmp byte [ebp - 0x23], 0
jne 0x1001b5f8
movss xmm0, dword [ebp - 0x74]
movss dword [edi + 0x28], xmm0
mov byte [ebp - 0x4c], 1
cmp byte [ebp - 0x22], 0
jne 0x1001b699
movss xmm0, dword [ebp - 0x70]
movss dword [edi + 0x2c], xmm0
mov byte [ebp - 0x34], 1
jmp 0x1001b699
mov al, byte [edi + 0xd2]
test al, al
jg 0x1001b628
cmp byte [edi + 0xd3], 0
jle 0x1001b699
cmp byte [ebp - 0x23], 0
jne 0x1001b655
test al, al
jle 0x1001b655
cmp byte [edi + 0xd4], 0
je 0x1001b647
movss xmm0, dword [edi + 0x28]
maxss xmm0, dword [ebp - 0x74]
jmp 0x1001b64c
movss xmm0, dword [ebp - 0x74]
movss dword [edi + 0x28], xmm0
mov byte [ebp - 0x4c], 1
cmp byte [ebp - 0x22], 0
jne 0x1001b687
cmp byte [edi + 0xd3], 0
jle 0x1001b687
cmp byte [edi + 0xd4], 0
je 0x1001b679
movss xmm0, dword [edi + 0x2c]
maxss xmm0, dword [ebp - 0x70]
jmp 0x1001b67e
movss xmm0, dword [ebp - 0x70]
movss dword [edi + 0x2c], xmm0
mov byte [ebp - 0x34], 1
cmp byte [edi + 0xbd], 0
jne 0x1001b699
push edi
call fcn.100252a0
add esp, 4
lea eax, [edi + 0x28]
push eax
lea eax, [ebp - 0x198]
push edi
push eax
call fcn.1001dfc0
mov edx, dword [ebp - 0x28]
add esp, 0xc
movss xmm1, dword [eax]
movss xmm2, dword [eax + 4]
movss dword [edi + 0x28], xmm1
movss dword [edi + 0x2c], xmm2
cmp byte [edi + 0xbd], 0
je 0x1001b6f2
test edx, 0x1000000
jne 0x1001b6f2
movss xmm1, dword [edi + 0x18]
movss xmm2, dword [edi + 0x58]
addss xmm1, dword [edi + 0x28]
addss xmm2, dword [edi + 0x1c]
subss xmm1, dword [edi + 0x18]
subss xmm2, dword [edi + 0x1c]
cmp byte [ebp - 0x64], 0
movss dword [edi + 0x20], xmm1
movss dword [edi + 0x24], xmm2
je 0x1001b745
mov eax, edx
mov dword [edi + 0xd8], 0xffffffff
and eax, 0xc000000
cmp eax, 0x4000000
jne 0x1001b745
cmp byte [ebp - 0x21], 0
jne 0x1001b745
mov eax, dword [esi + 0x4a64]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x4a6c]
movss xmm0, dword [eax + ecx*8 - 0x10]
movss xmm1, dword [eax + ecx*8 - 0xc]
movss dword [edi + 0x18], xmm0
movss dword [edi + 0x1c], xmm1
test edx, 0x1000000
je 0x1001b79b
mov ecx, dword [ebp - 0x40]
add ecx, 0x190
mov ax, word [ecx]
mov word [edi + 0xcc], ax
lea eax, [ebp - 0x6c]
push eax
call fcn.10032250
mov edx, dword [ebp - 0x28]
mov al, byte [ebp - 0x21]
mov ecx, dword [ebp - 0x38]
test edx, 0x4000000
jne 0x1001b7a1
test al, al
jne 0x1001b7a1
cmp ecx, 0x3000000
je 0x1001b7a1
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx + 0x100]
mov ecx, dword [ecx + 0x104]
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], ecx
mov ecx, dword [ebp - 0x38]
mov al, byte [ebp - 0x21]
movss xmm1, dword [edi + 0xe4]
ucomiss xmm1, dword [0x10081650]
lahf
test ah, 0x44
jnp 0x1001b80d
cmp byte [edi + 0xdd], 0
jne 0x1001b80d
movss xmm0, dword [edi + 0x20]
lea eax, [ebp - 0xc4]
mulss xmm0, dword [edi + 0xec]
push 0
push eax
push edi
subss xmm1, xmm0
movss xmm0, dword [edi + 0xe8]
movss dword [ebp - 0xc4], xmm1
movss xmm1, dword [edi + 0x24]
mulss xmm1, dword [edi + 0xf0]
subss xmm0, xmm1
movss dword [ebp - 0xc0], xmm0
call fcn.1002e630
add esp, 0xc
jmp 0x1001b86d
test edx, 0x10000000
je 0x1001b81d
lea eax, [ebp - 0x1a0]
jmp 0x1001b850
test edx, 0x4000000
je 0x1001b836
test al, al
jne 0x1001b836
cmp byte [ebp - 0x45], al
jle 0x1001b836
lea eax, [ebp - 0x1a8]
jmp 0x1001b850
test edx, 0x2000000
je 0x1001b870
test al, al
jne 0x1001b870
cmp ecx, 0x3000000
je 0x1001b870
lea eax, [ebp - 0x1b0]
push edi
push eax
call fcn.100203f0
add esp, 8
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
movss dword [edi + 0x18], xmm0
movss dword [edi + 0x1c], xmm1
mov edx, dword [ebp - 0x28]
cmp byte [ebp - 0x21], 0
mov eax, dword [ebp - 0x3c]
movss xmm3, dword [esi + 0x3978]
movss xmm2, dword [esi + 0x3974]
maxss xmm3, dword [esi + 0x3980]
movss xmm7, dword [eax + 0x18]
movss xmm6, dword [eax + 0x1c]
maxss xmm2, dword [esi + 0x397c]
addss xmm7, dword [eax + 0x20]
addss xmm6, dword [eax + 0x24]
movss xmm0, dword [eax + 8]
movss xmm1, dword [eax + 0xc]
movaps xmm5, xmm0
addss xmm5, dword [eax + 0x10]
movaps xmm4, xmm1
movss dword [ebp - 0xe4], xmm0
addss xmm4, dword [eax + 0x14]
subss xmm7, xmm2
movss dword [ebp - 0xe0], xmm1
addss xmm2, dword [eax + 0x18]
subss xmm6, xmm3
movss dword [ebp - 0xdc], xmm5
addss xmm3, dword [eax + 0x1c]
movss dword [ebp - 0xd8], xmm4
movss dword [ebp - 0xcc], xmm7
movss dword [ebp - 0xd4], xmm2
movss dword [ebp - 0xc8], xmm6
movss dword [ebp - 0xd0], xmm3
jne 0x1001b986
test edx, 0x1000000
jne 0x1001b986
subss xmm5, xmm0
xorps xmm0, xmm0
comiss xmm5, xmm0
jbe 0x1001b986
subss xmm4, xmm1
comiss xmm4, xmm0
jbe 0x1001b986
mov eax, dword [0x1009a5f4]
movss xmm0, dword [edi + 0x24]
cmp byte [eax + 0x4b], 0
je 0x1001b951
test byte [edi + 0xc], 1
jne 0x1001b951
movss xmm0, dword [edi + 0x58]
subss xmm2, dword [edi + 0x20]
subss xmm3, xmm0
movss xmm0, dword [edi + 0x1c]
comiss xmm3, xmm0
ja 0x1001b96b
movaps xmm3, xmm6
minss xmm3, xmm0
movss xmm0, dword [edi + 0x18]
comiss xmm2, xmm0
ja 0x1001b97c
movaps xmm2, xmm7
minss xmm2, xmm0
movss dword [edi + 0x18], xmm2
movss dword [edi + 0x1c], xmm3
cvttss2si eax, dword [edi + 0x18]
movd xmm1, eax
cvttss2si eax, dword [edi + 0x1c]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
movss dword [edi + 0x18], xmm1
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x1c], xmm0
test edx, 0x1000000
je 0x1001b9ba
movss xmm2, dword [esi + 0x38d4]
jmp 0x1001b9da
mov eax, edx
and eax, 0xc000000
cmp eax, 0x4000000
jne 0x1001b9d2
movss xmm2, dword [esi + 0x38dc]
jmp 0x1001b9da
movss xmm2, dword [esi + 0x38b8]
xor cl, cl
movss dword [edi + 0x50], xmm2
mov dword [ebp - 0x2c], ecx
cmp byte [ebp - 0x64], cl
je 0x1001ba13
test edx, 0x1000
jne 0x1001ba13
test edx, 0x4000000
je 0x1001b9ff
mov byte [ebp - 0x2c], 1
jmp 0x1001ba13
test edx, 0x3000000
movzx ecx, cl
mov eax, 1
cmove ecx, eax
mov dword [ebp - 0x2c], ecx
mov eax, edx
mov dword [ebp - 0x94], 0xffffffff
and eax, 0x5000000
mov dword [ebp - 0x44], 0xffffffff
xorps xmm0, xmm0
movaps xmmword [ebp - 0x20], xmm0
cmp eax, 0x1000000
jne 0x1001ba3d
xor eax, eax
jmp 0x1001ba46
xor eax, eax
cmp byte [esi + 0x4a], al
setne al
inc eax
cmp byte [edi + 0xbd], 0
movss xmm1, dword [esi + 0x3d1c]
addss xmm2, dword [0x1007f830]
movaps xmm0, xmm1
mov dword [ebp - 0x3c], eax
mulss xmm1, dword [0x100815c0]
mulss xmm0, dword [0x100815f4]
addss xmm1, xmm2
maxss xmm0, xmm1
cvttss2si esi, xmm0
jne 0x1001bad1
lea ecx, [ebp - 0xd4]
push ecx
lea ecx, [ebp - 0x20]
push ecx
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0x74]
push eax
push edi
call fcn.10030c20
add esp, 0x1c
test eax, eax
je 0x1001bace
mov ecx, dword [ebp - 0x4c]
test al, 1
mov edx, 1
movzx ecx, cl
cmovne ecx, edx
test al, 2
mov eax, dword [ebp - 0x34]
movzx eax, al
cmovne eax, edx
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x28]
mov cl, al
jmp 0x1001bad4
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x34]
mov al, byte [ebp - 0x94]
mov byte [edi + 0xc6], al
mov al, byte [ebp - 0x44]
mov byte [edi + 0xc7], al
cmp byte [edi + 0xbd], 0
jne 0x1001bc68
cmp dword [ebp - 0x58], 0
movss xmm0, dword [edi + 0x6c]
addss xmm0, dword [edi + 0x64]
movss xmm4, dword [edi + 0x1ec]
movss xmm5, dword [edi + 0x1f0]
subss xmm4, dword [edi + 0x1e4]
subss xmm5, dword [edi + 0x1e8]
movss xmm2, dword [edi + 0x2c]
movss xmm6, dword [edi + 0x28]
subss xmm2, xmm0
xorps xmm0, xmm0
addss xmm4, dword [ebp - 0xac]
addss xmm5, dword [ebp - 0x5c]
jne 0x1001bb4c
xorps xmm3, xmm3
xorps xmm1, xmm1
jmp 0x1001bb68
movss xmm3, dword [edi + 0x48]
movss xmm1, dword [edi + 0x4c]
addss xmm3, xmm3
addss xmm1, xmm1
addss xmm3, dword [edi + 0x30]
addss xmm1, dword [edi + 0x34]
mov eax, dword [ebp - 0x4c]
test al, al
jne 0x1001bb72
movaps xmm6, xmm4
test cl, cl
jne 0x1001bb79
movaps xmm2, xmm5
test edx, 0x4000
jne 0x1001bb8f
comiss xmm1, xmm2
jbe 0x1001bb8b
test dl, 8
je 0x1001bb8f
xor al, al
jmp 0x1001bb91
mov al, 1
mov byte [edi + 0xb9], al
test edx, 0x8000
jne 0x1001bbe7
test al, al
je 0x1001bbb0
mov eax, dword [ebp - 0x30]
movss xmm4, dword [eax + 0x391c]
jmp 0x1001bbb3
xorps xmm4, xmm4
subss xmm6, xmm4
comiss xmm3, xmm6
jbe 0x1001bbca
mov eax, edx
and eax, 0x808
cmp eax, 0x800
je 0x1001bbe7
mov byte [edi + 0xb8], 0
mov eax, dword [ebp - 0x30]
cmp byte [edi + 0xb8], 0
je 0x1001bc20
movss xmm1, dword [eax + 0x391c]
jmp 0x1001bc23
mov byte [edi + 0xb8], 1
cmp byte [edi + 0xb9], 0
jne 0x1001bbd1
mov eax, dword [ebp - 0x30]
subss xmm2, dword [eax + 0x391c]
comiss xmm1, xmm2
jbe 0x1001bc16
test dl, 8
jne 0x1001bc16
mov cl, 1
mov byte [edi + 0xb9], cl
jmp 0x1001bbd4
xor cl, cl
mov byte [edi + 0xb9], cl
jmp 0x1001bbd4
xorps xmm1, xmm1
cmp byte [edi + 0xb9], 0
je 0x1001bc34
movss xmm0, dword [eax + 0x391c]
movss dword [edi + 0xb0], xmm0
movss dword [edi + 0xb4], xmm1
movss xmm0, dword [edi + 0xb0]
addss xmm0, dword [edi + 0x68]
movss dword [edi + 0x68], xmm0
movss xmm0, dword [edi + 0xb4]
addss xmm0, dword [edi + 0x6c]
movss dword [edi + 0x6c], xmm0
mov eax, edx
and eax, 0x5000000
cmp eax, 0x1000000
jne 0x1001bc89
cmp dword [ebp - 0x38], 0x3000000
je 0x1001bc89
mov eax, dword [ebp - 0x40]
add eax, 0x224
jmp 0x1001bc8f
lea eax, [ebp - 0xe4]
movups xmm0, xmmword [eax]
mov ecx, dword [ebp - 0x30]
mov eax, edx
and eax, 0x401
movups xmmword [ebp - 0x90], xmm0
movss xmm5, dword [edi + 0x18]
movss xmm6, dword [edi + 0x1c]
movaps xmm2, xmm5
movss xmm3, dword [edi + 0x20]
movaps xmm1, xmm6
movss xmm4, dword [edi + 0x24]
addss xmm3, xmm5
addss xmm4, xmm6
addss xmm1, dword [edi + 0x58]
addss xmm2, dword [edi + 0x28]
movss dword [ebp - 0xa8], xmm5
movss xmm0, dword [edi + 0x1c]
movss dword [ebp - 0xa4], xmm0
movss dword [ebp - 0x9c], xmm1
movss dword [ebp - 0xa0], xmm2
movss dword [edi + 0x1d4], xmm5
movss dword [edi + 0x1d8], xmm6
movss dword [edi + 0x1dc], xmm3
movss dword [edi + 0x1e0], xmm4
mov edi, dword [ebp - 0x6c]
movss xmm1, dword [edi + 0x1d4]
movss xmm0, dword [edi + 0x1d8]
maxss xmm0, dword [ebp - 0x8c]
maxss xmm1, dword [ebp - 0x90]
movss dword [edi + 0x1d8], xmm0
movss dword [edi + 0x1d4], xmm1
movss xmm0, dword [edi + 0x1e0]
movss xmm1, dword [edi + 0x1dc]
minss xmm0, dword [ebp - 0x84]
minss xmm1, dword [ebp - 0x88]
movss dword [edi + 0x1e0], xmm0
movss dword [edi + 0x1dc], xmm1
movss xmm0, dword [edi + 0x60]
addss xmm0, dword [edi + 0x18]
movss dword [edi + 0x1e4], xmm0
movss xmm0, dword [edi + 0x64]
addss xmm0, dword [edi + 0x1c]
movss dword [edi + 0x1e8], xmm0
movss xmm0, dword [edi + 0x20]
addss xmm0, dword [edi + 0x18]
subss xmm0, dword [edi + 0x68]
movss dword [edi + 0x1ec], xmm0
movss xmm0, dword [edi + 0x24]
addss xmm0, dword [edi + 0x1c]
subss xmm0, dword [edi + 0x6c]
movss dword [edi + 0x1f0], xmm0
cmp eax, 1
jne 0x1001bdd5
movss xmm4, dword [edi + 0x54]
jmp 0x1001bddd
movss xmm4, dword [ecx + 0x38f0]
movss xmm1, dword [edi + 0x1e4]
xorps xmm2, xmm2
movss xmm3, dword [0x1007f824]
addss xmm1, xmm3
addss xmm1, dword [edi + 0x54]
comiss xmm1, xmm2
cvttss2si eax, xmm1
mov dword [ebp - 0x5c], eax
jae 0x1001be1f
movd xmm0, eax
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1001be1c
cvttss2si eax, xmm1
dec eax
jmp 0x1001be1f
mov eax, dword [ebp - 0x5c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x1f4], xmm0
movss xmm1, dword [edi + 0x1e8]
addss xmm1, xmm3
addss xmm1, xmm4
comiss xmm1, xmm2
cvttss2si eax, xmm1
mov dword [ebp - 0x5c], eax
jae 0x1001be64
movd xmm0, eax
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1001be61
cvttss2si eax, xmm1
dec eax
jmp 0x1001be64
mov eax, dword [ebp - 0x5c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x1f8], xmm0
movss xmm1, dword [edi + 0x1ec]
addss xmm1, xmm3
subss xmm1, dword [edi + 0x54]
comiss xmm1, xmm2
cvttss2si eax, xmm1
mov dword [ebp - 0x5c], eax
jae 0x1001beaa
movd xmm0, eax
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1001bea7
cvttss2si eax, xmm1
dec eax
jmp 0x1001beaa
mov eax, dword [ebp - 0x5c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x1fc], xmm0
movss xmm1, dword [edi + 0x1f0]
addss xmm1, xmm3
subss xmm1, dword [edi + 0x54]
comiss xmm1, xmm2
cvttss2si eax, xmm1
mov dword [ebp - 0x5c], eax
jae 0x1001bef0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1001beed
cvttss2si eax, xmm1
dec eax
jmp 0x1001bef0
mov eax, dword [ebp - 0x5c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x200], xmm0
movss xmm0, dword [edi + 0x1f8]
movss xmm1, dword [ebp - 0x8c]
comiss xmm1, xmm0
ja 0x1001bf20
movss xmm1, dword [ebp - 0x84]
minss xmm1, xmm0
movss xmm3, dword [edi + 0x1f4]
movss xmm0, dword [ebp - 0x90]
comiss xmm0, xmm3
ja 0x1001bf41
movss xmm0, dword [ebp - 0x88]
minss xmm0, xmm3
movss dword [edi + 0x1f4], xmm0
movss dword [edi + 0x1f8], xmm1
movss xmm0, dword [edi + 0x200]
movss xmm1, dword [ebp - 0x8c]
comiss xmm1, xmm0
ja 0x1001bf72
movss xmm1, dword [ebp - 0x84]
minss xmm1, xmm0
movss xmm3, dword [edi + 0x1fc]
movss xmm0, dword [ebp - 0x90]
comiss xmm0, xmm3
ja 0x1001bf93
movss xmm0, dword [ebp - 0x88]
minss xmm0, xmm3
movss dword [edi + 0x1fc], xmm0
movss dword [edi + 0x200], xmm1
movss xmm0, dword [edi + 0x20]
comiss xmm0, xmm2
jbe 0x1001bfbf
test edx, 0x2000040
jne 0x1001bfbf
mulss xmm0, dword [0x100815d8]
jmp 0x1001bfcf
movss xmm0, dword [ecx + 0x3d1c]
mulss xmm0, dword [0x1008162c]
cvttss2si eax, xmm0
push edi
movd xmm0, eax
lea eax, [ebp - 0x1b8]
cvtdq2ps xmm0, xmm0
push eax
movss dword [edi + 0x254], xmm0
movss xmm1, dword [edi + 0x48]
movss xmm0, dword [edi + 0x1ec]
addss xmm1, xmm1
subss xmm0, dword [edi + 0x1e4]
addss xmm1, dword [edi + 0x30]
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
movss dword [edi + 0x90], xmm0
movss xmm1, dword [edi + 0x4c]
movss xmm0, dword [edi + 0x1f0]
addss xmm1, xmm1
subss xmm0, dword [edi + 0x1e8]
addss xmm1, dword [edi + 0x34]
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
movss dword [edi + 0x94], xmm0
call fcn.1001d8e0
add esp, 8
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
mov eax, dword [ebp - 0x30]
movss dword [edi + 0x88], xmm0
movss dword [edi + 0x8c], xmm1
mov dword [edi + 0x98], 0x7f7fffff
mov dword [edi + 0x9c], 0x7f7fffff
mov ecx, dword [edi + 0x278]
mov dword [edi + 0x74], 0
mov dword [edi + 0x70], 0
mov eax, dword [eax + 0x3d18]
mov eax, dword [eax + 0x30]
push dword [eax + 4]
call fcn.100389a0
push 0
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.1002a760
mov eax, dword [ebp - 0x28]
add esp, 0xc
and eax, 0x5000000
mov byte [ebp - 0x22], 0
cmp eax, 0x1000000
jne 0x1001c1c0
cmp dword [ebp - 0x38], 0x3000000
je 0x1001c1c0
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 0x190]
cmp ecx, 2
jl 0x1001c188
mov eax, dword [eax + 0x198]
mov eax, dword [eax + ecx*4 - 8]
test eax, eax
je 0x1001c188
movss xmm1, dword [eax + 0x18]
lea ecx, [ebp - 0x104]
movss xmm0, dword [eax + 0x1c]
movss dword [ebp - 0x104], xmm1
addss xmm1, dword [eax + 0x20]
movss dword [ebp - 0x100], xmm0
addss xmm0, dword [eax + 0x24]
lea eax, [ebp - 0xf4]
push eax
movss dword [ebp - 0xfc], xmm1
movss xmm1, dword [edi + 0x18]
movss dword [ebp - 0xf8], xmm0
movss xmm0, dword [edi + 0x1c]
movss dword [ebp - 0xf4], xmm1
addss xmm1, dword [edi + 0x20]
movss dword [ebp - 0xf0], xmm0
addss xmm0, dword [edi + 0x24]
movss dword [ebp - 0xec], xmm1
movss dword [ebp - 0xe8], xmm0
call fcn.1002a470
mov byte [ebp - 0x21], al
jmp 0x1001c18c
mov byte [ebp - 0x21], 0
mov edx, dword [edi + 0x278]
mov eax, dword [edx]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
cmp dword [eax + ecx*8 - 0xc], 0
jne 0x1001c1c0
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x278]
cmp dword [eax + 0x18], 0
je 0x1001c1c0
cmp byte [ebp - 0x21], 0
jne 0x1001c1c0
mov byte [ebp - 0x22], 1
mov dword [edi + 0x278], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 0x4c54]
test ecx, ecx
jne 0x1001c1d3
mov ecx, dword [eax + 0x4a88]
cmp byte [ebp - 0x2c], 0
jne 0x1001c1f1
test ecx, ecx
je 0x1001c1eb
mov eax, dword [edi + 0x31c]
cmp eax, dword [ecx + 0x31c]
je 0x1001c1f1
mov byte [ebp - 0x44], 0
jmp 0x1001c1f5
mov byte [ebp - 0x44], 1
movd xmm0, esi
lea eax, [ebp - 0x20]
push ecx
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
push eax
push dword [ebp - 0x3c]
lea eax, [ebp - 0xa8]
push 1
push dword [ebp - 0x44]
push eax
push edi
call fcn.1002c1e0
add esp, 0x1c
cmp byte [ebp - 0x22], 0
je 0x1001c230
lea eax, [edi + 0x27c]
mov dword [edi + 0x278], eax
mov ecx, dword [ebp - 0x28]
xorps xmm4, xmm4
movss xmm3, dword [edi + 0x40]
mov edx, ecx
shr edx, 3
not dl
and dl, 1
ucomiss xmm3, xmm4
lahf
test ah, 0x44
jp 0x1001c28a
movss xmm0, dword [edi + 0x48]
mov eax, ecx
movss xmm1, dword [edi + 0x20]
addss xmm0, xmm0
and eax, 0x808
subss xmm1, xmm0
movss xmm0, dword [edi + 0x68]
addss xmm0, dword [edi + 0x60]
subss xmm1, xmm0
cmp eax, 0x800
jne 0x1001c283
movss xmm3, dword [edi + 0x30]
jmp 0x1001c286
xorps xmm3, xmm3
maxss xmm3, xmm1
movss xmm2, dword [edi + 0x44]
ucomiss xmm2, xmm4
lahf
test ah, 0x44
jp 0x1001c2ca
movss xmm0, dword [edi + 0x4c]
movss xmm1, dword [edi + 0x24]
addss xmm0, xmm0
subss xmm1, xmm0
movss xmm0, dword [edi + 0x6c]
addss xmm0, dword [edi + 0x64]
subss xmm1, xmm0
test dl, dl
je 0x1001c2c3
movss xmm2, dword [edi + 0x34]
jmp 0x1001c2c6
xorps xmm2, xmm2
maxss xmm2, xmm1
movss xmm1, dword [edi + 0x48]
maxss xmm1, dword [edi + 0x54]
movss xmm0, dword [edi + 0x1e4]
subss xmm0, dword [edi + 0x88]
addss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x204], xmm0
movss xmm1, dword [edi + 0x4c]
movss xmm0, dword [edi + 0x1e8]
subss xmm0, dword [edi + 0x8c]
maxss xmm1, dword [edi + 0x54]
addss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x208], xmm0
addss xmm3, dword [edi + 0x204]
movss dword [edi + 0x20c], xmm3
addss xmm2, dword [edi + 0x208]
movss dword [edi + 0x210], xmm2
movups xmm0, xmmword [edi + 0x204]
movups xmmword [edi + 0x214], xmm0
movss xmm0, dword [edi + 0x18]
subss xmm0, dword [edi + 0x88]
addss xmm0, dword [edi + 0x48]
addss xmm0, dword [edi + 0x60]
movss dword [edi + 0x234], xmm0
movss xmm0, dword [edi + 0x1c]
subss xmm0, dword [edi + 0x8c]
addss xmm0, dword [edi + 0x4c]
addss xmm0, dword [edi + 0x64]
movss dword [edi + 0x238], xmm0
movss xmm1, dword [edi + 0x40]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x1001c3c6
movss xmm0, dword [edi + 0x48]
movss xmm1, dword [edi + 0x20]
addss xmm0, xmm0
subss xmm1, xmm0
movss xmm0, dword [edi + 0x68]
addss xmm0, dword [edi + 0x60]
subss xmm1, xmm0
addss xmm1, dword [edi + 0x234]
movss dword [edi + 0x23c], xmm1
movss xmm1, dword [edi + 0x44]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x1001c404
movss xmm0, dword [edi + 0x4c]
movss xmm1, dword [edi + 0x24]
addss xmm0, xmm0
subss xmm1, xmm0
movss xmm0, dword [edi + 0x6c]
addss xmm0, dword [edi + 0x64]
subss xmm1, xmm0
addss xmm1, dword [edi + 0x238]
mov esi, dword [ebp - 0x30]
push dword [ebp - 0x64]
movss dword [edi + 0x240], xmm1
movss xmm0, dword [edi + 0x60]
addss xmm0, dword [edi + 0x48]
subss xmm0, dword [edi + 0x88]
movss dword [edi + 0x144], xmm0
mov dword [edi + 0x14c], 0
mov dword [edi + 0x148], 0
movss xmm3, dword [edi + 0x48]
movss xmm0, dword [edi + 0x18]
movss xmm2, dword [edi + 0x4c]
cvtps2pd xmm0, xmm0
cvtps2pd xmm3, xmm3
cvtps2pd xmm2, xmm2
addsd xmm3, xmm0
movss xmm0, dword [edi + 0x88]
cvtps2pd xmm0, xmm0
subsd xmm3, xmm0
movss xmm0, dword [edi + 0x60]
cvtps2pd xmm0, xmm0
addsd xmm3, xmm0
movss xmm0, dword [edi + 0x1c]
cvtps2pd xmm0, xmm0
addsd xmm3, qword [0x100815a0]
addsd xmm2, xmm0
movss xmm0, dword [edi + 0x8c]
cvtps2pd xmm0, xmm0
subsd xmm2, xmm0
movss xmm0, dword [edi + 0x64]
cvtps2pd xmm0, xmm0
addsd xmm2, xmm0
cvtpd2ps xmm0, xmm3
cvtpd2ps xmm1, xmm2
movss dword [edi + 0x110], xmm0
movss dword [edi + 0x114], xmm1
movss xmm0, dword [edi + 0x110]
cvtps2pd xmm0, xmm0
subsd xmm3, xmm0
movss xmm0, dword [edi + 0x114]
cvtps2pd xmm0, xmm0
cvtpd2ps xmm1, xmm3
subsd xmm2, xmm0
movss dword [edi + 0x150], xmm1
cvtpd2ps xmm0, xmm2
movss dword [edi + 0x154], xmm0
movss xmm0, dword [edi + 0x110]
movss xmm1, dword [edi + 0x114]
movss dword [edi + 0x100], xmm0
movss dword [edi + 0x104], xmm1
movss dword [edi + 0x108], xmm0
movss dword [edi + 0x10c], xmm1
mov eax, dword [edi + 0x110]
mov ecx, dword [edi + 0x114]
mov dword [edi + 0x118], eax
mov dword [edi + 0x11c], ecx
mov ecx, dword [edi + 0x114]
mov eax, dword [edi + 0x110]
mov dword [edi + 0x120], eax
mov dword [edi + 0x124], ecx
mov dword [edi + 0x130], 0
mov dword [edi + 0x134], 0
mov dword [edi + 0x128], 0
mov dword [edi + 0x12c], 0
mov dword [edi + 0x13c], 0
mov dword [edi + 0x138], 0
mov word [edi + 0x140], 0
mov dword [edi + 0x158], 0
mov ax, word [edi + 0x15e]
mov word [edi + 0x15c], ax
mov dword [edi + 0x15e], 0x10000
movss xmm0, dword [edi + 0x94]
comiss xmm0, xmm4
push ecx
lea ecx, [edi + 0x16c]
seta al
mov byte [edi + 0x162], al
mov byte [edi + 0x163], 0
movss xmm0, dword [esi + 0x38f4]
movss dword [esp], xmm0
call fcn.10058170
mov dword [edi + 0x188], 0
lea ecx, [edi + 0x190]
push 0
mov dword [edi + 0x18c], 0
call fcn.10032890
lea eax, [edi + 0x258]
mov dword [edi + 0x19c], eax
mov eax, dword [ebp - 0x40]
mov dword [edi + 0x1a0], 0
mov dword [edi + 0x1a8], 1
test eax, eax
je 0x1001c647
mov eax, dword [eax + 0x1a8]
jmp 0x1001c64c
mov eax, 1
mov dword [edi + 0x1ac], eax
lea ecx, [edi + 0x1bc]
mov eax, dword [edi + 0x254]
mov dword [edi + 0x1b4], eax
push 0
mov dword [edi + 0x1b8], 0xbf800000
call fcn.10032890
push 0
lea ecx, [edi + 0x1c8]
call fcn.10032890
test dword [ebp - 0x28], 0x8000000
je 0x1001c6a4
mov eax, dword [0x1009a5f4]
add eax, 0x3cf4
push eax
call fcn.1001e950
add esp, 4
mov dword [edi + 0x1b0], eax
mov al, byte [edi + 0xd2]
test al, al
jle 0x1001c6b6
dec al
mov byte [edi + 0xd2], al
mov al, byte [edi + 0xd3]
test al, al
jle 0x1001c6c8
dec al
mov byte [edi + 0xd3], al
cmp byte [ebp - 0x2c], 0
je 0x1001c6ec
push 2
push edi
call fcn.10020e10
add esp, 8
cmp edi, dword [esi + 0x4a88]
jne 0x1001c6ec
push 0
push edi
call fcn.10025770
add esp, 8
test byte [ebp - 0x28], 1
jne 0x1001c755
movss xmm0, dword [edi + 0x54]
lea eax, [ebp - 0x114]
addss xmm0, dword [ebp - 0xa8]
push dword [ebp - 0x98]
push dword [ebp - 0x68]
movss dword [ebp - 0x114], xmm0
movss xmm0, dword [ebp - 0xa4]
movss dword [ebp - 0x110], xmm0
movss xmm0, dword [ebp - 0xa0]
subss xmm0, dword [edi + 0x54]
push eax
push edi
movss dword [ebp - 0x10c], xmm0
movss xmm0, dword [ebp - 0x9c]
movss dword [ebp - 0x108], xmm0
call fcn.1002ca40
add esp, 0x10
xor eax, eax
mov dword [edi + 0x244], eax
lea eax, [ebp - 0xa8]
push eax
push edi
call fcn.1002dd70
mov eax, dword [esi + 0x4920]
add esp, 8
test eax, eax
je 0x1001c880
cmp dword [edi + 8], eax
je 0x1001c789
cmp dword [edi + 0x7c], eax
jne 0x1001c880
call fcn.1001f220
jmp 0x1001c880
cmp byte [edi + 0xc0], 0
je 0x1001c7a3
mov byte [edi + 0xba], 1
mov ecx, dword [0x1009a5f4]
mov dword [ecx + 0x3fc4], edi
mov eax, dword [edi + 0x1a4]
cmp eax, 0xffffffff
je 0x1001c7c5
shl eax, 9
add eax, dword [ecx + 0x4d54]
jmp 0x1001c7c7
xor eax, eax
mov dword [ecx + 0x4d34], eax
mov dword [ecx + 0x3d24], 0x3f800000
mov eax, dword [edi]
movss xmm0, dword [eax + 0x3d20]
mov eax, dword [edi + 0x30c]
mulss xmm0, dword [edi + 0x270]
test eax, eax
je 0x1001c7fb
mulss xmm0, dword [eax + 0x270]
movss dword [ecx + 0x3d34], xmm0
movss dword [ecx + 0x3d1c], xmm0
mov eax, dword [0x1009a5f4]
cmp dword [eax + 0x4d34], 0
mov ecx, dword [eax + 0x3fc4]
jne 0x1001c82c
cmp dword [ecx + 0x1a0], 0
jne 0x1001c82c
mov al, 1
jmp 0x1001c82e
xor al, al
mov byte [ecx + 0x160], al
lea eax, [ebp - 0x124]
movss xmm0, dword [edi + 0x18]
movss xmm1, dword [edi + 0x58]
movaps xmm2, xmm0
addss xmm2, dword [edi + 0x28]
addss xmm1, dword [edi + 0x1c]
movss dword [ebp - 0x124], xmm0
movss xmm0, dword [edi + 0x1c]
push eax
push edi
movss dword [ebp - 0x120], xmm0
movss dword [ebp - 0x11c], xmm2
movss dword [ebp - 0x118], xmm1
call fcn.1002dd70
add esp, 8
cmp byte [edi + 0xc0], 0
jne 0x1001c8a1
push 1
lea eax, [edi + 0x1fc]
push eax
lea eax, [edi + 0x1f4]
push eax
call fcn.1002a760
add esp, 0xc
mov eax, dword [ebp - 0x54]
mov byte [edi + 0xbc], 0
inc word [edi + 0xc8]
mov dword [esi + 0x49a0], 0
cmp eax, dword [ebp - 0x50]
je 0x1001ca3e
cmp byte [edi + 0xc0], 0
jne 0x1001ca37
mov eax, dword [ebp - 0x28]
and eax, 0x11000000
cmp eax, 0x1000000
jne 0x1001c99f
test dword [edi + 0x10], 0x100
je 0x1001c913
cmp byte [esi + 0x4ad4], 0
je 0x1001c913
mov eax, dword [esi + 0x4a88]
test eax, eax
je 0x1001c913
mov eax, dword [eax + 0x320]
cmp eax, dword [edi + 0x320]
jne 0x1001c913
mov al, 1
jmp 0x1001c915
xor al, al
cmp byte [esi + 0x5e80], 0
jne 0x1001c966
test al, al
jne 0x1001c966
movss xmm0, dword [edi + 0x1d4]
comiss xmm0, dword [edi + 0x1dc]
jae 0x1001c944
movss xmm0, dword [edi + 0x1d8]
comiss xmm0, dword [edi + 0x1e0]
jb 0x1001c966
cmp byte [edi + 0xd2], 0
jg 0x1001c95f
cmp byte [edi + 0xd3], 0
jg 0x1001c95f
mov byte [edi + 0xdc], 1
jmp 0x1001c966
mov byte [edi + 0xdd], 1
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x1001c99f
cmp byte [eax + 0xbd], 0
jne 0x1001c97f
cmp byte [eax + 0xdc], 0
jle 0x1001c986
mov byte [edi + 0xdc], 1
cmp byte [eax + 0xbd], 0
jne 0x1001c998
cmp byte [eax + 0xdd], 0
jle 0x1001c99f
mov byte [edi + 0xdd], 1
xorps xmm0, xmm0
comiss xmm0, dword [esi + 0x38a8]
jb 0x1001c9b2
mov byte [edi + 0xdc], 1
cmp byte [edi + 0xdc], 0
jg 0x1001c9d2
cmp byte [edi + 0xdd], 0
jg 0x1001c9d2
xor cl, cl
cmp byte [edi + 0xde], cl
jg 0x1001c9d4
xor al, al
jmp 0x1001c9d6
mov cl, 1
mov al, 1
mov byte [edi + 0xc2], al
mov al, byte [edi + 0xdf]
test al, al
jle 0x1001c9f5
dec al
mov byte [edi + 0xdf], al
or dword [edi + 0xc], 0x30200
xor al, al
cmp byte [edi + 0xbd], al
jne 0x1001ca0b
cmp byte [edi + 0xba], al
je 0x1001ca0b
test cl, cl
je 0x1001ca2f
cmp byte [edi + 0xd2], 0
jg 0x1001ca2f
cmp byte [edi + 0xd3], 0
jg 0x1001ca2f
cmp byte [edi + 0xdd], 0
mov ecx, 1
movzx eax, al
cmovle eax, ecx
mov byte [edi + 0xbf], al
jmp 0x1001ca3e
mov byte [edi + 0xbf], 1
cmp byte [edi + 0xc3], 0
jne 0x1001caa1
cmp byte [esi + 0x65], 0
je 0x1001ca53
cmp dword [ebp - 0x58], 0
je 0x1001ca68
cmp byte [esi + 0x66], 0
je 0x1001caa1
movsx eax, byte [esi + 0x5ee0]
cmp eax, dword [esi + 0x3f9c]
jne 0x1001caa1
mov al, byte [edi + 0xd2]
test al, al
jle 0x1001ca7a
inc al
mov byte [edi + 0xd2], al
mov al, byte [edi + 0xd3]
test al, al
jle 0x1001ca8c
inc al
mov byte [edi + 0xd3], al
xor al, al
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1005b715
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
cmp byte [edi + 0xbf], 0
mov ecx, dword [ebp - 4]
sete al
xor ecx, ebp
pop edi
pop esi
call fcn.1005b715
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret