Function at 0x100538f0
Capabilities:
Encode data using xor
Hash data with crc32
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1013dcd0
mov eax, dword fs:[0]
push eax
sub esp, 0xf8
mov eax, dword [0x10200e40]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x14], ecx
mov edi, dword [0x1020f198]
mov dword [ebp - 0x34], edi
mov eax, dword [edi + 0x3f8c]
mov byte [eax + 0xb0], 1
mov esi, dword [edi + 0x3f8c]
mov dword [ebp - 0x38], esi
cmp byte [esi + 0xb3], 0
jne 0x10053a95
mov ecx, dword [ebp + 0xc]
and ecx, 0x3000000
cmp dword [esi + 0x198], 0
mov dword [ebp - 0x40], ecx
jne 0x10053973
cmp dword [edi + 0x4ce0], 0
lea eax, [esi + 0x234]
je 0x10053979
lea eax, [esi + 0x204]
movss xmm1, dword [eax]
movss xmm2, dword [eax + 4]
movss xmm0, dword [0x101f4f54]
subss xmm1, dword [esi + 0xf8]
subss xmm2, dword [esi + 0xfc]
test ecx, ecx
je 0x100539a4
maxss xmm2, xmm0
jmp 0x100539a7
xorps xmm2, xmm2
mov eax, dword [ebp + 0x10]
maxss xmm1, xmm0
lea ecx, [ebp - 0x4c]
push dword [eax + 4]
push dword [eax]
call fcn.10042de0
movss xmm2, dword [esi + 0xf8]
add esp, 8
cmp byte [esi + 0xcc], 0
movss xmm3, dword [esi + 0xfc]
movss xmm1, dword [ebp - 0x4c]
movss xmm0, dword [ebp - 0x48]
addss xmm1, xmm2
addss xmm0, xmm3
movss dword [ebp - 0x5c], xmm2
movss dword [ebp - 0x58], xmm3
movss dword [ebp - 0x94], xmm2
movss dword [ebp - 0x90], xmm3
movss dword [ebp - 0x6c], xmm1
movss dword [ebp - 0x50], xmm0
movss dword [ebp - 0x8c], xmm1
movss dword [ebp - 0x88], xmm0
jg 0x10053a2a
cmp byte [esi + 0xcd], 0
jg 0x10053a2a
xor al, al
jmp 0x10053a2c
mov al, 1
cmp dword [ebp - 0x40], 0
mov byte [ebp - 0x29], al
je 0x10053a9c
comiss xmm0, dword [esi + 0x220]
jbe 0x10053a66
movss xmm0, dword [esi + 0x228]
comiss xmm0, xmm3
jbe 0x10053a61
comiss xmm1, dword [esi + 0x21c]
jbe 0x10053a61
movss xmm0, dword [esi + 0x224]
comiss xmm0, xmm2
ja 0x10053a9c
movss xmm0, dword [ebp - 0x50]
cmp byte [edi + 0x5e24], 0
jne 0x10053a9c
test al, al
jne 0x10053a9c
subss xmm1, xmm2
subss xmm0, xmm3
lea ecx, [ebp - 0x4c]
movss dword [ebp - 0x4c], xmm1
movss xmm1, dword [0x101f5078]
movss dword [ebp - 0x48], xmm0
call fcn.10042bd0
xor al, al
jmp 0x10054779
mov edx, dword [ebp - 0x24]
cmp dword [edi + 0x4ce4], edx
jne 0x10053aa8
int3
lea ecx, [edi + 0x4d04]
push ecx
push edx
call fcn.100344c0
mov edx, eax
mov esi, dword [edx]
cmp esi, 0xffffffff
je 0x10053acc
shl esi, 9
add esi, dword [edi + 0x4d00]
mov dword [ebp - 0x54], esi
jmp 0x10053ae4
mov eax, dword [edi + 0x4d10]
lea ecx, [edi + 0x4cf8]
mov dword [edx], eax
call fcn.1005a270
mov esi, eax
mov dword [ebp - 0x54], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x44], eax
mov eax, esi
sub eax, dword [edi + 0x4d00]
sar eax, 9
mov dword [ebp - 0x3c], eax
mov eax, dword [edi + 0x4ce8]
inc eax
mov dword [ebp - 0x1c], eax
mov dword [edi + 0x4ce8], eax
cmp eax, dword [edi + 0x4cec]
jle 0x10053c28
push 0x6c
lea eax, [ebp - 0x100]
push 0
push eax
call fcn.1010cde0
add esp, 0xc
mov dword [ebp - 0xfc], 0xbf800000
mov eax, dword [edi + 0x4cf0]
mov ecx, dword [ebp - 0x1c]
cmp ecx, eax
jle 0x10053bba
test eax, eax
je 0x10053b51
cdq
sub eax, edx
mov edx, dword [edi + 0x4cf0]
sar eax, 1
add eax, edx
jmp 0x10053b5c
mov edx, dword [edi + 0x4cf0]
mov eax, 8
cmp eax, ecx
mov edi, ecx
cmovg edi, eax
mov eax, edi
mov dword [ebp - 0x20], edi
mov edi, dword [ebp - 0x34]
cmp eax, edx
jle 0x10053bba
imul eax, eax, 0x6c
push eax
call fcn.1012189d
mov edx, dword [edi + 0x4cf4]
add esp, 4
mov dword [ebp - 0x28], eax
test edx, edx
je 0x10053ba8
imul ecx, dword [edi + 0x4cec], 0x6c
push ecx
push edx
push eax
call fcn.1010c860
push dword [edi + 0x4cf4]
call fcn.1011b2ad
mov eax, dword [ebp - 0x28]
add esp, 0x10
mov ecx, dword [ebp - 0x1c]
mov dword [edi + 0x4cf4], eax
mov eax, dword [ebp - 0x20]
mov dword [edi + 0x4cf0], eax
mov eax, dword [edi + 0x4cec]
cmp ecx, eax
jle 0x10053bf6
mov edx, ecx
imul eax, eax, 0x6c
sub edx, dword [edi + 0x4cec]
nop
mov edi, dword [edi + 0x4cf4]
lea esi, [ebp - 0x100]
add edi, eax
mov ecx, 0x1b
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x34]
add eax, 0x6c
sub edx, 1
jne 0x10053bd0
mov esi, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x1c]
mov dword [edi + 0x4cec], ecx
lea ecx, [ebp - 0xec]
mov dword [ebp - 4], 1
call fcn.10050460
mov eax, dword [ebp - 0xdc]
test eax, eax
je 0x10053c21
push eax
call fcn.1011b2ad
add esp, 4
mov dword [ebp - 4], 0xffffffff
imul ecx, dword [edi + 0x4ce8], 0x6c
mov eax, dword [edi + 0x4cf4]
mov edx, dword [ebp + 0xc]
add ecx, 0xffffff94
add eax, ecx
mov ecx, dword [ebp - 0x3c]
mov dword [esi + 0xc], eax
mov dword [ebp - 0x20], eax
mov dword [eax], ecx
mov ecx, edx
mov eax, dword [esi + 0xc]
add eax, 0x14
test edx, 0xe000
mov dword [esi + 0x168], eax
mov dword [eax], 0
mov dword [eax + 4], 1
sete al
mov byte [esi + 0x1f7], al
test ecx, 0xe000
jne 0x10053c97
test edx, 0x1000000
jne 0x10053c90
mov eax, dword [ebp - 0x38]
test byte [eax + 0xc], 0x40
mov eax, 0x8000
je 0x10053c95
mov eax, 0x2000
or edx, eax
mov eax, edx
mov ecx, edx
or ecx, 0x40000
and eax, 0xe000
cmp eax, 0x4000
cmovne ecx, edx
mov edx, ecx
or edx, 0x200
test cl, 1
cmove edx, ecx
mov ecx, edx
and ecx, 0xfffcffff
test edx, 0x3000000
cmove ecx, edx
mov edx, ecx
and edx, 0xfffff7ff
test ecx, 0x1000
cmove edx, ecx
mov ecx, edx
or ecx, 0x10
test dl, 0xf
cmovne ecx, edx
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x30], ecx
or dword [ebp - 0x30], 0x10
mov eax, dword [edx + 0x30c]
test dword [eax + 0xc], 0x100
mov eax, dword [ebp - 0x30]
cmove eax, ecx
mov ecx, dword [esi + 0x3c]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x48], ecx
cmp ecx, dword [edi + 0x3f08]
je 0x10053d20
mov dword [ebp - 0x1c], 0
jmp 0x10053d28
movsx ecx, word [esi + 0x4c]
inc ecx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x24]
movss xmm3, dword [ebp + 0x14]
mov dword [esi], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esi + 4], eax
mov eax, dword [edi + 0x3f08]
mov dword [esi + 0x158], edx
mov dword [esi + 0x154], edx
mov edx, dword [ebp - 0x20]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], 2
mov byte [esi + 0x1ea], 0
movss dword [esi + 0xa0], xmm3
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 0x1c]
mov dword [edx + 0x10], ecx
mov word [esi + 0x4c], ax
test eax, eax
jle 0x10053ec4
mov ecx, dword [esi + 0x184]
cmp ecx, eax
jge 0x10053e77
mov eax, dword [esi + 0x188]
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x70], 0xffffffff
mov dword [ebp - 0x74], 0xffffffff
cmp ecx, eax
jne 0x10053e49
inc ecx
test eax, eax
je 0x10053ddd
cdq
sub eax, edx
mov edx, dword [esi + 0x188]
sar eax, 1
add eax, edx
jmp 0x10053de8
mov edx, dword [esi + 0x188]
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
mov dword [ebp - 0x18], ecx
cmp ecx, edx
jle 0x10053e49
lea eax, [ecx + ecx*2]
shl eax, 3
push eax
call fcn.1012189d
mov edx, dword [esi + 0x18c]
add esp, 4
mov dword [ebp - 0x28], eax
test edx, edx
je 0x10053e35
mov ecx, dword [esi + 0x184]
lea ecx, [ecx + ecx*2]
shl ecx, 3
push ecx
push edx
push eax
call fcn.1010c860
push dword [esi + 0x18c]
call fcn.1011b2ad
mov eax, dword [ebp - 0x28]
add esp, 0x10
movss xmm3, dword [ebp + 0x14]
mov dword [esi + 0x18c], eax
mov eax, dword [ebp - 0x18]
mov dword [esi + 0x188], eax
mov eax, dword [esi + 0x184]
movups xmm0, xmmword [ebp - 0x84]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x18c]
movups xmmword [eax + ecx*8], xmm0
movq xmm0, qword [ebp - 0x74]
movq qword [eax + ecx*8 + 0x10], xmm0
inc dword [esi + 0x184]
mov eax, dword [ebp - 0x1c]
push dword [ebp - 0x24]
xor edx, edx
mov dword [ebp - 0x18], eax
mov ecx, str.Instances
call fcn.10033cd0
mov edx, eax
lea edi, [ebp - 0x18]
add esp, 4
not edx
mov esi, 4
nop dword [eax + eax]
movzx eax, byte [edi]
lea edi, [edi + 1]
movzx ecx, dl
xor ecx, eax
shr edx, 8
xor edx, dword [ecx*4 + 0x101ef4a0]
sub esi, 1
jne 0x10053ea0
mov esi, dword [ebp - 0x54]
not edx
mov edi, dword [ebp - 0x34]
jmp 0x10053ec7
mov edx, dword [ebp - 0x24]
movsx eax, word [esi + 0x4c]
mov dword [ebp - 0x28], edx
test eax, eax
jne 0x10053eda
lea eax, [esi + 0x16c]
jmp 0x10053ee9
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x18c]
lea eax, [eax + ecx*8]
add eax, 0xffffffe8
cmp dword [ebp - 0x40], 0
mov dword [eax], edx
je 0x10054098
mov ecx, dword [ebp - 0x30]
mov eax, ecx
movss xmm0, dword [0x101f5050]
and eax, 0x3000000
movaps xmm1, xmm0
movaps xmm2, xmm0
cmp eax, 0x1000000
jne 0x10053f1c
movss xmm2, dword [0x101f4ea8]
test ecx, 0x1000000
je 0x10053f46
xorps xmm4, xmm4
comiss xmm3, xmm4
jbe 0x10053f46
ucomiss xmm3, xmm0
movaps xmm1, xmm3
lahf
test ah, 0x44
jnp 0x10053f46
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jp 0x10053f4f
xorps xmm2, xmm2
jmp 0x10053f4f
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jnp 0x10053f94
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x10053f5b
xorps xmm1, xmm1
mov eax, dword [0x1020f198]
or dword [eax + 0x4954], 4
cvttss2si eax, xmm1
movd xmm1, eax
cvttss2si eax, xmm2
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov eax, dword [0x1020f198]
cvtdq2ps xmm0, xmm0
movss dword [eax + 0x497c], xmm1
movss dword [eax + 0x4980], xmm0
jmp 0x10053f99
mov eax, dword [0x1020f198]
test dword [ebp - 0x44], 0x3000000
jne 0x10053fc0
or dword [eax + 0x4954], 0x80
mov dword [eax + 0x4984], 0
mov dword [eax + 0x4988], 0
movss xmm0, dword [ebp - 0x6c]
mov eax, ecx
subss xmm0, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x14]
shr eax, 0xd
and eax, 0x800
push eax
movss dword [ebp - 0x60], xmm0
lea eax, [ebp - 0x60]
movss xmm0, dword [ebp - 0x50]
subss xmm0, dword [ebp - 0x58]
push 0
push eax
movss dword [ebp - 0x5c], xmm0
call fcn.1003a350
mov ecx, dword [edi + 0x3f8c]
add esp, 0xc
mov dword [esi + 0x158], ecx
movups xmm0, xmmword [ecx + 0x1fc]
movups xmmword [esi + 0xe4], xmm0
movss xmm0, dword [ecx + 0x1c]
movss xmm1, dword [ecx + 0x18]
movss dword [ebp - 0x64], xmm0
addss xmm0, dword [ecx + 0x24]
movss dword [ebp - 0x68], xmm1
addss xmm1, dword [ecx + 0x20]
movss dword [ebp - 0x5c], xmm0
movss dword [ebp - 0x60], xmm1
movups xmm0, xmmword [ebp - 0x68]
movups xmmword [esi + 0xc4], xmm0
movups xmm0, xmmword [ecx + 0x1dc]
movups xmmword [esi + 0xd4], xmm0
cmp byte [ecx + 0xb3], 0
je 0x10054071
cmp byte [ebp - 0x29], 0
je 0x10054071
mov byte [ecx + 0xb3], 0
mov ecx, dword [esi + 0x158]
cmp dword [ebp - 0x1c], 0
jne 0x1005408a
mov al, byte [esi + 0x1fa]
mov byte [esi + 0x1fb], al
mov byte [esi + 0x1fa], 0
mov al, byte [ecx + 0xad]
or byte [esi + 0x1fa], al
jmp 0x100540b4
movups xmm0, xmmword [ebp - 0x94]
movups xmmword [esi + 0xd4], xmm0
movups xmmword [esi + 0xc4], xmm0
movups xmmword [esi + 0xe4], xmm0
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
mov eax, dword [0x1020f198]
mov ecx, dword [eax + 0x3f8c]
add ecx, 0xec
call fcn.1004a1e0
cmp dword [ebp - 0x1c], 0
jle 0x100540fa
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
mov eax, dword [0x1020f198]
mov ecx, dword [eax + 0x3f8c]
add ecx, 0xec
call fcn.1004a1e0
mov ecx, dword [esi + 0x158]
mov edi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x24], ecx
mov eax, dword [ecx + 0x13c]
mov dword [esi + 0x88], eax
movups xmm0, xmmword [ecx + 0x21c]
movss xmm7, dword [0x101f4f54]
movups xmmword [esi + 0x134], xmm0
mov al, byte [ecx + 0xb3]
mov byte [esi + 0x1fd], al
movups xmm0, xmmword [ecx + 0x1fc]
mov eax, dword [ebp - 0x20]
movups xmmword [eax + 0x28], xmm0
movups xmm0, xmmword [ecx + 0x20c]
movups xmmword [eax + 0x38], xmm0
mov eax, dword [edx + 0x140]
mov dword [edi + 0x60], eax
mov eax, dword [ecx + 0x128]
mov ecx, dword [ecx + 0x12c]
mov dword [edi + 0x48], eax
mov eax, edi
mov dword [eax + 0x4c], ecx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 0x120]
mov ecx, dword [ecx + 0x124]
mov dword [edi + 0x50], eax
mov eax, edi
mov dword [eax + 0x54], ecx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 0x110]
mov ecx, dword [ecx + 0x114]
mov dword [edi + 0x58], eax
mov eax, edi
mov dword [eax + 0x5c], ecx
mov ecx, edi
mov eax, dword [edx + 0x1ac]
mov dword [ecx + 0x64], eax
mov eax, dword [edx + 0x1b4]
mov dword [ecx + 0x68], eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x30]
mov dword [eax + 0x120], 0
mov dword [eax + 0x124], 0
mov dword [eax + 0x128], 0
mov dword [eax + 0x12c], 0
cmp eax, edx
je 0x10054229
test ecx, 0x400
je 0x10054205
movss xmm0, dword [esi + 0x134]
addss xmm0, xmm7
minss xmm0, dword [esi + 0x13c]
movss dword [esi + 0x134], xmm0
test ecx, 0x100
je 0x10054229
movss xmm0, dword [esi + 0x138]
addss xmm0, xmm7
minss xmm0, dword [esi + 0x140]
movss dword [esi + 0x138], xmm0
test ecx, 0x400000
je 0x10054237
mov byte [ebp - 0x1c], 0
jmp 0x10054250
test ecx, 0x200000
je 0x10054245
mov byte [ebp - 0x1c], 1
jmp 0x10054250
mov dword [ebp - 0x1c], ecx
shr dword [ebp - 0x1c], 0xa
and byte [ebp - 0x1c], 1
mov edi, dword [ebp - 0x30]
shr ecx, 0x17
not cl
and cl, 1
and edi, 0x200
mov dword [ebp - 0x28], edi
je 0x1005426b
movaps xmm3, xmm7
jmp 0x1005426e
xorps xmm3, xmm3
mov edi, dword [ebp - 0x34]
test cl, cl
je 0x100542b3
cmp dword [ebp - 0x28], 0
jne 0x100542b3
movss xmm1, dword [edi + 0x3904]
xorps xmm2, xmm2
test dword [ebp - 0x30], 0x400
movaps xmm0, xmm1
addss xmm0, xmm3
movss dword [esi + 0x9c], xmm1
movss dword [esi + 0x94], xmm2
movss dword [esi + 0x98], xmm0
je 0x100542cf
movaps xmm1, xmm7
jmp 0x100542d2
xorps xmm1, xmm1
movss dword [ebp - 0x14], xmm1
test cl, cl
je 0x10054283
cmp dword [ebp - 0x28], 0
je 0x10054283
movss xmm2, dword [edi + 0x3904]
jmp 0x10054286
xorps xmm1, xmm1
cmp byte [ebp - 0x1c], 0
je 0x100542e2
movss xmm0, dword [edi + 0x3904]
jmp 0x100542e5
xorps xmm0, xmm0
addss xmm0, xmm1
mov dword [esi + 0x48], 0xffffffff
xor ecx, ecx
mov dword [esi + 0x44], 0xffffffff
mov dword [esi + 0x6c], 0
mov word [esi + 0x6a], cx
subss xmm0, xmm2
movss dword [esi + 0x90], xmm0
cmp eax, edx
jne 0x1005431c
lea eax, [esi + 0xe4]
jmp 0x10054321
add eax, 0x21c
movups xmm0, xmmword [eax]
lea ecx, [esi + 0xf4]
lea eax, [esi + 0x134]
movups xmmword [ecx], xmm0
push eax
movss xmm1, dword [ecx]
movss xmm0, dword [ecx + 4]
maxss xmm1, dword [esi + 0xe4]
maxss xmm0, dword [esi + 0xe8]
movss dword [ecx], xmm1
movss dword [ecx + 4], xmm0
movss xmm1, dword [ecx + 8]
movss xmm0, dword [ecx + 0xc]
minss xmm1, dword [esi + 0xec]
minss xmm0, dword [esi + 0xf0]
movss dword [ecx + 8], xmm1
movss dword [ecx + 0xc], xmm0
call fcn.1004ad80
test dword [ebp - 0x30], 0x20000
mov ecx, dword [ebp - 0x24]
je 0x1005439d
movss xmm0, dword [esi + 0x100]
minss xmm0, dword [ecx + 0x208]
jmp 0x100543a5
movss xmm0, dword [ecx + 0x228]
xor eax, eax
movss dword [esi + 0x100], xmm0
movss xmm0, dword [esi + 0xe8]
mov dword [esi + 0x1da], eax
mov dword [esi + 0x1de], eax
mov dword [esi + 0x1ba], eax
mov eax, dword [ebp - 0x48]
inc eax
movss dword [esi + 0x54], xmm0
movss dword [esi + 0x50], xmm0
mov dword [esi + 0x60], 0
mov dword [esi + 0x5c], 0
mov byte [esi + 0x1f6], 1
cmp eax, dword [edi + 0x3f08]
jge 0x100543fb
mov byte [esi + 0x1f9], 0
mov eax, dword [ebp - 0x20]
movaps xmm1, xmm7
mov ecx, 0x2b
mov dword [eax + 8], 0
call fcn.10034770
movaps xmm1, xmm7
mov dword [esi + 0x78], eax
mov ecx, 0x2c
call fcn.10034770
mov dword [esi + 0x7c], eax
mov eax, dword [ebp - 0x3c]
mov dword [edi + 0x4ce0], esi
mov dword [edx + 0x19c], eax
mov eax, dword [ebp - 0x24]
cmp eax, edx
mov byte [edx + 0x158], 0
mov edx, dword [ebp - 0x3c]
je 0x1005444b
mov dword [eax + 0x19c], edx
test byte [ebp - 0x44], 2
je 0x1005445e
test byte [ebp - 0x30], 2
jne 0x1005445e
mov byte [esi + 0x1f5], 1
cmp edx, dword [edi + 0x4d18]
lea ecx, [edi + 0x4d18]
jl 0x10054483
lea eax, [ebp - 0x48]
mov dword [ebp - 0x48], 0xbf800000
push eax
lea eax, [edx + 1]
push eax
call fcn.10053740
mov edx, dword [ebp - 0x3c]
movsd xmm0, qword [edi + 0x3f00]
mov eax, dword [edi + 0x4d20]
cvtpd2ps xmm0, xmm0
movss dword [eax + edx*4], xmm0
movsd xmm0, qword [edi + 0x3f00]
mov eax, dword [ebp - 0x20]
cvtpd2ps xmm0, xmm0
movss dword [eax + 4], xmm0
xor eax, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x38], eax
mov eax, 0x92492493
mov byte [esi + 0x1fc], 0
mov ecx, dword [esi + 0x14]
sub ecx, dword [esi + 0x10]
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x48], eax
je 0x100544f3
cmp eax, 2
je 0x100544f3
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x44], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x38], eax
mov dword [esi + 8], 0
cmp dword [esi + 8], 0
jne 0x10054560
push 0x100
call fcn.1012189d
push 0x100
push 0
push eax
mov dword [esi + 8], eax
call fcn.1010cde0
mov ecx, dword [esi + 8]
add esp, 0x10
mov dword [esi + 0x10], ecx
lea eax, [ecx + 0xe0]
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
lea eax, [ecx + 0xe4]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
lea eax, [ecx + 0xf4]
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
lea eax, [ecx + 0xf8]
mov dword [esi + 0x2c], eax
lea eax, [ecx + 0xfc]
mov dword [esi + 0x30], eax
mov byte [esi + 0x1f1], 1
mov byte [esi + 0x1ec], 1
cmp byte [esi + 0x1f4], 0
je 0x10054587
mov word [esi + 0x1f1], 0x100
mov byte [esi + 0x1ec], 1
mov byte [esi + 0x1f4], 0
mov dword [esi + 0x34], 0
cmp byte [esi + 0x1ec], 0
je 0x100546dd
or eax, 0xffffffff
mov dword [esi + 0x38], 0xffffffff
xor edi, edi
mov word [esi + 0x4e], ax
mov word [esi + 0x1d8], ax
mov word [esi + 0x1c8], ax
mov word [esi + 0x1c6], ax
mov word [esi + 0x1cc], ax
mov word [esi + 0x1c4], ax
mov word [esi + 0x1c0], ax
mov word [esi + 0x1be], ax
xor eax, eax
mov byte [esi + 0x1ed], 1
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x40], eax
mov edx, dword [esi + 0x10]
mov ecx, dword [ebp - 0x44]
add edx, eax
mov dword [ebp - 0x14], edx
test ecx, ecx
je 0x10054609
cmp edi, dword [ebp - 0x48]
jge 0x10054609
lea esi, [eax + ecx]
mov edi, edx
mov ecx, 0x1c
rep movsd dword es:[edi], dword [esi]
jmp 0x100546ae
movss xmm0, dword [edx + 0x14]
lea eax, [ebp - 0x104]
push 0x70
push 0
push eax
movss dword [ebp - 0x58], xmm0
call fcn.1010cde0
mov edx, dword [ebp - 0x14]
lea esi, [ebp - 0x104]
movss xmm0, dword [ebp - 0x58]
or eax, 0xffffffff
mov word [ebp - 0xb4], ax
add esp, 0xc
and byte [ebp - 0x97], 0xfc
mov ecx, 0x1c
mov word [ebp - 0xb0], ax
mov edi, edx
mov word [ebp - 0xb2], ax
mov word [ebp - 0xac], ax
mov word [ebp - 0xae], ax
mov word [ebp - 0xaa], ax
mov eax, 0xff
mov dword [ebp - 0xf4], 0xbf800000
mov dword [ebp - 0xec], 0xbf800000
mov dword [ebp - 0xa6], 0xff00ff
mov word [ebp - 0xa8], ax
rep movsd dword es:[edi], dword [esi]
movss dword [edx + 0x14], xmm0
mov byte [edx + 0x69], 1
mov word [edx + 0x63], 0x101
mov byte [edx + 0x62], 1
mov esi, dword [ebp - 0x54]
mov edi, dword [ebp - 0x28]
movzx ecx, di
mov eax, dword [esi + 0x18]
mov word [eax + edi*2], cx
inc edi
mov eax, dword [ebp - 0x40]
add eax, 0x70
mov word [edx + 0x52], cx
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x40], eax
cmp eax, 0xe0
jl 0x100545e4
mov edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x100546ed
push eax
call fcn.1011b2ad
add esp, 4
cmp byte [esi + 0x1f1], 0
je 0x100546fd
mov ecx, esi
call fcn.10059070
movss xmm0, dword [esi + 0xb8]
xorps xmm4, xmm4
movss xmm2, dword [edi + 0x3cf4]
ucomiss xmm0, xmm4
lahf
test ah, 0x44
jnp 0x1005474c
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x1005474c
movaps xmm1, xmm2
mov eax, dword [esi + 0x10]
divss xmm1, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [eax + 0x10]
movss dword [eax + 0x10], xmm0
mov eax, dword [esi + 0x10]
mulss xmm1, dword [eax + 0x80]
movss dword [eax + 0x80], xmm1
mov ecx, dword [ebp - 0x24]
movss dword [esi + 0xb8], xmm2
mov byte [ecx + 0xb3], 1
lea ecx, [esi + 0x15c]
cmp dword [ecx], 0
jle 0x10054770
push 0
call fcn.10049e00
mov ecx, esi
call fcn.100547a0
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10109e3a
mov esp, ebp
pop ebp
ret