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

Disassembly:
push 8
push 0x210
mov eax, 0x1006fe45
call fcn.1006ede7
mov dword [ebp - 0x1d8], edx
mov dword [ebp - 0x1f4], ecx
mov eax, dword [ebx + 8]
xor ecx, ecx
mov esi, dword [0x10090d48]
inc ecx
mov edi, dword [ebx + 0x10]
mov dword [ebp - 0x184], eax
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x198], eax
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0x1bc], eax
mov eax, dword [esi + 0x3e28]
mov dword [ebp - 0x188], esi
mov byte [eax + 0xa8], cl
mov eax, dword [esi + 0x3e28]
mov dword [ebp - 0x190], eax
cmp byte [eax + 0xab], 0
je 0x100568a0
xor al, al
jmp 0x10059562
mov ecx, dword [ebx + 0x14]
mov edx, ecx
mov dword [ebp - 0x18c], ecx
shr dword [ebp - 0x18c], 0xe
and byte [ebp - 0x18c], 1
mov dword [ebp - 0x1d4], ecx
shr dword [ebp - 0x1d4], 0xf
and byte [ebp - 0x1d4], 1
shr ecx, 0x10
not cl
shr edx, 0x1a
and ecx, 0xffffff01
and edx, 0xffffff01
mov dword [ebp - 0x1e0], ecx
mov ecx, dword [ebx + 0x14]
shr ecx, 0x12
and ecx, 0xffffff01
mov dword [ebp - 0x17c], edx
mov dword [ebp - 0x1a0], ecx
test dl, dl
je 0x1005690e
call fcn.10010545
mov eax, dword [ebp - 0x190]
push 0
push dword [ebp - 0x1f4]
mov ecx, eax
call fcn.100065cf
movss xmm0, dword [0x10088720]
mov edx, dword [ebp - 0x1f4]
mov dword [ebp - 0x178], eax
xor eax, eax
push ecx
inc eax
mov dword [esp], 0xbf800000
push eax
push 0
lea ecx, [ebp - 0x58]
movss dword [ebp - 0x1e8], xmm0
call fcn.10008639
mov eax, dword [edi]
add esp, 0xc
cmp byte [ebp - 0x17c], 0
mov edi, dword [edi + 4]
mov dword [ebp - 0xe8], eax
je 0x10056978
movss xmm1, dword [esi + 0x3bb4]
mulss xmm1, dword [0x100885f0]
jmp 0x1005697d
movss xmm1, dword [ebp - 0x54]
movss xmm0, dword [esi + 0x37d8]
addss xmm0, xmm0
addss xmm0, xmm1
movss dword [ebp - 0x20], xmm0
call fcn.10010350
movss xmm2, dword [ebp - 0x20]
lea ecx, [ebp - 0x90]
push edi
push dword [ebp - 0xe8]
movaps xmm1, xmm0
call fcn.100103b5
movss xmm0, dword [ebp - 0x58]
xorps xmm1, xmm1
comiss xmm0, xmm1
pop ecx
pop ecx
jbe 0x100569ce
movss xmm2, dword [esi + 0x37ec]
addss xmm2, xmm0
jmp 0x100569d1
xorps xmm2, xmm2
mov edi, dword [ebp - 0x190]
movss xmm4, dword [ebp - 0x8c]
movss xmm3, dword [ebp - 0x90]
addss xmm2, xmm3
movss dword [ebp - 0x1d0], xmm3
movss xmm0, dword [edi + 0xf0]
movss xmm1, dword [edi + 0xec]
addss xmm0, xmm4
mov ecx, dword [edi + 0xec]
addss xmm1, xmm3
mov dword [ebp - 0xf8], ecx
mov eax, dword [edi + 0xf0]
addss xmm2, dword [ebp - 0xf8]
movss dword [ebp - 0xec], xmm0
mov dword [ebp - 0xf4], eax
movss xmm0, dword [ebp - 0xf4]
addss xmm0, xmm4
mov dword [ebp - 0x78], ecx
lea ecx, [ebp - 0xdc]
movss dword [ebp - 0x1c8], xmm4
movss dword [ebp - 0xf0], xmm1
mov dword [ebp - 0x74], eax
movss dword [ebp - 0x70], xmm2
movss dword [ebp - 0x6c], xmm0
mov dword [ebp - 0x1b0], edi
call fcn.10001392
cmp byte [ebp - 0x17c], 0
lea ecx, [ebp - 0x78]
movss xmm1, dword [esi + 0x37d8]
je 0x10056c3f
mov eax, dword [edi + 0xec]
mov dword [ebp - 0xe4], eax
mov eax, dword [edi + 0xf0]
mov dword [ebp - 0x20], eax
call fcn.10046b4c
mov edx, dword [ebp - 0x178]
lea eax, [ebp - 0xf8]
push 0x400
push eax
lea ecx, [ebp - 0x78]
call fcn.1000fe07
pop ecx
pop ecx
test al, al
jne 0x10056acc
call fcn.1001065e
jmp 0x10056899
mov eax, dword [esi + 0x46a4]
lea edi, [ebp - 0xdc]
push 0xf
pop ecx
mov dword [ebp - 0x19c], eax
add esi, 0x469c
mov eax, dword [ebp - 0x190]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0xe4]
mov esi, dword [ebp - 0x188]
mov dword [eax + 0xec], ecx
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0xf0], ecx
push 3
lea edx, [esi + 0x38d0]
pop ecx
call fcn.10004914
movss xmm1, dword [esi + 0x37dc]
push 7
pop ecx
call fcn.100049aa
movss xmm1, dword [esi + 0x37e0]
push 8
pop ecx
call fcn.100049aa
and dword [ebp - 0x1b8], 0
lea edx, [ebp - 0x1b8]
and dword [ebp - 0x1b4], 0
push 2
pop eax
mov ecx, eax
call fcn.10004a06
movss xmm1, dword [ebp - 0xf0]
xor eax, eax
movss xmm0, dword [ebp - 0xec]
inc eax
subss xmm1, dword [ebp - 0xf8]
subss xmm0, dword [ebp - 0xf4]
mov edx, dword [ebp - 0x178]
mov ecx, dword [ebp - 0x1f4]
push 4
push eax
lea eax, [ebp - 0x1b8]
movss dword [ebp - 0x1b8], xmm1
push eax
movss dword [ebp - 0x1b4], xmm0
call fcn.10008af0
add esp, 0xc
mov byte [ebp - 0x192], al
push 3
pop ecx
call fcn.10004a74
xor eax, eax
inc eax
mov ecx, eax
call fcn.1000495c
cmp byte [ebp - 0x192], 0
jne 0x10056bd2
call fcn.10008cea
jmp 0x10056ac2
mov edx, dword [esi + 0x3e28]
mov dword [ebp - 0x1b0], edx
movsx ecx, word [edx + 0x14a]
mov eax, dword [edx + 0x144]
bts ecx, eax
mov word [edx + 0x14a], cx
movss xmm0, dword [edx + 0xec]
addss xmm0, dword [esi + 0x37d4]
movss dword [edx + 0xec], xmm0
movss xmm0, dword [esi + 0x37d8]
addss xmm0, dword [edx + 0xf0]
movss dword [edx + 0xf0], xmm0
movss xmm0, dword [ebp - 0x1d0]
subss xmm0, dword [edx + 0x9c]
movss dword [ebp - 0x1d0], xmm0
jmp 0x10056c7d
call fcn.10046b4c
test dword [ebx + 0x14], 0x10000000
jne 0x10056c71
mov edx, dword [ebp - 0x178]
lea eax, [ebp - 0xf8]
push 0x400
push eax
lea ecx, [ebp - 0x78]
call fcn.1000fe07
pop ecx
pop ecx
test al, al
je 0x10056899
mov eax, dword [esi + 0x46a4]
mov dword [ebp - 0x19c], eax
mov edx, dword [ebp - 0x178]
lea ecx, [ebp - 0xf8]
call fcn.10006b68
mov cl, al
mov byte [ebp - 0x191], cl
test cl, cl
je 0x10056ca3
xor eax, eax
inc eax
mov dword [esi + 0x492c], eax
mov edx, dword [ebp - 0x178]
mov edi, dword [0x10090d48]
test edx, edx
je 0x10056cc3
cmp dword [edi + 0x4a74], edx
jne 0x10056cc3
add edi, 0x4a70
jmp 0x10056cc5
xor edi, edi
mov eax, dword [ebp - 0x19c]
shr eax, 8
and al, 1
mov dword [ebp - 0x1a4], edi
mov dword [ebp - 0x19c], eax
mov eax, dword [esi + 0x3e74]
cmp eax, edx
je 0x10056d0c
cmp dword [esi + 0x47c0], edx
je 0x10056d01
cmp dword [esi + 0x47b4], edx
jne 0x10056d0c
push 2
pop edx
cmp dword [esi + 0x47dc], edx
jne 0x10056d0c
xor edx, edx
inc edx
mov byte [ebp - 0x172], dl
jmp 0x10056d16
xor edx, edx
mov byte [ebp - 0x172], 0
inc edx
test cl, cl
je 0x10056d29
cmp byte [esi + 0x36f8], 0
mov byte [ebp - 0x170], dl
jne 0x10056d30
mov byte [ebp - 0x170], 0
cmp byte [ebp - 0x17c], 0
je 0x10056d65
test edi, edi
je 0x10056d65
test eax, eax
jne 0x10056d65
mov ecx, dword [ebp - 0x1b0]
push eax
push str.SCROLLY
call fcn.100065cf
cmp dword [esi + 0x3e9c], eax
jne 0x10056d65
xor eax, eax
inc eax
mov byte [ebp - 0x174], al
jmp 0x10056d6c
mov byte [ebp - 0x174], 0
cmp byte [ebp - 0x17c], 0
je 0x10056d9a
test edi, edi
je 0x10056d9a
mov ecx, dword [ebp - 0x1b0]
push 0
push str.SCROLLY
call fcn.100065cf
cmp dword [esi + 0x3e74], eax
jne 0x10056d9a
xor eax, eax
lea ecx, [eax + 1]
jmp 0x10056d9c
xor cl, cl
mov eax, dword [ebp - 0x17c]
mov byte [ebp - 0x173], cl
mov byte [ebp - 0x1c0], 0
mov byte [ebp - 0x1a8], 0
test al, al
je 0x10056dc7
mov edx, dword [ebp - 0x1b0]
movss xmm0, dword [edx + 0x78]
jmp 0x10056dcf
movss xmm0, dword [0x100886f4]
xor edx, edx
movss dword [ebp - 0x1ec], xmm0
inc edx
test edi, edi
je 0x10056de9
xor al, dl
cmp byte [edi + 0x57], al
je 0x10056de9
mov al, dl
jmp 0x10056deb
xor al, al
cmp byte [ebp - 0x170], 0
mov byte [ebp - 0x16e], al
jne 0x10056e28
cmp byte [ebp - 0x174], 0
jne 0x10056e28
cmp byte [ebp - 0x172], 0
jne 0x10056e28
cmp byte [ebp - 0x19c], 0
jne 0x10056e28
mov byte [ebp - 0x16f], 0
test cl, cl
jne 0x10056e2e
mov byte [ebp - 0x174], cl
jmp 0x10056e42
mov byte [ebp - 0x16f], dl
mov ecx, dword [ebp - 0x178]
mov byte [ebp - 0x174], dl
cmp dword [esi + 0x3e74], ecx
jne 0x10056e4a
test al, al
je 0x10056fdd
mov edx, dword [ebp - 0x184]
lea edi, [esi + 0x4a70]
mov dword [ebp - 0x1a4], edi
mov dword [edi + 0xe6c], 0xbe99999a
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x10056e69
sub edx, ecx
lea ecx, [edi + 0x28]
mov dword [ebp - 0xe4], edx
lea esi, [edx + 1]
push esi
call fcn.1001c1fe
push esi
push dword [ebp - 0x184]
push dword [edi + 0x30]
call sub.VCRUNTIME140.dll_memcpy
mov esi, dword [ebp - 0x178]
add esp, 0xc
cmp dword [edi + 4], esi
jne 0x10056edb
cmp byte [ebp - 0x16e], 0
jne 0x10056edb
xor eax, eax
inc eax
mov byte [ebp - 0x171], al
mov eax, dword [ebp - 0xe4]
cmp dword [edi + 0xc], eax
jne 0x10056edb
cmp byte [edi + 0x34], 0
je 0x10056ee2
push eax
push dword [ebp - 0x184]
push dword [edi + 0x24]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x10056ee2
mov byte [ebp - 0x171], 0
and dword [ebp - 0xfc], 0
lea ecx, [edi + 0x10]
mov dword [edi + 4], esi
mov esi, dword [ebx + 0xc]
lea eax, [esi + 1]
push eax
call fcn.1001c2c8
lea ecx, [edi + 0x1c]
push 0
call fcn.1001c1fe
mov ecx, dword [edi + 0x18]
lea eax, [ebp - 0xfc]
push eax
push 0
push dword [ebp - 0x184]
mov edx, esi
mov byte [edi + 0x34], 0
call fcn.1000335e
mov dword [edi + 8], eax
add esp, 0xc
mov eax, dword [ebp - 0xfc]
sub eax, dword [ebp - 0x184]
cmp byte [ebp - 0x171], 0
mov dword [edi + 0xc], eax
je 0x10056f49
mov ecx, edi
call fcn.1004dc64
jmp 0x10056f63
mov eax, dword [ebp - 0x17c]
lea ecx, [edi + 0x40]
and dword [edi + 0x3c], 0
movzx edx, al
xor eax, eax
inc eax
xor edx, eax
call fcn.1005634a
xor edx, edx
inc edx
cmp byte [ebp - 0x17c], 0
jne 0x10056fcb
mov ecx, dword [ebx + 0x14]
mov eax, dword [ebp - 0x188]
shr ecx, 4
and cl, dl
cmp byte [ebp - 0x172], 0
mov dword [ebp - 0x1a8], ecx
je 0x10056faa
cmp byte [ebp - 0x171], 0
je 0x10056fa4
test byte [eax + 0x47c4], 4
mov dword [ebp - 0x1a8], ecx
jne 0x10056faa
mov byte [ebp - 0x1a8], dl
cmp byte [ebp - 0x19c], 0
jne 0x10056fc5
cmp byte [ebp - 0x170], 0
je 0x10056fcb
cmp byte [eax + 0xdd0], 0
je 0x10056fcb
mov byte [ebp - 0x1a8], dl
test dword [ebx + 0x14], 0x2000
mov esi, dword [ebp - 0x188]
je 0x10056fdd
mov byte [edi + 0x4c], dl
mov eax, dword [esi + 0x3e74]
mov ecx, dword [ebp - 0x178]
cmp eax, ecx
je 0x10057031
cmp byte [ebp - 0x16f], 0
je 0x10057029
mov edx, dword [ebp - 0x190]
call fcn.10006863
mov edx, dword [ebp - 0x190]
mov ecx, dword [ebp - 0x178]
call fcn.10011f21
mov ecx, dword [ebp - 0x190]
call fcn.1000d1fa
mov eax, dword [esi + 0x3e74]
mov ecx, dword [ebp - 0x178]
cmp eax, ecx
jne 0x100570e9
cmp byte [ebp - 0x170], 0
je 0x1005704f
mov edx, ecx
mov ecx, 0x281
push 0
call fcn.1000fb60
pop ecx
mov ecx, dword [ebp - 0x178]
mov eax, dword [esi + 0x4670]
or eax, 3
cmp byte [ebp - 0x17c], 0
mov dword [esi + 0x4670], eax
jne 0x1005706d
test byte [ebx + 0x14], 0x80
je 0x10057076
or eax, 0xc
mov dword [esi + 0x4670], eax
mov edx, ecx
mov ecx, 0x207
push 0
call fcn.1000fb60
mov edx, dword [ebp - 0x178]
pop ecx
push 0
mov ecx, 0x208
call fcn.1000fb60
cmp byte [ebp - 0x17c], 0
pop ecx
je 0x100570c7
mov edx, dword [ebp - 0x178]
mov ecx, 0x205
push 0
call fcn.1000fb60
mov edx, dword [ebp - 0x178]
pop ecx
push 0
mov ecx, 0x206
call fcn.1000fb60
pop ecx
test dword [ebx + 0x14], 0x440
je 0x100570e3
mov edx, dword [ebp - 0x178]
mov ecx, 0x200
push 0
call fcn.1000fb60
pop ecx
mov ecx, dword [ebp - 0x178]
mov eax, dword [esi + 0x3e74]
cmp eax, ecx
jne 0x10057136
test edi, edi
jne 0x1005710c
xor edx, edx
xor ecx, ecx
call fcn.10006863
mov eax, dword [esi + 0x3e74]
mov ecx, dword [ebp - 0x178]
cmp eax, ecx
jne 0x10057136
xor eax, eax
inc eax
cmp byte [esi + 0x36f8], 0
je 0x10057146
cmp byte [ebp - 0x174], 0
jne 0x10057146
cmp byte [ebp - 0x16f], 0
jne 0x10057146
mov byte [ebp - 0x1c0], al
jmp 0x10057146
test edi, edi
je 0x1005714a
cmp byte [ebp - 0x173], 0
je 0x1005714a
xor eax, eax
inc eax
mov dl, al
jmp 0x1005714c
xor dl, dl
mov dword [ebp - 0x19c], edx
test edi, edi
je 0x10057170
mov eax, dword [edi + 0x44]
cmp eax, dword [edi + 0x48]
jne 0x10057167
cmp byte [ebp - 0x1a8], 0
je 0x10057170
test dl, dl
je 0x10057170
xor eax, eax
inc eax
jmp 0x10057172
xor al, al
cmp byte [ebp - 0x18c], 0
mov dword [ebp - 0x180], eax
mov byte [ebp - 0x192], 0
mov byte [ebp - 0x174], 0
je 0x1005720d
test edi, edi
je 0x1005720d
test dl, dl
jne 0x1005719b
test al, al
je 0x1005720d
and dword [ebp - 0x100], 0
lea ecx, [edi + 0x10]
mov eax, dword [ebx + 0xc]
inc eax
push eax
call fcn.1001c2c8
mov edx, dword [edi + 0x10]
lea eax, [ebp - 0x100]
mov ecx, dword [edi + 0x18]
push eax
push 0
push dword [ebp - 0x184]
call fcn.1000335e
mov dword [edi + 8], eax
add esp, 0xc
mov eax, dword [ebp - 0x100]
mov ecx, edi
sub eax, dword [ebp - 0x184]
mov dword [edi + 0xc], eax
call fcn.1004dc64
mov ecx, dword [edi + 0x44]
xor edx, edx
mov eax, dword [ebp - 0x180]
cmp ecx, dword [edi + 0x48]
mov esi, dword [ebp - 0x188]
mov ecx, dword [ebp - 0x178]
movzx eax, al
cmovne edx, eax
mov al, dl
mov dword [ebp - 0x180], eax
cmp byte [ebp - 0x19c], 0
jne 0x10057222
test al, al
jne 0x10057222
cmp dword [esi + 0x3e74], ecx
jne 0x1005723c
cmp byte [ebp - 0x18c], 0
jne 0x1005723c
test edi, edi
je 0x1005723c
cmp byte [edi + 0x34], 0
je 0x1005723c
xor ecx, ecx
inc ecx
mov al, cl
jmp 0x10057241
xor ecx, ecx
xor al, al
inc ecx
mov edx, dword [ebp - 0x1d8]
mov byte [ebp - 0x1ca], al
test edx, edx
je 0x10057269
test al, al
je 0x1005725a
mov eax, dword [edi + 0x24]
jmp 0x10057260
mov eax, dword [ebp - 0x184]
cmp byte [eax], 0
jne 0x10057269
mov al, cl
jmp 0x1005726b
xor al, al
cmp byte [ebp - 0x1d4], 0
mov byte [ebp - 0x170], al
je 0x100572eb
test al, al
jne 0x100572eb
mov ecx, dword [esi + 0x3bb0]
push 0x2a
call fcn.1003f065
mov edx, eax
add esi, 0x58e8
mov eax, dword [ebp - 0x188]
mov ecx, dword [eax + 0x3bb0]
mov ecx, dword [ecx + 0x10]
mov dword [esi + 0x10], ecx
mov ecx, dword [eax + 0x3bb0]
mov ecx, dword [ecx + 0x44]
mov dword [esi + 0x44], ecx
mov ecx, dword [eax + 0x3bb0]
mov eax, dword [ecx + 0x48]
mov ecx, dword [ebp - 0x188]
mov dword [esi + 0x48], eax
mov eax, dword [ecx + 0x3bb0]
mov eax, dword [eax + 0x4c]
mov dword [esi + 0x4c], eax
mov eax, dword [ecx + 0x3bb0]
mov ecx, esi
mov eax, dword [eax + 0x30]
mov dword [esi + 0x30], eax
mov dword [esi + 0x2c], edx
mov eax, dword [edx + 4]
mov dword [esi + 0xc], eax
call fcn.1000d3cd
mov esi, dword [ebp - 0x188]
and dword [ebp - 0xe4], 0
mov eax, dword [ebp - 0x178]
cmp dword [esi + 0x3e74], eax
jne 0x10057786
mov eax, dword [edi + 0xc]
mov edx, dword [ebx + 0x14]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebx + 0xc]
mov dword [edi + 0x38], eax
mov byte [edi + 0xe72], 0
mov dword [edi + 0xe74], edx
cmp byte [esi + 0xdc0], 0
sete al
mov byte [esi + 0x3e81], al
xor eax, eax
inc eax
cmp byte [ebp - 0x17c], 0
mov dword [esi + 0x5be0], eax
movss xmm2, dword [esi + 0xdb8]
subss xmm2, dword [ebp - 0xf8]
subss xmm2, dword [esi + 0x37d4]
addss xmm2, dword [edi + 0x3c]
je 0x10057380
mov eax, dword [ebp - 0x1b0]
movss xmm3, dword [esi + 0xdbc]
subss xmm3, dword [eax + 0xf0]
jmp 0x10057390
movss xmm3, dword [esi + 0x3bb4]
mulss xmm3, dword [0x100884b0]
cmp byte [ebp - 0x1a8], 0
mov cl, byte [esi + 0x61]
mov byte [ebp - 0x16f], cl
je 0x100573c1
mov eax, dword [edi + 8]
and dword [edi + 0x44], 0
mov dword [edi + 0x48], eax
mov dword [edi + 0x40], eax
xor eax, eax
inc eax
mov byte [edi + 0x56], 0
mov byte [edi + 0xe71], al
jmp 0x10057573
mov dl, byte [ebp - 0x191]
test dl, dl
je 0x100575be
push 2
pop eax
cmp word [esi + 0x3702], ax
jb 0x100575be
cmp byte [esi + 0xdd1], 0
jne 0x100575be
lea edx, [edi + 0x40]
mov ecx, edi
call fcn.1005545d
movzx eax, word [esi + 0x3702]
push 2
pop ecx
sub eax, ecx
xor ecx, ecx
inc ecx
test cl, al
jne 0x100574bc
lea ecx, [edi + 0x40]
mov edx, dword [ecx]
test edx, edx
je 0x1005742f
mov eax, dword [edi + 0x18]
push 0xa
pop esi
movzx eax, word [eax + edx*2 - 2]
cmp ax, si
je 0x1005742f
mov byte [ebp - 0x16e], 0
jmp 0x10057438
xor eax, eax
inc eax
mov byte [ebp - 0x16e], al
mov eax, dword [edi + 0x44]
mov dword [ebp - 0x1c], eax
cmp eax, dword [edi + 0x48]
jne 0x1005744e
cmp byte [ebp - 0x16e], 0
mov eax, edx
jne 0x1005747e
mov eax, 0x20000c
mov edx, ecx
push eax
mov ecx, edi
call fcn.10055778
xor eax, eax
mov dword [edi + 0xe6c], 0xbe99999a
inc eax
pop ecx
mov byte [edi + 0xe70], al
lea ecx, [edi + 0x40]
mov eax, dword [edi + 0x44]
mov edx, dword [ecx]
mov dword [ebp - 0x1c], eax
mov eax, edx
mov esi, dword [edi + 0x48]
cmp dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x188]
jne 0x100574a0
mov edx, dword [ecx + 8]
cmp dword [ecx + 4], edx
jne 0x1005749e
mov dword [ecx + 8], eax
mov edx, eax
mov dword [ecx + 4], eax
jmp 0x100574a0
mov dword [ecx], edx
mov ecx, edi
call fcn.1005517e
lea edx, [edi + 0x40]
mov dword [edi + 0x40], eax
mov ecx, edi
mov dword [edi + 0x48], eax
call fcn.10055604
jmp 0x1005755d
mov eax, dword [edi + 0x18]
lea edx, [edi + 0x40]
mov ecx, dword [edx]
push 0x200004
movzx esi, word [eax + ecx*2]
mov ecx, edi
call fcn.10055778
xor eax, eax
mov dword [edi + 0xe6c], 0xbe99999a
inc eax
mov dword [esp], 0x600005
lea edx, [edi + 0x40]
mov byte [edi + 0xe70], al
mov ecx, edi
call fcn.10055778
xor eax, eax
mov dword [edi + 0xe6c], 0xbe99999a
inc eax
mov dword [esp], 0x600001
lea edx, [edi + 0x40]
mov byte [edi + 0xe70], al
mov ecx, edi
call fcn.10055778
xor eax, eax
mov dword [edi + 0xe6c], 0xbe99999a
pop ecx
inc eax
push 0xa
mov byte [edi + 0xe70], al
pop eax
cmp si, ax
je 0x10057550
cmp byte [ebp - 0x17c], 0
je 0x10057550
mov ecx, dword [edi + 0x44]
mov eax, dword [edi + 0x48]
mov dword [edi + 0x44], eax
mov dword [edi + 0x48], ecx
mov dword [edi + 0x40], ecx
mov esi, dword [ebp - 0x188]
mov byte [edi + 0xe70], 0
mov cl, byte [ebp - 0x16f]
mov dword [edi + 0xe6c], 0xbe99999a
xor eax, eax
inc eax
mov edx, dword [ebx + 0x14]
cmp byte [edi + 0xe71], 0
je 0x1005758c
cmp byte [esi + 0xdc0], 0
jne 0x1005758c
mov byte [edi + 0xe71], 0
cmp byte [esi + 0xdd0], 0
je 0x1005759e
cmp byte [esi + 0xdd2], 0
je 0x100575b3
test cl, cl
je 0x1005765c
cmp byte [esi + 0xdd3], 0
je 0x1005765c
mov byte [ebp - 0x16d], al
jmp 0x10057663
cmp byte [esi + 0x36f8], 0
mov al, byte [edi + 0xe71]
je 0x100575f6
test al, al
jne 0x100575f6
test dl, dl
je 0x1005756d
lea edx, [edi + 0x40]
mov ecx, edi
cmp byte [esi + 0xdd1], al
je 0x100575ec
call fcn.100554a1
jmp 0x1005755d
call fcn.1005545d
jmp 0x1005755d
cmp byte [esi + 0xdc0], 0
je 0x1005756d
test al, al
jne 0x1005756d
movss xmm0, dword [esi + 0xb4]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10057634
movss xmm0, dword [esi + 0xb8]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1005756d
lea edx, [edi + 0x40]
mov ecx, edi
call fcn.100554a1
mov cl, byte [ebp - 0x16f]
xor eax, eax
inc eax
mov dword [edi + 0xe6c], 0xbe99999a
mov byte [edi + 0xe70], al
jmp 0x10057570
mov byte [ebp - 0x16d], 0
test edx, 0x400
je 0x100576e3
push eax
xor edx, edx
mov ecx, 0x200
call fcn.1000e3e1
pop ecx
mov ecx, dword [ebp - 0x18c]
test al, al
mov al, byte [ebp - 0x16d]
je 0x100576ef
test al, al
jne 0x100576ef
cmp byte [esi + 0xdd1], al
jne 0x100576ef
test cl, cl
jne 0x100576ef
mov edx, dword [ebx + 0x14]
lea ecx, [ebp - 0x40]
push 2
pop eax
push eax
push dword [ebp - 0x1bc]
mov dword [ebp - 0x40], 9
push dword [ebp - 0x198]
call fcn.10056525
add esp, 0xc
test al, al
je 0x100576e3
push dword [ebp - 0x40]
lea edx, [edi + 0x40]
mov ecx, edi
call fcn.10055778
xor eax, eax
mov dword [edi + 0xe6c], 0xbe99999a
inc eax
pop ecx
mov byte [edi + 0xe70], al
mov ecx, dword [ebp - 0x18c]
mov al, byte [ebp - 0x16d]
lea edx, [esi + 0x3770]
cmp dword [edx], 0
jle 0x10057786
test al, al
jne 0x1005777d
test cl, cl
jne 0x1005777d
cmp byte [ebp - 0x172], cl
jne 0x1005777d
xor ecx, ecx
mov dword [ebp - 0x18], ecx
cmp dword [edx], ecx
jle 0x1005777d
mov eax, dword [esi + 0x3778]
movzx eax, word [eax + ecx*2]
mov dword [ebp - 0x1c], eax
cmp eax, 9
je 0x10057775
mov edx, dword [ebx + 0x14]
lea ecx, [ebp - 0x1c]
push 2
pop eax
push eax
push dword [ebp - 0x1bc]
push dword [ebp - 0x198]
call fcn.10056525
add esp, 0xc
test al, al
je 0x1005776c
push dword [ebp - 0x1c]
lea edx, [edi + 0x40]
mov ecx, edi
call fcn.10055778
xor eax, eax
mov dword [edi + 0xe6c], 0xbe99999a
inc eax
pop ecx
mov byte [edi + 0xe70], al
mov ecx, dword [ebp - 0x18]
lea edx, [esi + 0x3770]
inc ecx
mov dword [ebp - 0x18], ecx
cmp ecx, dword [edx]
jl 0x10057717
push 0
mov ecx, edx
call fcn.1001c2c8
mov ecx, dword [esi + 0x3e74]
xor dl, dl
mov eax, ecx
mov byte [ebp - 0x16d], dl
cmp ecx, dword [ebp - 0x178]
jne 0x100581fb
cmp byte [esi + 0x3e80], dl
jne 0x100581fb
cmp byte [ebp - 0x1c0], dl
jne 0x100581fb
movss xmm0, dword [ebp - 0x1c8]
xor edx, edx
subss xmm0, dword [esi + 0x37d8]
inc edx
mov ecx, edx
divss xmm0, dword [esi + 0x3bb4]
cvttss2si eax, xmm0
cmp eax, edx
cmovge ecx, eax
xor eax, eax
mov dword [edi + 0x50], ecx
cmp byte [esi + 0xdd1], al
mov dword [ebp - 0x1c], ecx
mov ecx, 0x400000
cmovne eax, ecx
mov cl, byte [esi + 0x61]
mov dword [ebp - 0x1a8], eax
mov byte [ebp - 0x1c9], cl
test cl, cl
je 0x10057811
mov al, byte [esi + 0xdd2]
jmp 0x10057817
mov al, byte [esi + 0xdd0]
mov byte [ebp - 0x172], al
test cl, cl
je 0x10057842
cmp byte [esi + 0xdd3], 0
je 0x10057842
cmp byte [esi + 0xdd0], 0
jne 0x10057842
cmp byte [esi + 0xdd2], 0
mov byte [ebp - 0x171], dl
je 0x10057849
mov byte [ebp - 0x171], 0
push edx
mov edx, dword [ebp - 0x178]
mov ecx, 0xa39
call fcn.1000fb75
pop ecx
test al, al
jne 0x10057878
mov edx, dword [ebp - 0x178]
xor eax, eax
inc eax
mov ecx, 0x220a
push eax
call fcn.1000fb75
pop ecx
test al, al
je 0x100578a6
cmp byte [ebp - 0x18c], 0
jne 0x100578a6
cmp byte [ebp - 0x1d4], 0
jne 0x100578a6
cmp byte [ebp - 0x17c], 0
je 0x1005789b
mov eax, dword [edi + 0x44]
cmp eax, dword [edi + 0x48]
je 0x100578a6
xor eax, eax
inc eax
mov byte [ebp - 0x16f], al
jmp 0x100578ad
mov byte [ebp - 0x16f], 0
mov edx, dword [ebp - 0x178]
mov ecx, 0xa24
push 0
call fcn.1000fb75
pop ecx
test al, al
jne 0x100578db
mov edx, dword [ebp - 0x178]
mov ecx, 0x1209
push 0
call fcn.1000fb75
pop ecx
test al, al
je 0x10057900
cmp byte [ebp - 0x1d4], 0
jne 0x10057900
cmp byte [ebp - 0x17c], 0
je 0x100578f5
mov eax, dword [edi + 0x44]
cmp eax, dword [edi + 0x48]
je 0x10057900
xor eax, eax
inc eax
mov byte [ebp - 0x1cb], al
jmp 0x1005790a
xor eax, eax
mov byte [ebp - 0x1cb], 0
inc eax
mov edx, dword [ebp - 0x178]
mov ecx, 0xa37
push eax
call fcn.1000fb75
pop ecx
test al, al
jne 0x10057939
mov edx, dword [ebp - 0x178]
xor eax, eax
inc eax
mov ecx, 0x2209
push eax
call fcn.1000fb75
pop ecx
test al, al
je 0x1005794d
cmp byte [ebp - 0x18c], 0
jne 0x1005794d
xor eax, eax
inc eax
mov byte [ebp - 0x191], al
jmp 0x10057957
xor eax, eax
mov byte [ebp - 0x191], 0
inc eax
mov edx, dword [ebp - 0x178]
mov ecx, 0xa3b
push eax
call fcn.1000fb75
pop ecx
test al, al
je 0x10057984
cmp byte [ebp - 0x18c], 0
jne 0x10057984
cmp byte [ebp - 0x1e0], 0
je 0x10057984
xor eax, eax
inc eax
jmp 0x10057986
xor al, al
mov edx, dword [ebp - 0x178]
mov ecx, 0xa3a
mov byte [ebp - 0x1c2], al
xor eax, eax
inc eax
push eax
call fcn.1000fb75
pop ecx
test al, al
jne 0x100579c6
cmp byte [ebp - 0x1c9], al
je 0x100579e3
mov edx, dword [ebp - 0x178]
xor eax, eax
inc eax
mov ecx, 0x2a3b
push eax
call fcn.1000fb75
pop ecx
test al, al
je 0x100579e3
cmp byte [ebp - 0x18c], 0
jne 0x100579e3
cmp byte [ebp - 0x1e0], 0
je 0x100579e3
xor eax, eax
inc eax
mov byte [ebp - 0x1c3], al
jmp 0x100579ea
mov byte [ebp - 0x1c3], 0
mov edx, dword [ebp - 0x178]
mov ecx, 0xa22
push 0
call fcn.1000fb75
mov byte [ebp - 0x2b], al
xor eax, eax
inc eax
test byte [esi + 8], 2
pop ecx
je 0x10057a14
mov byte [ebp - 0x173], al
test byte [esi + 0xc], al
jne 0x10057a1b
mov byte [ebp - 0x173], 0
push eax
xor edx, edx
mov ecx, 0x20d
call fcn.1000e3e1
pop ecx
test al, al
jne 0x10057a4a
xor eax, eax
xor edx, edx
inc eax
mov ecx, 0x267
push eax
call fcn.1000e3e1
pop ecx
test al, al
jne 0x10057a4a
mov byte [ebp - 0x1c1], al
jmp 0x10057a53
xor eax, eax
inc eax
mov byte [ebp - 0x1c1], al
cmp byte [ebp - 0x173], 0
je 0x10057a8d
push 0
xor edx, edx
mov ecx, 0x26e
call fcn.1000e3e1
pop ecx
test al, al
jne 0x10057a82
push 0
xor edx, edx
mov ecx, 0x26d
call fcn.1000e3e1
pop ecx
test al, al
je 0x10057a8d
xor eax, eax
inc eax
mov byte [ebp - 0x16e], al
jmp 0x10057a97
xor eax, eax
mov byte [ebp - 0x16e], 0
inc eax
mov edx, dword [ebp - 0x178]
mov ecx, 0x20e
push eax
call fcn.1000fb75
pop ecx
test al, al
jne 0x10057ada
cmp byte [ebp - 0x173], al
je 0x10057ace
mov edx, dword [ebp - 0x178]
xor eax, eax
inc eax
mov ecx, 0x26c
push eax
call fcn.1000fb75
pop ecx
test al, al
jne 0x10057ada
xor eax, eax
mov byte [ebp - 0x173], 0
inc eax
jmp 0x10057ae3
xor eax, eax
inc eax
mov byte [ebp - 0x173], al
push eax
xor edx, edx
mov ecx, 0x201
call fcn.1000e3e1
pop ecx
test al, al
je 0x10057b40
cmp byte [ebp - 0x172], 0
mov eax, 0x200000
lea ecx, [eax + 0xc]
cmovne eax, ecx
cmp byte [ebp - 0x171], 0
mov ecx, 0x200004
cmovne eax, ecx
or eax, dword [ebp - 0x1a8]
push eax
lea edx, [edi + 0x40]
mov ecx, edi
call fcn.10055778
xor eax, eax
mov dword [edi + 0xe6c], 0xbe99999a
inc eax
pop ecx
mov byte [edi + 0xe70], al
jmp 0x100581c3
xor eax, eax
xor edx, edx
inc eax
mov ecx, 0x202
push eax
call fcn.1000e3e1
pop ecx
test al, al
je 0x10057b76
cmp byte [ebp - 0x172], 0
mov eax, 0x200001
lea ecx, [eax + 0xc]
cmovne eax, ecx
lea edx, [ecx - 8]
cmp byte [ebp - 0x171], 0
cmovne eax, edx
jmp 0x10057b16
xor eax, eax
xor edx, edx
inc eax
mov ecx, 0x203
push eax
call fcn.1000e3e1
pop ecx
test al, al
je 0x10057be8
cmp byte [ebp - 0x17c], 0
je 0x10057be8
cmp byte [esi + 0xdd0], 0
je 0x10057bd5
mov eax, dword [ebp - 0x1b0]
movss xmm0, dword [eax + 0x78]
subss xmm0, dword [esi + 0x3bb4]
mov esi, eax
maxss xmm0, dword [0x10088424]
and dword [esi + 0x90], 0
and dword [esi + 0x98], 0
movss dword [esi + 0x88], xmm0
jmp 0x100581c3
movzx eax, byte [ebp - 0x171]
lea eax, [eax*4 + 0x200002]
jmp 0x10057b16
xor eax, eax
xor edx, edx
inc eax
mov ecx, 0x204
push eax
call fcn.1000e3e1
pop ecx
test al, al
je 0x10057c63
cmp byte [ebp - 0x17c], 0
je 0x10057c63
cmp byte [esi + 0xdd0], 0
je 0x10057c50
mov ecx, dword [ebp - 0x1b0]
mov eax, dword [0x10090d48]
movss xmm0, dword [ecx + 0x78]
addss xmm0, dword [esi + 0x3bb4]
mov eax, dword [eax + 0x3e28]
minss xmm0, dword [eax + 0x80]
and dword [ecx + 0x90], 0
and dword [ecx + 0x98], 0
movss dword [ecx + 0x88], xmm0
jmp 0x100581c3
movzx eax, byte [ebp - 0x171]
lea eax, [eax*4 + 0x200003]
jmp 0x10057b16
xor eax, eax
xor edx, edx
inc eax
mov ecx, 0x205
push eax
call fcn.1000e3e1
pop ecx
test al, al
je 0x10057cd5
cmp byte [ebp - 0x17c], 0
je 0x10057cd5
mov ecx, dword [ebp - 0x1a8]
lea edx, [edi + 0x40]
or ecx, 0x20000e
push ecx
mov ecx, edi
call fcn.10055778
movd xmm0, dword [ebp - 0x1c]
xor eax, eax
movss xmm1, dword [ebp - 0x1ec]
inc eax
cvtdq2ps xmm0, xmm0
mov byte [edi + 0xe70], al
mov dword [edi + 0xe6c], 0xbe99999a
pop ecx
mulss xmm0, dword [esi + 0x3bb4]
subss xmm1, xmm0
movss dword [ebp - 0x1ec], xmm1
jmp 0x100581c3
xor eax, eax
xor edx, edx
inc eax
mov ecx, 0x206
push eax
call fcn.1000e3e1
pop ecx
test al, al
je 0x10057d43
cmp byte [ebp - 0x17c], 0
je 0x10057d43
mov ecx, dword [ebp - 0x1a8]
lea edx, [edi + 0x40]
or ecx, 0x20000f
push ecx
mov ecx, edi
call fcn.10055778
movd xmm0, dword [ebp - 0x1c]
xor eax, eax
cvtdq2ps xmm0, xmm0
inc eax
mov dword [edi + 0xe6c], 0xbe99999a
mov byte [edi + 0xe70], al
pop ecx
mulss xmm0, dword [esi + 0x3bb4]
addss xmm0, dword [ebp - 0x1ec]
movss dword [ebp - 0x1ec], xmm0
jmp 0x100581c3
xor eax, eax
xor edx, edx
inc eax
mov ecx, 0x207
push eax
call fcn.1000e3e1
pop ecx
test al, al
je 0x10057d6c
cmp byte [esi + 0xdd0], 0
mov ecx, 0x200006
lea eax, [ecx - 2]
jmp 0x10057b13
xor eax, eax
xor edx, edx
inc eax
mov ecx, 0x208
push eax
call fcn.1000e3e1
pop ecx
test al, al
je 0x10057d95
cmp byte [esi + 0xdd0], 0
mov eax, 0x200005
lea ecx, [eax + 2]
jmp 0x10057b13
xor eax, eax
xor edx, edx
inc eax
mov ecx, 0x20a
push eax
call fcn.1000e3e1
pop ecx
test al, al
je 0x10057dce
cmp byte [ebp - 0x18c], 0
jne 0x10057dce
cmp byte [ebp - 0x16f], 0
jne 0x10057dce
mov ecx, dword [ebp - 0x1a8]
or ecx, 0x200008
push ecx
jmp 0x10057b1d
xor eax, eax
xor edx, edx
inc eax
mov ecx, 0x20b
push eax
call fcn.1000e3e1
pop ecx
test al, al
je 0x10057e5c
cmp byte [ebp - 0x18c], 0
jne 0x10057e5c
mov eax, dword [edi + 0x44]
cmp eax, dword [edi + 0x48]
jne 0x10057e4b
cmp byte [ebp - 0x172], 0
je 0x10057e04
push 0x60000c
jmp 0x10057e2d
cmp byte [ebp - 0x1c9], 0
je 0x10057e4b
cmp byte [esi + 0xdd3], 0
je 0x10057e4b
cmp byte [esi + 0xdd2], 0
jne 0x10057e4b
cmp byte [esi + 0xdd0], 0
jne 0x10057e4b
push 0x600004
lea edx, [edi + 0x40]
mov ecx, edi
call fcn.10055778
xor eax, eax
mov dword [edi + 0xe6c], 0xbe99999a
inc eax
mov byte [edi + 0xe70], al
pop ecx
mov ecx, dword [ebp - 0x1a8]
or ecx, 0x200009
jmp 0x10057dc8
cmp byte [ebp - 0x1c1], 0
mov cl, byte [ebp - 0x16e]
jne 0x10058131
test cl, cl
jne 0x10058131
cmp byte [ebp - 0x173], cl
je 0x10057ef2
test dword [ebx + 0x14], 0x100000
je 0x10057ed4
mov eax, dword [edi + 0xc]
test eax, eax
mov ecx, dword [ebp - 0x1c0]
movzx ecx, cl
push 1
pop edx
cmovle ecx, edx
xor edx, edx
mov dword [ebp - 0x1c0], ecx
test eax, eax
mov ecx, dword [ebp - 0x19c]
movzx ecx, cl
cmovle ecx, edx
test eax, eax
mov dword [ebp - 0x19c], ecx
mov ecx, dword [ebp - 0x180]
movzx ecx, cl
cmovle ecx, edx
setg dl
mov byte [ebp - 0x16d], dl
jmp 0x100581cf
xor eax, eax
inc eax
xor cl, cl
mov dl, al
mov byte [ebp - 0x1c0], al
mov byte [ebp - 0x16d], dl
mov byte [ebp - 0x19c], cl
jmp 0x100581cf
mov al, byte [ebp - 0x1c2]
test al, al
jne 0x100580f7
cmp byte [ebp - 0x1c3], al
jne 0x100580f7
cmp byte [ebp - 0x2b], al
je 0x10057f30
mov eax, dword [edi + 8]
and dword [edi + 0x44], 0
mov dword [edi + 0x48], eax
mov dword [edi + 0x40], eax
xor eax, eax
inc eax
mov byte [edi + 0x56], 0
mov byte [edi + 0xe70], al
jmp 0x100581c3
mov al, byte [ebp - 0x16f]
test al, al
jne 0x1005801e
cmp byte [ebp - 0x1cb], al
jne 0x1005801e
cmp byte [ebp - 0x191], al
je 0x100581c3
call fcn.10006d10
mov esi, eax
test esi, esi
je 0x100581c3
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10057f6a
sub ecx, edx
lea ecx, [ecx*2 + 2]
call fcn.10006cd0
mov ecx, eax
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x190], ecx
cmp byte [esi], al
je 0x10057fed
mov edi, eax
push 0
mov edx, esi
lea ecx, [ebp - 0x18]
call fcn.10003200
add esi, eax
cmp dword [ebp - 0x18], 0
pop ecx
je 0x10057fdb
mov edx, dword [ebx + 0x14]
lea ecx, [ebp - 0x18]
push 4
push dword [ebp - 0x1bc]
push dword [ebp - 0x198]
call fcn.10056525
add esp, 0xc
test al, al
je 0x10057fd6
mov ecx, dword [ebp - 0x190]
mov ax, word [ebp - 0x18]
mov word [ecx + edi*2], ax
inc edi
cmp byte [esi], 0
jne 0x10057f92
mov ecx, dword [ebp - 0x190]
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0x1a4]
mov eax, dword [ebp - 0x18]
xor edx, edx
mov word [ecx + eax*2], dx
test eax, eax
jle 0x10058014
push eax
push ecx
lea edx, [edi + 0x40]
mov ecx, edi
call fcn.1005572d
pop ecx
xor eax, eax
pop ecx
mov ecx, dword [ebp - 0x190]
inc eax
mov byte [edi + 0xe70], al
call fcn.10006cee
jmp 0x100581c3
cmp dword [esi + 0x84], 0
je 0x100580ae
mov eax, dword [edi + 0x44]
mov ecx, dword [edi + 0x48]
cmp eax, ecx
je 0x1005803c
mov esi, ecx
cmovl esi, eax
jmp 0x1005803e
xor esi, esi
cmp eax, ecx
mov dword [ebp - 0x1e0], esi
cmovge ecx, eax
jne 0x1005804e
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x1c], ecx
lea edx, [eax + ecx*2]
lea ecx, [eax + esi*2]
call fcn.1000351a
mov edi, eax
lea ecx, [edi + 1]
call fcn.10006cd0
mov ecx, dword [ebp - 0x1a4]
lea edx, [edi + 1]
mov dword [ebp - 0x20], eax
mov esi, dword [ecx + 0x18]
mov ecx, dword [ebp - 0x1c]
lea ecx, [esi + ecx*2]
push ecx
mov ecx, dword [ebp - 0x1e0]
lea ecx, [esi + ecx*2]
push ecx
mov ecx, eax
call fcn.100034b0
pop ecx
pop ecx
mov ecx, dword [ebp - 0x20]
call fcn.10006d2f
mov ecx, dword [ebp - 0x20]
call fcn.10006cee
mov edi, dword [ebp - 0x1a4]
mov al, byte [ebp - 0x16f]
test al, al
je 0x100581c3
mov eax, dword [edi + 0x44]
cmp eax, dword [edi + 0x48]
jne 0x100580cf
mov eax, dword [edi + 8]
and dword [edi + 0x44], 0
mov dword [edi + 0x48], eax
mov dword [edi + 0x40], eax
mov byte [edi + 0x56], 0
xor eax, eax
inc eax
mov byte [edi + 0xe70], al
mov eax, dword [edi + 0x44]
cmp eax, dword [edi + 0x48]
je 0x100581c3
lea edx, [edi + 0x40]
mov ecx, edi
call fcn.10055691
mov byte [edi + 0x56], 0
jmp 0x100581c3
xor ecx, ecx
movzx eax, al
inc ecx
lea edx, [edi + 0x40]
xor eax, ecx
mov ecx, edi
add eax, 0x20000a
push eax
call fcn.10055778
xor eax, eax
mov dword [edi + 0xe6c], 0xbe99999a
inc eax
mov byte [edi + 0xe70], al
mov eax, dword [edi + 0x40]
pop ecx
mov dword [edi + 0x48], eax
mov dword [edi + 0x44], eax
jmp 0x100581c3
mov eax, dword [ebx + 0x14]
xor edx, edx
inc edx
shr eax, 0xb
and al, dl
mov edx, dword [ebp - 0x17c]
test dl, dl
je 0x10058156
test cl, cl
jne 0x10058156
test al, al
je 0x1005817b
cmp byte [esi + 0xdd0], cl
jne 0x10058184
xor eax, eax
inc eax
cmp byte [esi + 0x64], 0
mov byte [ebp - 0x174], al
je 0x100581bd
test dl, dl
jne 0x100581bd
mov eax, dword [edi + 8]
and dword [edi + 0x44], 0
mov dword [edi + 0x48], eax
mov dword [edi + 0x40], eax
jmp 0x100580ee
cmp byte [esi + 0xdd0], 0
jne 0x10058156
cmp byte [ebp - 0x18c], 0
jne 0x100581c3
mov edx, dword [ebx + 0x14]
lea ecx, [ebp - 0x20]
push 0xa
pop eax
push 2
mov dword [ebp - 0x20], eax
pop eax
push eax
push dword [ebp - 0x1bc]
push dword [ebp - 0x198]
call fcn.10056525
add esp, 0xc
test al, al
je 0x100581c3
push dword [ebp - 0x20]
jmp 0x10057b1d
mov byte [ebp - 0x1c0], al
mov ecx, dword [ebp - 0x180]
mov dl, byte [ebp - 0x16d]
mov eax, dword [edi + 0x44]
cmp eax, dword [edi + 0x48]
je 0x100581e5
cmp byte [ebp - 0x19c], 0
je 0x100581e5
xor eax, eax
inc eax
jmp 0x100581e7
xor al, al
or cl, al
mov eax, dword [ebp - 0x188]
mov dword [ebp - 0x180], ecx
mov eax, dword [eax + 0x3e74]
and dword [ebp - 0x190], 0
xor esi, esi
mov dword [ebp - 0x1a8], esi
cmp eax, dword [ebp - 0x178]
jne 0x10058761
test dl, dl
je 0x1005833e
cmp byte [ebp - 0x18c], 0
jne 0x10058372
test dword [ebx + 0x14], 0x100000
je 0x1005825a
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x190], 0x1007149a
push esi
push eax
lea edx, [edi + 0x40]
mov dword [ebp - 0x1a8], esi
mov ecx, edi
call fcn.1005638f
pop ecx
pop ecx
jmp 0x10058347
mov ecx, dword [edi + 0x30]
mov eax, dword [ebp - 0x184]
push 2
pop esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10058284
test dl, dl
je 0x10058280
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10058284
add eax, esi
add ecx, esi
test dl, dl
jne 0x10058266
xor eax, eax
jmp 0x1005828b
sbb eax, eax
xor ecx, ecx
inc ecx
or eax, ecx
test eax, eax
je 0x10058347
mov eax, dword [edi + 0x28]
xor ecx, ecx
mov esi, dword [edi + 0x30]
dec eax
and dword [ebp - 0x108], 0
xor edx, edx
mov dword [ebp - 0x190], esi
mov dword [ebp - 0x1a8], eax
mov dword [ebp - 0x10c], ecx
mov dword [ebp - 0x104], edx
and dword [ebp - 4], edx
test eax, eax
jle 0x10058309
mov ecx, dword [ebp - 0x190]
add esi, eax
mov edx, esi
call fcn.100033c5
inc eax
lea ecx, [ebp - 0x10c]
push eax
call fcn.1001c2c8
mov edx, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x104]
push 0
push esi
push dword [ebp - 0x190]
call fcn.1000335e
mov edx, dword [ebp - 0x104]
add esp, 0xc
mov ecx, dword [ebp - 0x10c]
mov esi, dword [ebp - 0x1a8]
dec ecx
xor eax, eax
test esi, esi
cmovg eax, ecx
mov ecx, edi
push eax
push edx
lea edx, [edi + 0x40]
call fcn.1005638f
pop ecx
pop ecx
xor eax, eax
inc eax
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x104]
test ecx, ecx
je 0x1005833a
call fcn.10006cee
or dword [ebp - 4], 0xffffffff
cmp byte [ebp - 0x18c], 0
jne 0x10058372
xor eax, eax
lea ecx, [edi + 0x1c]
inc eax
mov byte [edi + 0x34], al
mov eax, dword [edi + 0x10]
lea eax, [eax*4 + 1]
push eax
call fcn.1001c1fe
mov edx, dword [edi + 0x1c]
mov ecx, dword [edi + 0x24]
push 0
push dword [edi + 0x18]
call fcn.100034b0
pop ecx
pop ecx
cmp byte [ebp - 0x16d], 0
je 0x10058449
cmp byte [ebp - 0x174], 0
je 0x10058393
mov eax, dword [ebx + 0x14]
test al, 0x20
jne 0x1005844c
mov esi, dword [ebp - 0x184]
mov eax, dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x190]
test ecx, ecx
je 0x10058761
cmp byte [ebp - 0x1a0], 0
je 0x1005872c
mov ecx, dword [ebx + 0x14]
xorps xmm0, xmm0
mov dword [ebp - 0x154], eax
inc eax
cmp dword [ebx + 0xc], eax
movlpd qword [ebp - 0x160], xmm0
cmovge eax, dword [ebx + 0xc]
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x16c]
push eax
movlpd qword [ebp - 0x14c], xmm0
movlpd qword [ebp - 0x144], xmm0
mov dword [ebp - 0x16c], 0x40000
mov dword [ebp - 0x168], ecx
mov dword [ebp - 0x158], esi
call dword [ebp - 0x198]
mov esi, dword [ebp - 0x150]
mov edi, dword [ebp - 0x158]
pop ecx
mov ecx, dword [ebp - 0x190]
lea eax, [esi - 1]
mov dword [ebp - 0x184], edi
cmp dword [ebp - 0x154], eax
cmovl eax, dword [ebp - 0x154]
jmp 0x10058735
mov eax, dword [ebx + 0x14]
test eax, 0x801c0
je 0x100586d4
and dword [ebp - 0x18], 0
test al, 0x40
je 0x10058483
xor eax, eax
xor edx, edx
inc eax
mov ecx, 0x200
push eax
call fcn.1000e3e1
pop ecx
test al, al
je 0x10058480
push 0x40
pop esi
mov dword [ebp - 0x18], 0x200
jmp 0x100584ef
mov eax, dword [ebx + 0x14]
test al, al
jns 0x100584d0
xor eax, eax
xor edx, edx
inc eax
mov ecx, 0x203
push eax
call fcn.1000e3e1
pop ecx
test al, al
je 0x100584aa
mov esi, 0x80
mov dword [ebp - 0x18], 0x203
jmp 0x100584ef
xor eax, eax
xor edx, edx
inc eax
mov ecx, 0x204
push eax
call fcn.1000e3e1
pop ecx
test al, al
je 0x100584cd
mov esi, 0x80
mov dword [ebp - 0x18], 0x204
jmp 0x100584ef
mov eax, dword [ebx + 0x14]
mov esi, 0x80000
test esi, eax
je 0x100584e2
cmp byte [edi + 0xe72], 0
jne 0x100584ef
mov esi, 0x100
test esi, eax
je 0x100586d4
push 0x30
lea eax, [ebp - 0x13c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebx + 0x14]
add esp, 0xc
cmp byte [ebp - 0x18c], 0
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x13c], esi
jne 0x1005852f
mov eax, dword [edi + 0x24]
mov esi, dword [edi + 0x18]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x128], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x124], eax
mov eax, dword [edi + 0x38]
mov dword [ebp - 0x120], eax
mov eax, dword [edi + 0x40]
mov dword [ebp - 0x12c], ecx
mov ecx, esi
mov byte [ebp - 0x11c], 0
lea edx, [esi + eax*2]
call fcn.1000351a
mov ecx, dword [ebp - 0x1a4]
mov edi, eax
mov dword [ebp - 0x118], edi
mov ecx, dword [ecx + 0x44]
lea edx, [esi + ecx*2]
mov ecx, esi
call fcn.1000351a
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x1a4]
mov ecx, dword [eax + 0x48]
lea edx, [esi + ecx*2]
mov ecx, esi
call fcn.1000351a
mov esi, eax
lea eax, [ebp - 0x13c]
push eax
mov dword [ebp - 0x110], esi
call dword [ebp - 0x198]
mov edx, dword [ebp - 0x118]
pop ecx
mov cl, byte [ebp - 0x11c]
mov byte [ebp - 0x16e], cl
cmp edx, edi
jne 0x100585ce
test cl, cl
je 0x100585fb
mov ecx, dword [ebp - 0x128]
add edx, ecx
call fcn.100033c5
mov edi, dword [ebp - 0x1a4]
mov edx, dword [ebp - 0x118]
mov cl, byte [ebp - 0x16e]
mov dword [edi + 0x40], eax
xor eax, eax
inc eax
mov byte [edi + 0xe70], al
jmp 0x10058601
mov edi, dword [ebp - 0x1a4]
mov eax, dword [ebp - 0x114]
cmp eax, dword [ebp - 0x1c]
jne 0x10058610
test cl, cl
je 0x10058638
cmp eax, edx
jne 0x10058619
mov ecx, dword [edi + 0x40]
jmp 0x1005862f
mov ecx, dword [ebp - 0x128]
lea edx, [eax + ecx]
call fcn.100033c5
mov ecx, eax
mov eax, dword [ebp - 0x114]
mov dword [edi + 0x44], ecx
mov cl, byte [ebp - 0x16e]
mov edx, dword [ebp - 0x110]
cmp edx, esi
jne 0x1005864a
test cl, cl
je 0x100586d4
cmp edx, eax
jne 0x10058653
mov eax, dword [edi + 0x44]
jmp 0x10058660
mov ecx, dword [ebp - 0x128]
add edx, ecx
call fcn.100033c5
cmp byte [ebp - 0x16e], 0
mov dword [edi + 0x48], eax
je 0x100586d4
push dword [ebp - 0x124]
mov edx, dword [ebp - 0x128]
mov ecx, edi
call fcn.100566fb
mov eax, dword [ebp - 0x124]
mov edx, dword [ebp - 0xe4]
pop ecx
cmp eax, edx
jle 0x100586a6
cmp byte [ebp - 0x1a0], 0
je 0x100586a6
lea ecx, [edi + 0x10]
sub eax, edx
add eax, dword [ecx]
push eax
call fcn.1001c2c8
mov edx, dword [edi + 0x10]
mov ecx, dword [edi + 0x18]
push 0
push 0
push dword [ebp - 0x128]
call fcn.1000335e
mov dword [edi + 8], eax
add esp, 0xc
mov eax, dword [ebp - 0x124]
mov dword [edi + 0xc], eax
mov dword [edi + 0xe6c], 0xbe99999a
cmp byte [ebp - 0x18c], 0
mov esi, dword [ebp - 0x184]
jne 0x10058399
mov eax, dword [edi + 0x24]
mov ecx, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1005870c
test dl, dl
je 0x10058708
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1005870c
add eax, 2
add ecx, 2
test dl, dl
jne 0x100586ec
xor eax, eax
jmp 0x10058713
sbb eax, eax
xor ecx, ecx
inc ecx
or eax, ecx
test eax, eax
je 0x10058399
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x190], eax
mov eax, dword [edi + 0xc]
jmp 0x1005839f
mov esi, dword [ebx + 0xc]
mov edi, dword [ebp - 0x184]
inc eax
cmp eax, esi
cmovl esi, eax
xor eax, eax
inc eax
cmp esi, eax
jb 0x1005875b
jbe 0x10058756
lea eax, [esi - 1]
push eax
push ecx
push edi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
xor eax, eax
add esp, 0xc
inc eax
mov byte [edi + esi - 1], 0
mov byte [ebp - 0x192], al
cmp byte [ebp - 0x1c0], 0
mov esi, dword [ebp - 0x188]
mov eax, dword [ebp - 0x178]
je 0x1005878d
cmp dword [esi + 0x3e74], eax
jne 0x1005878d
xor edx, edx
xor ecx, ecx
call fcn.10006863
mov eax, dword [ebp - 0x178]
mov ecx, dword [ebp - 0x17c]
test cl, cl
jne 0x1005881e
xor ecx, ecx
mov edx, eax
inc ecx
push ecx
lea ecx, [ebp - 0xf8]
call fcn.10005595
movss xmm0, dword [esi + 0x37dc]
lea edi, [ebp - 0x3c]
mov eax, dword [0x10090d48]
movss dword [ebp - 0x1a0], xmm0
pop ecx
lea ecx, [ebp - 0x3c]
lea esi, [eax + 0x38d0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movss xmm0, dword [ebp - 0x30]
mulss xmm0, dword [eax + 0x3798]
movss dword [ebp - 0x30], xmm0
call fcn.10003612
push dword [ebp - 0xec]
movss xmm2, dword [ebp - 0x1a0]
xor ecx, ecx
push dword [ebp - 0xf0]
push dword [ebp - 0xf4]
lea edx, [ecx + 1]
mov ecx, eax
push dword [ebp - 0xf8]
call fcn.100053a5
mov ecx, dword [ebp - 0x17c]
add esp, 0x10
movss xmm0, dword [ebp - 0xf8]
movss xmm1, dword [ebp - 0xf4]
movss xmm2, dword [ebp - 0x1d0]
mov edi, dword [ebp - 0x188]
movss dword [ebp - 0x50], xmm0
addss xmm0, xmm2
movss dword [ebp - 0x4c], xmm1
addss xmm1, dword [ebp - 0x1c8]
movss dword [ebp - 0x48], xmm0
movss dword [ebp - 0x44], xmm1
test cl, cl
je 0x10058880
mov edx, dword [ebp - 0x1b0]
mov eax, dword [edx + 0xec]
mov dword [ebp - 0x1b8], eax
mov eax, dword [edx + 0xf0]
mov dword [ebp - 0x1b4], eax
jmp 0x100588b0
movss xmm0, dword [edi + 0x37d4]
addss xmm0, dword [ebp - 0xf8]
movss dword [ebp - 0x1b8], xmm0
movss xmm0, dword [edi + 0x37d8]
addss xmm0, dword [ebp - 0xf4]
movss dword [ebp - 0x1b4], xmm0
cmp byte [ebp - 0x1ca], 0
lea eax, [ebp - 0x1b8]
movss xmm0, dword [eax]
mov esi, dword [ebp - 0x1a4]
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [eax + 4]
movss dword [ebp - 0x24], xmm0
xorps xmm0, xmm0
movss dword [ebp - 0x1c], xmm0
movss dword [ebp - 0x190], xmm0
je 0x100588f1
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x184], eax
mov dl, byte [ebp - 0x170]
xor eax, eax
mov dword [ebp - 0xe0], eax
test dl, dl
je 0x10058938
mov eax, dword [ebp - 0x1d8]
mov ecx, eax
mov dword [ebp - 0x184], eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10058914
sub ecx, edx
mov edx, dword [ebp - 0x1d8]
lea eax, [ecx + edx]
mov ecx, dword [ebp - 0x17c]
mov dl, byte [ebp - 0x170]
mov dword [ebp - 0xe0], eax
cmp byte [ebp - 0x19c], 0
jne 0x10058a74
cmp byte [ebp - 0x180], 0
jne 0x10058a74
test cl, cl
je 0x1005898f
mov ecx, dword [ebp - 0x184]
lea edx, [ebp - 0xe0]
movss dword [ebp - 0x1c], xmm2
call fcn.10054f2e
movss xmm1, dword [edi + 0x3bb4]
movd xmm0, eax
mov eax, dword [ebp - 0xe0]
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm0
movss dword [ebp - 0x190], xmm1
jmp 0x100589d1
test dl, dl
jne 0x100589da
mov eax, dword [ebp - 0x178]
cmp dword [edi + 0x3e74], eax
jne 0x100589b4
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp - 0x184]
add eax, ecx
mov dword [ebp - 0xe0], eax
jmp 0x100589e0
mov esi, dword [ebp - 0x184]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100589bf
sub ecx, edx
lea eax, [esi + ecx]
mov dword [ebp - 0xe0], eax
cmp byte [ebp - 0x17c], 0
jne 0x100589ed
mov ecx, dword [ebp - 0x184]
sub eax, ecx
cmp eax, 0x200000
jge 0x100593cc
mov ecx, dword [0x10090d48]
lea edi, [ebp - 0x3c]
movzx eax, byte [ebp - 0x170]
shl eax, 4
lea esi, [ecx + 0x3860]
add esi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movss xmm0, dword [ebp - 0x30]
mulss xmm0, dword [ecx + 0x3798]
lea ecx, [ebp - 0x3c]
movss dword [ebp - 0x30], xmm0
call fcn.10003612
mov edi, dword [ebp - 0x188]
lea ecx, [ebp - 0x50]
xor edx, edx
cmp byte [ebp - 0x17c], dl
movss xmm2, dword [edi + 0x3bb4]
cmovne ecx, edx
push ecx
push ecx
and dword [esp], edx
push dword [ebp - 0xe0]
push dword [ebp - 0x184]
push eax
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x1b0]
push dword [edi + 0x3bb0]
mov ecx, dword [eax + 0x260]
call fcn.1003c51e
jmp 0x100593cc
test dl, dl
jne 0x10058a87
mov eax, dword [esi + 0xc]
add eax, dword [ebp - 0x184]
mov dword [ebp - 0xe0], eax
and dword [ebp - 0x1a8], 0
mov eax, 0xfffffc18
and dword [ebp - 0x1e0], 0
xor ecx, ecx
movaps xmm4, xmm0
mov edx, dword [esi + 0x18]
mov dword [ebp - 0x1c0], edx
movss dword [ebp - 0x1bc], xmm4
movss dword [ebp - 0xe4], xmm0
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x18], eax
cmp byte [ebp - 0x19c], cl
je 0x10058ae1
mov eax, dword [esi + 0x40]
or dword [ebp - 0x198], 0xffffffff
lea eax, [edx + eax*2]
mov dword [ebp - 0x1a8], eax
xor eax, eax
lea ecx, [eax + 1]
cmp byte [ebp - 0x180], 0
je 0x10058b02
mov eax, dword [esi + 0x48]
cmp dword [esi + 0x44], eax
cmovl eax, dword [esi + 0x44]
or dword [ebp - 0x18], 0xffffffff
inc ecx
lea eax, [edx + eax*2]
mov dword [ebp - 0x1e0], eax
mov edi, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x17c]
movzx eax, al
add ecx, eax
xor eax, eax
movzx edi, word [edi]
mov dword [ebp - 0x1a0], edi
test di, di
mov edi, dword [ebp - 0x188]
mov dword [ebp - 0x1d8], eax
je 0x10058ba8
mov eax, dword [ebp - 0x1a0]
mov edi, dword [ebp - 0x1d8]
movzx eax, ax
push 0xa
pop esi
cmp ax, si
mov esi, dword [ebp - 0x198]
jne 0x10058b7b
inc edi
cmp esi, 0xffffffff
jne 0x10058b65
cmp edx, dword [ebp - 0x1a8]
jb 0x10058b65
dec ecx
mov dword [ebp - 0x198], edi
test ecx, ecx
jle 0x10058b90
cmp dword [ebp - 0x18], 0xffffffff
jne 0x10058b7b
cmp edx, dword [ebp - 0x1e0]
jb 0x10058b7b
dec ecx
mov dword [ebp - 0x18], edi
test ecx, ecx
jle 0x10058b90
push 2
pop eax
add edx, eax
movzx eax, word [edx]
mov esi, eax
mov dword [ebp - 0x1a0], esi
test ax, ax
jne 0x10058b3e
mov esi, dword [ebp - 0x1a4]
mov dword [ebp - 0x1d8], edi
mov edi, dword [ebp - 0x188]
mov eax, dword [ebp - 0x1d8]
cmp dword [ebp - 0x198], 0xffffffff
lea edx, [eax + 1]
mov ecx, edx
mov dword [ebp - 0x1b4], edx
cmovne ecx, dword [ebp - 0x198]
cmp dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x198], ecx
mov ecx, edx
cmovne ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1a8]
mov eax, edx
mov dword [ebp - 0x1a0], ecx
mov ecx, dword [ebp - 0x1c0]
cmp edx, ecx
jbe 0x10058c0c
push 0xa
pop edi
lea esi, [eax - 2]
mov dword [ebp - 0x1d8], esi
cmp word [esi], di
je 0x10058c00
mov eax, esi
cmp eax, ecx
ja 0x10058bec
mov esi, dword [ebp - 0x1a4]
mov edi, dword [ebp - 0x188]
xor ecx, ecx
push ecx
push ecx
push ecx
push edx
push eax
mov edx, edi
lea ecx, [ebp - 0x1ac]
call fcn.10054f59
movd xmm5, dword [ebp - 0x198]
add esp, 0x14
cmp dword [ebp - 0x1a0], 0
movss xmm0, dword [edi + 0x3bb4]
movss xmm1, dword [eax]
cvtdq2ps xmm5, xmm5
movss dword [ebp - 0x1d8], xmm1
mulss xmm5, xmm0
movss dword [ebp - 0x198], xmm5
jl 0x10058ce2
mov edx, dword [ebp - 0x1e0]
mov eax, edx
mov ecx, dword [ebp - 0x1c0]
cmp edx, ecx
jbe 0x10058c90
push 0xa
pop edi
lea esi, [eax - 2]
mov dword [ebp - 0xe4], esi
cmp word [esi], di
je 0x10058c84
mov eax, esi
cmp eax, ecx
ja 0x10058c70
mov esi, dword [ebp - 0x1a4]
mov edi, dword [ebp - 0x188]
xor ecx, ecx
push ecx
push ecx
push ecx
push edx
push eax
mov edx, edi
lea ecx, [ebp - 0x1fc]
call fcn.10054f59
movd xmm1, dword [ebp - 0x1a0]
add esp, 0x14
movss xmm0, dword [edi + 0x3bb4]
movss xmm5, dword [ebp - 0x198]
movss xmm4, dword [eax]
cvtdq2ps xmm1, xmm1
movss dword [ebp - 0x1bc], xmm4
mulss xmm1, xmm0
movss dword [ebp - 0xe4], xmm1
movss xmm1, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x17c]
movss xmm3, dword [ebp - 0x1d0]
test cl, cl
je 0x10058d12
movd xmm4, dword [ebp - 0x1b4]
cvtdq2ps xmm4, xmm4
movss dword [ebp - 0x1c], xmm3
mulss xmm4, xmm0
movss dword [ebp - 0x190], xmm4
jmp 0x10058d1a
movss xmm4, dword [ebp - 0x190]
cmp byte [ebp - 0x19c], 0
je 0x10058e3b
cmp byte [esi + 0xe70], 0
je 0x10058e3b
test dword [ebx + 0x14], 0x1000
jne 0x10058d86
movss xmm2, dword [esi + 0x3c]
movaps xmm0, xmm3
comiss xmm2, xmm1
mulss xmm0, dword [0x10088490]
subss xmm3, dword [edi + 0x37d4]
jbe 0x10058d77
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x3c], xmm0
jmp 0x10058d8a
subss xmm1, xmm3
comiss xmm1, xmm2
jb 0x10058d8a
addss xmm0, xmm1
jmp 0x10058d65
and dword [esi + 0x3c], 0
xorps xmm7, xmm7
test cl, cl
je 0x10058e34
movss xmm6, dword [ebp - 0x1ec]
movaps xmm0, xmm5
subss xmm0, dword [edi + 0x3bb4]
movss xmm2, dword [edi + 0x37d8]
comiss xmm6, xmm0
jbe 0x10058dce
xorps xmm6, xmm6
maxss xmm6, xmm0
movss xmm0, dword [ebp - 0x1c8]
comiss xmm7, xmm6
jbe 0x10058e02
xorps xmm2, xmm2
jmp 0x10058e16
movss xmm1, dword [ebp - 0x1c8]
movaps xmm3, xmm2
addss xmm3, xmm2
movaps xmm0, xmm5
subss xmm1, xmm3
subss xmm0, xmm1
comiss xmm0, xmm6
jb 0x10058dbc
movss xmm0, dword [ebp - 0x1c8]
movaps xmm6, xmm5
subss xmm6, xmm0
addss xmm6, xmm3
jmp 0x10058dc4
addss xmm2, xmm2
addss xmm2, xmm4
subss xmm2, xmm0
maxss xmm2, xmm7
minss xmm2, xmm6
mov eax, dword [ebp - 0x1b0]
movss xmm0, dword [eax + 0x78]
subss xmm0, xmm2
addss xmm0, dword [ebp - 0x24]
movss dword [ebp - 0x24], xmm0
movss dword [eax + 0x78], xmm2
mov byte [esi + 0xe70], 0
cmp byte [ebp - 0x180], 0
movss xmm0, dword [esi + 0x3c]
movss dword [ebp - 0x1c8], xmm0
je 0x100590fe
mov edx, dword [esi + 0x48]
mov eax, edx
mov ecx, dword [esi + 0x44]
cmp ecx, edx
mov esi, dword [ebp - 0x1c0]
cmovl eax, ecx
cmovge edx, ecx
cmp byte [ebp - 0x19c], 0
lea eax, [esi + eax*2]
mov dword [ebp - 0x1b4], eax
lea eax, [esi + edx*2]
mov dword [ebp - 0x1e0], eax
je 0x10058e90
movss xmm1, dword [0x10088500]
jmp 0x10058e98
movss xmm1, dword [0x100884bc]
mov eax, dword [0x10090d48]
lea edi, [ebp - 0xa0]
lea ecx, [ebp - 0xa0]
movss xmm0, dword [eax + 0x3798]
lea esi, [eax + 0x3b50]
movsd dword es:[edi], dword [esi]
mulss xmm0, xmm1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mulss xmm0, dword [ebp - 0x94]
movss dword [ebp - 0x94], xmm0
call fcn.10003612
mov ecx, dword [ebp - 0x17c]
xorps xmm2, xmm2
mov dword [ebp - 0x1ec], eax
test cl, cl
je 0x10058ef9
movss dword [ebp - 0x1e8], xmm2
movss dword [ebp - 0x1a0], xmm2
jmp 0x10058f09
movss xmm0, dword [0x10088580]
movss dword [ebp - 0x1a0], xmm0
movss xmm1, dword [ebp - 0x24]
addss xmm1, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0x1b4]
movss xmm3, dword [ebp - 0x1bc]
mov esi, dword [ebp - 0x1e0]
mov edi, dword [ebp - 0x188]
mov dword [ebp - 0x18], ecx
subss xmm1, xmm2
addss xmm3, dword [ebp - 0x28]
movss dword [ebp - 0x1d0], xmm1
cmp ecx, esi
jae 0x100590f8
subss xmm3, dword [ebp - 0x1c8]
movss xmm2, dword [edi + 0x3bb4]
movss dword [ebp - 0x1bc], xmm3
movss xmm0, dword [ebp - 0x44]
addss xmm0, xmm2
comiss xmm1, xmm0
ja 0x100590f8
movss xmm0, dword [ebp - 0x4c]
comiss xmm0, xmm1
jbe 0x10058fa6
cmp ecx, esi
jae 0x100590c7
push 0xa
pop edx
movzx eax, word [ecx]
add ecx, 2
mov dword [ebp - 0x18], ecx
cmp ax, dx
je 0x100590c7
cmp ecx, esi
jb 0x10058f8b
jmp 0x100590c7
xor eax, eax
mov edx, edi
inc eax
push eax
push 0
lea eax, [ebp - 0x18]
push eax
push esi
push ecx
lea ecx, [ebp - 0xe8]
call fcn.10054f59
movss xmm3, dword [ebp - 0xe8]
xorps xmm5, xmm5
add esp, 0x14
comiss xmm5, xmm3
jb 0x1005900a
mov eax, dword [edi + 0x3bb0]
cmp dword [eax], 0x20
jle 0x10058fea
mov eax, dword [eax + 8]
movss xmm0, dword [eax + 0x80]
jmp 0x10058fef
movss xmm0, dword [eax + 0xc]
mulss xmm0, dword [0x100884b0]
cvttss2si eax, xmm0
movd xmm3, eax
cvtdq2ps xmm3, xmm3
movss dword [ebp - 0xe8], xmm3
movss xmm0, dword [ebp - 0x1e8]
lea eax, [ebp - 0x50]
subss xmm0, dword [edi + 0x3bb4]
movss xmm4, dword [ebp - 0x1bc]
lea ecx, [ebp - 0x88]
movss xmm1, dword [ebp - 0x1a0]
addss xmm3, xmm4
addss xmm1, dword [ebp - 0x1d0]
addss xmm4, xmm5
addss xmm0, dword [ebp - 0x1d0]
push eax
movss dword [ebp - 0x60], xmm3
movss dword [ebp - 0x5c], xmm1
movss dword [ebp - 0x68], xmm4
movss dword [ebp - 0x64], xmm0
call fcn.10001267
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0x68]
call fcn.100012e8
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x20c]
call fcn.10001267
lea eax, [ebp - 0x20c]
push eax
lea ecx, [ebp - 0x68]
call fcn.100012b1
test al, al
je 0x100590bc
push 0
push ecx
and dword [esp], 0
lea eax, [ebp - 0x60]
push dword [ebp - 0x1ec]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x1b0]
mov ecx, dword [eax + 0x260]
call fcn.1003c1ae
movss xmm1, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0x18]
movss xmm2, dword [edi + 0x3bb4]
movss xmm3, dword [ebp - 0x28]
addss xmm1, xmm2
subss xmm3, dword [ebp - 0x1c8]
movss dword [ebp - 0x1d0], xmm1
movss dword [ebp - 0x1bc], xmm3
cmp ecx, esi
jb 0x10058f64
mov ecx, dword [ebp - 0x17c]
test cl, cl
jne 0x10059119
mov eax, dword [ebp - 0xe0]
sub eax, dword [ebp - 0x184]
cmp eax, 0x200000
jge 0x100591ca
mov ecx, dword [0x10090d48]
lea edi, [ebp - 0x3c]
movzx eax, byte [ebp - 0x170]
shl eax, 4
lea esi, [ecx + 0x3860]
add esi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movss xmm0, dword [ebp - 0x30]
mulss xmm0, dword [ecx + 0x3798]
lea ecx, [ebp - 0x3c]
movss dword [ebp - 0x30], xmm0
call fcn.10003612
movss xmm0, dword [ebp - 0x28]
lea ecx, [ebp - 0x50]
subss xmm0, dword [ebp - 0x1c8]
mov edi, dword [ebp - 0x188]
xor edx, edx
cmp byte [ebp - 0x17c], dl
mov esi, dword [ebp - 0x1b0]
cmovne ecx, edx
movss xmm2, dword [edi + 0x3bb4]
push ecx
push ecx
and dword [esp], edx
push dword [ebp - 0xe0]
mov ecx, dword [esi + 0x260]
push dword [ebp - 0x184]
movss dword [ebp - 0x1e4], xmm0
movss xmm0, dword [ebp - 0x24]
subss xmm0, dword [0x10088424]
push eax
lea eax, [ebp - 0x1e4]
push eax
push dword [edi + 0x3bb0]
movss dword [ebp - 0x1e0], xmm0
call fcn.1003c51e
jmp 0x100591d0
mov esi, dword [ebp - 0x1b0]
cmp byte [ebp - 0x19c], 0
je 0x100593cc
mov eax, dword [ebp - 0x1a4]
movss xmm0, dword [edi + 0x18]
addss xmm0, dword [eax + 0xe6c]
movss dword [eax + 0xe6c], xmm0
cmp byte [edi + 0x63], 0
je 0x10059245
xorps xmm1, xmm1
comiss xmm1, xmm0
jae 0x10059245
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x1b8], xmm0
fld qword [ebp - 0x1b8]
fld qword [0x10088578]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIfmod
movss xmm0, dword [0x100884e0]
fstp qword [ebp - 0x1b8]
movsd xmm1, qword [ebp - 0x1b8]
cvtpd2ps xmm1, xmm1
comiss xmm0, xmm1
jae 0x10059245
xor cl, cl
jmp 0x1005924a
xor eax, eax
lea ecx, [eax + 1]
movss xmm0, dword [ebp - 0x1d8]
addss xmm0, dword [ebp - 0x28]
subss xmm0, dword [ebp - 0x1c8]
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 0x24]
addss xmm0, dword [ebp - 0x198]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
subss xmm0, dword [0x10088424]
movss dword [ebp - 0x1e8], xmm1
movss dword [ebp - 0x3c], xmm1
cvttss2si eax, xmm0
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movss dword [ebp - 0x1a0], xmm2
movaps xmm0, xmm2
subss xmm0, dword [edi + 0x3bb4]
addss xmm0, dword [0x100884b0]
movss dword [ebp - 0x38], xmm0
movaps xmm0, xmm1
addss xmm0, dword [0x10088500]
movss dword [ebp - 0x34], xmm0
movaps xmm0, xmm2
subss xmm0, dword [0x10088548]
movss dword [ebp - 0x30], xmm0
test cl, cl
je 0x1005938e
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x21c]
call fcn.10001267
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x3c]
call fcn.100012b1
test al, al
je 0x1005937e
mov eax, dword [esi + 0x260]
lea edi, [ebp - 0x88]
mov dword [ebp - 0x1b4], eax
lea ecx, [ebp - 0x88]
mov eax, dword [0x10090d48]
movss xmm0, dword [eax + 0x3798]
lea esi, [eax + 0x3860]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mulss xmm0, dword [ebp - 0x7c]
movss dword [ebp - 0x7c], xmm0
call fcn.10003612
movss xmm0, dword [ebp - 0x3c]
push ecx
mov ecx, dword [ebp - 0x1b4]
mov dword [esp], 0x3f800000
push eax
lea eax, [ebp - 0x1dc]
movss dword [ebp - 0x1dc], xmm0
movss xmm0, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x3c]
movss dword [ebp - 0x1d8], xmm0
push eax
call fcn.1003c046
mov edi, dword [ebp - 0x188]
movss xmm2, dword [ebp - 0x1a0]
movss xmm1, dword [ebp - 0x1e8]
cmp byte [ebp - 0x18c], 0
jne 0x100593cc
movss xmm0, dword [edi + 0x3bb4]
xor eax, eax
subss xmm1, dword [0x10088500]
subss xmm2, xmm0
movss dword [edi + 0x59d8], xmm0
inc eax
mov byte [edi + 0x59cc], al
movss dword [edi + 0x59d0], xmm1
movss dword [edi + 0x59d4], xmm2
cmp byte [ebp - 0x1d4], 0
je 0x100593e3
cmp byte [ebp - 0x170], 0
jne 0x100593e3
call fcn.1000d43d
cmp byte [ebp - 0x17c], 0
je 0x10059481
movss xmm0, dword [ebp - 0x1c]
lea ecx, [ebp - 0x1f0]
movss dword [ebp - 0x1f0], xmm0
movss xmm0, dword [ebp - 0x190]
addss xmm0, dword [edi + 0x37d8]
movss dword [ebp - 0x1ec], xmm0
call fcn.10050fe7
mov esi, dword [edi + 0x4680]
mov eax, esi
or eax, 0x401
mov dword [edi + 0x4680], eax
call fcn.10008cea
mov eax, dword [edi + 0x46a4]
and eax, 0x80
mov dword [edi + 0x4680], esi
or dword [ebp - 0xd4], eax
call fcn.1001065e
cmp dword [edi + 0x469c], 0
jne 0x10059481
mov eax, dword [ebp - 0x178]
mov dword [edi + 0x469c], eax
mov eax, dword [ebp - 0xd8]
mov dword [edi + 0x46a0], eax
mov eax, dword [ebp - 0xd4]
mov dword [edi + 0x46a4], eax
cmp byte [edi + 0x5a50], 0
je 0x100594ca
cmp byte [ebp - 0x1d4], 0
je 0x1005949c
cmp byte [ebp - 0x170], 0
je 0x100594ca
mov eax, dword [0x10090d48]
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x184]
mov dword [eax + 0x5a68], 0x10087a4c
mov dword [eax + 0x5a6c], 0x10087a48
push dword [ebp - 0xe0]
call fcn.1001548b
pop ecx
movss xmm0, dword [ebp - 0x58]
comiss xmm0, dword [0x10088424]
jbe 0x10059528
movss xmm0, dword [edi + 0x37ec]
xor eax, eax
addss xmm0, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x1f4]
inc eax
xor edx, edx
movss dword [ebp - 0x1b8], xmm0
movss xmm0, dword [ebp - 0xf4]
addss xmm0, dword [edi + 0x37d8]
movss dword [ebp - 0x1b4], xmm0
push dword [ebp - 0x1b4]
push dword [ebp - 0x1b8]
push eax
call fcn.10004d36
add esp, 0xc
mov dl, byte [ebp - 0x192]
mov ecx, dword [ebx + 0x14]
test dl, dl
je 0x10059552
test ecx, 0x8000000
jne 0x10059552
mov eax, dword [0x10090d48]
or dword [eax + 0x46a4], 4
mov word [eax + 0x3e84], 0x101
test cl, 0x20
movzx eax, dl
movzx ecx, byte [ebp - 0x174]
cmovne eax, ecx
mov ecx, dword [ebp - 0x14]
call fcn.1006edc2
ret