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

Disassembly:
push 0x154
mov eax, 0x100be336
call fcn.100b73d8
mov ecx, dword [0x103b6348]
xor edx, edx
inc edx
mov eax, dword [ecx + 0x3e48]
mov byte [eax + 0xa8], dl
mov edi, dword [ecx + 0x3e48]
mov dword [ebp - 0x40], edi
cmp byte [edi + 0xab], 0
jne 0x1008c3ab
mov edx, dword [ebp + 0x20]
xor eax, eax
inc eax
mov esi, dword [0x103b6348]
mov ecx, edx
mov dword [ebp - 0x34], esi
shr ecx, 0x1a
and cl, al
mov eax, edx
shr eax, 0xe
and eax, 0xffffff01
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x38], eax
mov eax, edx
shr eax, 0xf
and eax, 0xffffff01
mov dword [ebp - 0xa8], eax
mov eax, edx
shr eax, 0x10
not al
and eax, 0xffffff01
mov dword [ebp - 0x5c], eax
mov eax, edx
xor edx, edx
shr eax, 0x12
inc edx
and al, dl
mov dword [ebp - 0xac], eax
test cl, cl
je 0x1008c1bd
call fcn.10040604
push 0
push dword [ebp + 8]
mov ecx, edi
call fcn.100470f7
movss xmm0, dword [0x100c7b84]
mov dword [ebp - 0x18], eax
xor eax, eax
push ecx
mov dword [esp], 0xbf800000
inc eax
push eax
push 0
push dword [ebp + 8]
lea eax, [ebp - 0x11c]
movss dword [ebp - 0xb4], xmm0
push eax
call fcn.1004139f
add esp, 0x14
cmp byte [ebp - 0x28], 0
je 0x1008c214
movss xmm1, dword [esi + 0x3bd0]
mulss xmm1, dword [0x100c7ea8]
jmp 0x1008c21c
movss xmm1, dword [ebp - 0x118]
movss xmm0, dword [esi + 0x37d8]
addss xmm0, xmm0
addss xmm0, xmm1
movss dword [ebp - 0x4c], xmm0
call fcn.10040eb3
movss xmm0, dword [ebp - 0x4c]
mov eax, dword [ebp + 0x1c]
push ecx
push ecx
movss dword [esp + 4], xmm0
fstp dword [ebp - 0x80]
movss xmm0, dword [ebp - 0x80]
movss dword [esp], xmm0
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x124]
push eax
call fcn.10040df3
movss xmm2, dword [ebp - 0x11c]
xorps xmm0, xmm0
add esp, 0x14
comiss xmm2, xmm0
jbe 0x1008c281
addss xmm2, dword [esi + 0x37ec]
jmp 0x1008c284
xorps xmm2, xmm2
movss xmm4, dword [ebp - 0x120]
mov ecx, dword [edi + 0xf0]
movaps xmm0, xmm4
addss xmm0, dword [edi + 0xf0]
mov eax, dword [edi + 0xec]
movss xmm3, dword [ebp - 0x124]
movaps xmm1, xmm3
movss dword [ebp - 0x7c], xmm3
addss xmm1, dword [edi + 0xec]
addss xmm2, xmm3
mov dword [ebp - 0xa0], ecx
movss dword [ebp - 0x98], xmm0
movss xmm0, dword [ebp - 0xa0]
mov dword [ebp - 0xa4], eax
addss xmm0, xmm4
mov dword [ebp - 0xd0], ecx
lea ecx, [ebp - 0x160]
addss xmm2, dword [ebp - 0xa4]
movss dword [ebp - 0x6c], xmm4
movss dword [ebp - 0x9c], xmm1
mov dword [ebp - 0xd4], eax
movss dword [ebp - 0xc8], xmm0
movss dword [ebp - 0xcc], xmm2
mov dword [ebp - 0x58], edi
call fcn.1003ab89
cmp byte [ebp - 0x28], 0
movss xmm2, dword [esi + 0x37d8]
movss xmm1, dword [ebp - 0xcc]
movss xmm0, dword [ebp - 0xc8]
subss xmm1, dword [ebp - 0xd4]
subss xmm0, dword [ebp - 0xd0]
push ecx
movss dword [esp], xmm2
je 0x1008c4ff
mov eax, dword [edi + 0xec]
mov dword [ebp - 0x4c], eax
mov eax, dword [edi + 0xf0]
mov dword [ebp - 0x80], eax
lea eax, [ebp - 0x8c]
push eax
movss dword [ebp - 0x8c], xmm1
movss dword [ebp - 0x88], xmm0
call fcn.1004b1f5
push 0x400
lea eax, [ebp - 0xa4]
push eax
push dword [ebp - 0x18]
lea eax, [ebp - 0xd4]
push eax
call fcn.1004af69
add esp, 0x18
test al, al
jne 0x1008c3b3
call fcn.10045677
xor al, al
call fcn.100b73a6
ret
mov eax, dword [esi + 0x46c4]
lea edi, [ebp - 0x160]
push 0xf
mov dword [ebp - 0x3c], eax
add esi, 0x46bc
mov eax, dword [ebp - 0x40]
pop ecx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x34]
mov dword [eax + 0xec], ecx
mov ecx, dword [ebp - 0x80]
mov dword [eax + 0xf0], ecx
lea eax, [esi + 0x38dc]
push eax
push 3
call fcn.1004fc44
movss xmm0, dword [esi + 0x37dc]
pop ecx
movss dword [esp], xmm0
push 7
call fcn.1004fd5f
movss xmm0, dword [esi + 0x37e0]
pop ecx
movss dword [esp], xmm0
push 8
call fcn.1004fd5f
and dword [ebp - 0x50], 0
lea eax, [ebp - 0x50]
and dword [ebp - 0x4c], 0
push eax
push 2
pop eax
push eax
call fcn.1004fcef
movss xmm1, dword [ebp - 0x9c]
xor eax, eax
movss xmm0, dword [ebp - 0x98]
inc eax
mov edi, dword [ebp - 0x18]
subss xmm1, dword [ebp - 0xa4]
subss xmm0, dword [ebp - 0xa0]
push 4
push eax
lea eax, [ebp - 0x50]
push eax
push edi
push dword [ebp + 0xc]
movss dword [ebp - 0x50], xmm1
push dword [ebp + 8]
movss dword [ebp - 0x4c], xmm0
call fcn.1003fde5
push 3
mov byte [ebp - 0x2c], al
call fcn.1004f81d
xor eax, eax
inc eax
push eax
call fcn.1004f7cb
add esp, 0x30
cmp byte [ebp - 0x2c], 0
jne 0x1008c49b
call fcn.1004525c
jmp 0x1008c3a6
mov edx, dword [esi + 0x3e48]
mov dword [ebp - 0x58], edx
movsx ecx, word [edx + 0x14a]
mov eax, dword [edx + 0x144]
bts ecx, eax
movss xmm0, dword [edx + 0xec]
mov word [edx + 0x14a], cx
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 - 0x7c]
subss xmm0, dword [edx + 0x9c]
movss dword [ebp - 0x7c], xmm0
jmp 0x1008c54d
lea eax, [ebp - 0x50]
movss dword [ebp - 0x50], xmm1
push eax
movss dword [ebp - 0x4c], xmm0
call fcn.1004b1f5
test dword [ebp + 0x20], 0x10000000
mov edi, dword [ebp - 0x18]
pop ecx
pop ecx
jne 0x1008c544
push 0x400
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0xd4]
push edi
push eax
call fcn.1004af69
add esp, 0x10
test al, al
je 0x1008c3ab
mov eax, dword [esi + 0x46c4]
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0xa4]
push edi
push eax
call fcn.1004b0dd
mov byte [ebp - 0x13], al
pop ecx
pop ecx
test al, al
je 0x1008c56c
xor eax, eax
inc eax
mov dword [esi + 0x494c], eax
push edi
call fcn.1008ad8a
mov edi, eax
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x3c]
xor edx, edx
shr eax, 8
inc edx
and al, dl
pop ecx
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 0x3e94]
cmp eax, ecx
je 0x1008c5b3
cmp dword [esi + 0x47e0], ecx
je 0x1008c5ae
cmp dword [esi + 0x47d4], ecx
jne 0x1008c5b3
push 2
pop ecx
cmp dword [esi + 0x47fc], ecx
jne 0x1008c5b3
mov byte [ebp - 0xe], dl
jmp 0x1008c5b7
mov byte [ebp - 0xe], 0
cmp byte [ebp - 0x13], 0
je 0x1008c5c9
cmp byte [esi + 0x36f8], 0
mov byte [ebp - 0x11], dl
jne 0x1008c5cd
mov byte [ebp - 0x11], 0
cmp byte [ebp - 0x28], 0
je 0x1008c5f6
test edi, edi
je 0x1008c5f6
test eax, eax
jne 0x1008c5f6
push edx
push dword [ebp - 0x58]
call fcn.1008aeed
pop ecx
pop ecx
cmp dword [esi + 0x3ebc], eax
jne 0x1008c5f6
xor eax, eax
inc eax
mov byte [ebp - 0x12], al
jmp 0x1008c60c
mov eax, dword [ebp - 0x28]
xor edx, edx
mov byte [ebp - 0x12], dl
test al, al
je 0x1008c639
mov byte [ebp - 0x12], dl
test edi, edi
je 0x1008c639
xor eax, eax
inc eax
push eax
push dword [ebp - 0x58]
call fcn.1008aeed
pop ecx
pop ecx
cmp dword [esi + 0x3e94], eax
jne 0x1008c634
xor eax, eax
mov byte [ebp - 0x21], 0
inc eax
mov byte [ebp - 0x1c], 0
mov cl, al
mov eax, dword [ebp - 0x28]
mov byte [ebp - 0xf], cl
jmp 0x1008c648
mov eax, dword [ebp - 0x28]
xor edx, edx
mov byte [ebp - 0x21], dl
mov cl, dl
mov byte [ebp - 0x1c], dl
mov byte [ebp - 0xf], cl
test al, al
je 0x1008c654
mov edx, dword [ebp - 0x58]
movss xmm0, dword [edx + 0x78]
xor edx, edx
jmp 0x1008c661
movss xmm0, dword [0x100cb808]
mov cl, dl
mov byte [ebp - 0xf], cl
movss dword [ebp - 0x78], xmm0
test edi, edi
je 0x1008c679
xor al, 1
cmp byte [edi + 0x57], al
je 0x1008c679
xor eax, eax
inc eax
mov byte [ebp - 0x2b], al
jmp 0x1008c67e
mov al, dl
mov byte [ebp - 0x2b], dl
cmp byte [ebp - 0x11], 0
jne 0x1008c6a2
cmp byte [ebp - 0x12], 0
jne 0x1008c6a2
cmp byte [ebp - 0xe], 0
jne 0x1008c6a2
cmp byte [ebp - 0x3c], 0
jne 0x1008c6a2
mov byte [ebp - 0x12], dl
test cl, cl
jne 0x1008c6aa
mov byte [ebp - 0x2a], dl
jmp 0x1008c6bb
xor ecx, ecx
inc ecx
mov byte [ebp - 0x12], cl
jmp 0x1008c6ad
xor ecx, ecx
inc ecx
mov byte [ebp - 0x2a], cl
mov ecx, dword [ebp - 0x18]
cmp dword [esi + 0x3e94], ecx
jne 0x1008c6c3
test al, al
je 0x1008c806
push dword [ebp + 0x14]
lea edi, [esi + 0x4a90]
mov dword [ebp - 0x70], edi
mov dword [edi + 0xe6c], 0xbe99999a
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
pop ecx
lea ecx, [edi + 0x28]
mov dword [ebp - 0x4c], eax
lea esi, [eax + 1]
push esi
call fcn.1005abd3
push esi
push dword [ebp + 0x14]
push dword [edi + 0x30]
call sub.VCRUNTIME140.dll_memcpy
mov esi, dword [ebp - 0x18]
add esp, 0xc
cmp dword [edi + 4], esi
jne 0x1008c733
cmp byte [ebp - 0x2b], 0
jne 0x1008c733
xor eax, eax
inc eax
mov byte [ebp - 0x10], al
mov eax, dword [ebp - 0x4c]
cmp dword [edi + 0xc], eax
jne 0x1008c733
cmp byte [edi + 0x34], 0
je 0x1008c737
push eax
push dword [ebp + 0x14]
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 0x1008c737
mov byte [ebp - 0x10], 0
and dword [ebp - 0x30], 0
lea ecx, [edi + 0x10]
mov eax, dword [ebp + 0x18]
inc eax
mov dword [edi + 4], esi
push eax
call fcn.1005ac5a
lea ecx, [edi + 0x1c]
push 0
call fcn.1005abd3
mov esi, dword [ebp + 0x14]
lea eax, [ebp - 0x30]
push eax
push 0
push esi
push dword [ebp + 0x18]
mov byte [edi + 0x34], 0
push dword [edi + 0x18]
call fcn.10049e4e
mov dword [edi + 8], eax
add esp, 0x14
mov eax, dword [ebp - 0x30]
sub eax, esi
cmp byte [ebp - 0x10], 0
mov dword [edi + 0xc], eax
je 0x1008c78b
mov ecx, edi
call fcn.10088e1a
jmp 0x1008c7a6
mov eax, dword [ebp - 0x28]
xor ecx, ecx
and dword [edi + 0x3c], 0
inc ecx
movzx eax, al
xor eax, ecx
push eax
lea eax, [edi + 0x40]
push eax
call fcn.100996b8
pop ecx
pop ecx
cmp byte [ebp - 0x28], 0
jne 0x1008c7f4
mov ecx, dword [ebp - 0x1c]
test byte [ebp + 0x20], 0x10
mov eax, dword [ebp - 0x34]
push 1
movzx ecx, cl
pop edx
cmovne ecx, edx
cmp byte [ebp - 0xe], 0
mov dword [ebp - 0x1c], ecx
je 0x1008c7da
cmp byte [ebp - 0x10], 0
je 0x1008c7d7
test byte [eax + 0x47e4], 4
jne 0x1008c7da
mov byte [ebp - 0x1c], dl
cmp byte [ebp - 0x3c], 0
jne 0x1008c7ef
cmp byte [ebp - 0x11], 0
je 0x1008c7f7
cmp byte [eax + 0xdd0], 0
je 0x1008c7f7
mov byte [ebp - 0x1c], dl
jmp 0x1008c7f7
xor edx, edx
inc edx
test dword [ebp + 0x20], 0x2000
mov esi, dword [ebp - 0x34]
je 0x1008c806
mov byte [edi + 0x4c], dl
mov ecx, dword [ebp - 0x18]
cmp dword [esi + 0x3e94], ecx
je 0x1008c845
cmp byte [ebp - 0x12], 0
je 0x1008c839
push dword [ebp - 0x40]
push ecx
call fcn.100529b0
push dword [ebp - 0x40]
push dword [ebp - 0x18]
call fcn.10052f28
push dword [ebp - 0x40]
call fcn.100467e6
mov ecx, dword [ebp - 0x18]
add esp, 0x14
cmp dword [esi + 0x3e94], ecx
jne 0x1008c91f
cmp byte [ebp - 0x11], 0
je 0x1008c85e
push 0
push ecx
push 0x281
call fcn.10053218
mov ecx, dword [ebp - 0x18]
add esp, 0xc
mov eax, dword [esi + 0x4690]
or eax, 3
cmp byte [ebp - 0x28], 0
mov dword [esi + 0x4690], eax
jne 0x1008c879
test byte [ebp + 0x20], 0x80
je 0x1008c882
or eax, 0xc
mov dword [esi + 0x4690], eax
push 0
push ecx
push 0x207
call fcn.10053218
push 0
push dword [ebp - 0x18]
push 0x208
call fcn.10053218
add esp, 0x18
cmp byte [ebp - 0x28], 0
je 0x1008c8c8
push 0
push dword [ebp - 0x18]
push 0x205
call fcn.10053218
push 0
push dword [ebp - 0x18]
push 0x206
call fcn.10053218
add esp, 0x18
test dword [ebp + 0x20], 0x440
je 0x1008c8e3
push 0
push dword [ebp - 0x18]
push 0x200
call fcn.10053218
add esp, 0xc
mov ecx, dword [ebp - 0x18]
cmp dword [esi + 0x3e94], ecx
jne 0x1008c91f
test edi, edi
jne 0x1008c8fa
call fcn.10041cab
mov ecx, dword [ebp - 0x18]
cmp dword [esi + 0x3e94], ecx
jne 0x1008c91f
xor eax, eax
inc eax
cmp byte [esi + 0x36f8], 0
je 0x1008c92c
cmp byte [ebp - 0x2a], 0
jne 0x1008c92c
cmp byte [ebp - 0x12], 0
jne 0x1008c92c
mov byte [ebp - 0x21], al
jmp 0x1008c92c
test edi, edi
je 0x1008c930
cmp byte [ebp - 0xf], 0
je 0x1008c930
xor eax, eax
inc eax
mov dl, al
jmp 0x1008c932
xor dl, dl
mov byte [ebp - 0xd], dl
test edi, edi
je 0x1008c952
mov eax, dword [edi + 0x44]
cmp eax, dword [edi + 0x48]
jne 0x1008c947
cmp byte [ebp - 0x1c], 0
je 0x1008c952
test dl, dl
je 0x1008c952
xor eax, eax
lea edx, [eax + 1]
jmp 0x1008c954
xor dl, dl
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x20], edx
mov byte [ebp - 0x2c], dl
mov byte [ebp - 0x2a], 0
mov byte [ebp - 0x2b], 0
test al, al
je 0x1008c9cd
test edi, edi
je 0x1008c9cd
cmp byte [ebp - 0xd], 0
jne 0x1008c977
test dl, dl
je 0x1008c9d7
and dword [ebp - 0x30], 0
lea ecx, [edi + 0x10]
mov eax, dword [ebp + 0x18]
inc eax
push eax
call fcn.1005ac5a
lea eax, [ebp - 0x30]
push eax
push 0
push dword [ebp + 0x14]
push dword [edi + 0x10]
push dword [edi + 0x18]
call fcn.10049e4e
mov dword [edi + 8], eax
add esp, 0x14
mov eax, dword [ebp - 0x30]
mov ecx, edi
sub eax, dword [ebp + 0x14]
mov dword [edi + 0xc], eax
call fcn.10088e1a
mov ecx, dword [edi + 0x44]
xor edx, edx
cmp ecx, dword [edi + 0x48]
movzx eax, byte [ebp - 0x2c]
mov esi, dword [ebp - 0x34]
cmovne edx, eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x20], edx
cmp byte [ebp - 0xd], 0
jne 0x1008c9df
test dl, dl
jne 0x1008c9df
cmp dword [esi + 0x3e94], ecx
jne 0x1008c9f3
test al, al
jne 0x1008c9f3
test edi, edi
je 0x1008c9f3
cmp byte [edi + 0x34], al
je 0x1008c9f3
xor ecx, ecx
inc ecx
mov al, cl
jmp 0x1008c9f8
xor ecx, ecx
xor al, al
inc ecx
cmp dword [ebp + 0x10], 0
mov byte [ebp - 0x2c], al
je 0x1008ca19
test al, al
je 0x1008ca0a
mov eax, dword [edi + 0x24]
jmp 0x1008ca0d
mov eax, dword [ebp + 0x14]
cmp byte [eax], 0
jne 0x1008ca19
mov al, cl
mov byte [ebp - 0x11], cl
jmp 0x1008ca1e
xor al, al
mov byte [ebp - 0x11], al
cmp byte [ebp - 0xa8], 0
je 0x1008ca92
test al, al
jne 0x1008ca92
mov ecx, dword [esi + 0x3bcc]
push 0x2a
call fcn.10060dc2
mov edx, eax
add esi, 0x5908
mov eax, dword [ebp - 0x34]
push esi
mov ecx, dword [eax + 0x3bcc]
mov ecx, dword [ecx + 0x10]
mov dword [esi + 0x10], ecx
mov ecx, dword [eax + 0x3bcc]
mov ecx, dword [ecx + 0x44]
mov dword [esi + 0x44], ecx
mov ecx, dword [eax + 0x3bcc]
mov eax, dword [ecx + 0x48]
mov ecx, dword [ebp - 0x34]
mov dword [esi + 0x48], eax
mov eax, dword [ecx + 0x3bcc]
mov eax, dword [eax + 0x4c]
mov dword [esi + 0x4c], eax
mov eax, dword [ecx + 0x3bcc]
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.1004f98d
pop ecx
mov esi, dword [ebp - 0x34]
and dword [ebp - 0x68], 0
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x80], 0xa
cmp dword [esi + 0x3e94], ecx
jne 0x1008ce6a
mov eax, dword [edi + 0xc]
mov edx, dword [ebp + 0x20]
mov byte [edi + 0xe72], 0
mov dword [edi + 0xe74], edx
mov dword [ebp - 0x68], eax
mov eax, dword [ebp + 0x18]
mov dword [edi + 0x38], eax
cmp byte [esi + 0xdc0], 0
sete al
xor ecx, ecx
mov byte [esi + 0x3ea1], al
inc ecx
cmp byte [ebp - 0x28], 0
mov dword [esi + 0x5c14], ecx
movss xmm1, dword [esi + 0xdb8]
subss xmm1, dword [ebp - 0xa4]
subss xmm1, dword [esi + 0x37d4]
addss xmm1, dword [edi + 0x3c]
je 0x1008cb1c
mov eax, dword [ebp - 0x58]
movss xmm2, dword [esi + 0xdbc]
subss xmm2, dword [eax + 0xf0]
jmp 0x1008cb2c
movss xmm2, dword [esi + 0x3bd0]
mulss xmm2, dword [0x100c7e9c]
cmp byte [ebp - 0x1c], 0
mov al, byte [esi + 0x61]
mov byte [ebp - 0x10], al
je 0x1008cb57
mov eax, dword [edi + 8]
and dword [edi + 0x44], 0
mov dword [edi + 0x48], eax
mov dword [edi + 0x40], eax
mov al, byte [ebp - 0x10]
mov byte [edi + 0x56], 0
mov byte [edi + 0xe71], cl
jmp 0x1008cc83
mov cl, byte [ebp - 0x13]
test cl, cl
je 0x1008cccb
push 2
pop edx
cmp word [esi + 0x3702], dx
mov edx, dword [ebp + 0x20]
jb 0x1008cccb
cmp byte [esi + 0xdd1], 0
jne 0x1008cccb
push ecx
push ecx
movss dword [esp + 4], xmm2
lea eax, [edi + 0x40]
movss dword [esp], xmm1
push eax
push edi
call fcn.10099296
movzx eax, word [esi + 0x3702]
add esp, 0x10
xor edx, edx
inc edx
push 2
pop ecx
sub eax, ecx
mov ecx, dword [edi + 0x40]
test dl, al
jne 0x1008cc19
test ecx, ecx
je 0x1008cbce
lea eax, [ecx - 1]
push eax
push edi
call fcn.10090d89
pop ecx
pop ecx
push 0xa
pop ecx
cmp ax, cx
je 0x1008cbce
xor cl, cl
jmp 0x1008cbd0
mov cl, dl
mov eax, dword [edi + 0x44]
cmp eax, dword [edi + 0x48]
jne 0x1008cbdc
test cl, cl
jne 0x1008cbe9
mov eax, 0x20000c
mov ecx, edi
push eax
call fcn.1008fc5f
mov eax, dword [edi + 0x44]
cmp eax, dword [edi + 0x48]
jne 0x1008cbfb
lea eax, [edi + 0x40]
push eax
call fcn.10099efd
pop ecx
push dword [edi + 0x40]
push edi
call fcn.10090faf
mov dword [edi + 0x40], eax
mov dword [edi + 0x48], eax
lea eax, [edi + 0x40]
push eax
push edi
call fcn.10099210
add esp, 0x10
jmp 0x1008cc70
push ecx
push edi
call fcn.10090d89
pop ecx
pop ecx
push 0x200004
mov ecx, edi
mov si, ax
call fcn.1008fc5f
push 0x600005
mov ecx, edi
call fcn.1008fc5f
push 0x600001
mov ecx, edi
call fcn.1008fc5f
push 0xa
pop eax
cmp si, ax
je 0x1008cc66
cmp byte [ebp - 0x28], 0
je 0x1008cc66
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 - 0x34]
mov byte [edi + 0xe70], 0
mov al, byte [ebp - 0x10]
mov edx, dword [ebp + 0x20]
mov dword [edi + 0xe6c], 0xbe99999a
xor ecx, ecx
inc ecx
cmp byte [edi + 0xe71], 0
je 0x1008cc9c
cmp byte [esi + 0xdc0], 0
jne 0x1008cc9c
mov byte [edi + 0xe71], 0
cmp byte [esi + 0xdd0], 0
je 0x1008ccae
cmp byte [esi + 0xdd2], 0
je 0x1008ccc3
test al, al
je 0x1008cd8b
cmp byte [esi + 0xdd3], 0
je 0x1008cd8b
mov byte [ebp - 0xf], cl
jmp 0x1008cd8f
cmp byte [esi + 0x36f8], 0
je 0x1008cd10
cmp byte [edi + 0xe71], 0
jne 0x1008cd10
test cl, cl
je 0x1008cc80
cmp byte [esi + 0xdd1], 0
lea eax, [edi + 0x40]
push ecx
push ecx
movss dword [esp + 4], xmm2
movss dword [esp], xmm1
push eax
push edi
je 0x1008cd06
call fcn.100994e3
jmp 0x1008cc14
call fcn.10099296
jmp 0x1008cc14
cmp byte [esi + 0xdc0], 0
je 0x1008cc80
cmp byte [edi + 0xe71], 0
jne 0x1008cc80
movss xmm0, dword [esi + 0xb4]
xorps xmm3, xmm3
ucomiss xmm0, xmm3
lahf
test ah, 0x44
jp 0x1008cd53
movss xmm0, dword [esi + 0xb8]
ucomiss xmm0, xmm3
lahf
test ah, 0x44
jnp 0x1008cc80
push ecx
push ecx
movss dword [esp + 4], xmm2
lea eax, [edi + 0x40]
movss dword [esp], xmm1
push eax
push edi
call fcn.100994e3
mov al, byte [ebp - 0x10]
xor ecx, ecx
mov edx, dword [ebp + 0x20]
add esp, 0x10
inc ecx
mov dword [edi + 0xe6c], 0xbe99999a
mov byte [edi + 0xe70], cl
jmp 0x1008cc83
mov byte [ebp - 0xf], 0
test edx, 0x400
je 0x1008cf06
push ecx
push 0x200
call fcn.1004a7c0
pop ecx
pop ecx
mov ecx, dword [ebp - 0x38]
test al, al
mov al, byte [ebp - 0xf]
je 0x1008cdf6
test al, al
jne 0x1008cdf6
cmp byte [esi + 0xdd1], al
jne 0x1008cdf6
test cl, cl
jne 0x1008cdf6
push 2
pop eax
push eax
push dword [ebp + 0x28]
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], 9
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push eax
call fcn.1008e6e4
add esp, 0x14
test al, al
je 0x1008cdf0
push dword [ebp - 0x30]
mov ecx, edi
call fcn.1008fc5f
mov ecx, dword [ebp - 0x38]
mov al, byte [ebp - 0xf]
mov edx, dword [ebp + 0x20]
cmp dword [esi + 0x3770], 0
jle 0x1008ce6a
test al, al
jne 0x1008ce5d
test cl, cl
jne 0x1008ce5d
cmp byte [ebp - 0xe], cl
jne 0x1008ce5d
xor ecx, ecx
mov dword [ebp - 0x48], ecx
mov eax, dword [esi + 0x3778]
movzx eax, word [eax + ecx*2]
mov dword [ebp - 0x30], eax
cmp eax, 9
je 0x1008ce4e
push 2
pop eax
push eax
push dword [ebp + 0x28]
lea eax, [ebp - 0x30]
push dword [ebp + 0x24]
push edx
push eax
call fcn.1008e6e4
add esp, 0x14
test al, al
je 0x1008ce4b
push dword [ebp - 0x30]
mov ecx, edi
call fcn.1008fc5f
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp + 0x20]
inc ecx
mov dword [ebp - 0x48], ecx
cmp ecx, dword [esi + 0x3770]
jl 0x1008ce14
lea ecx, [esi + 0x3770]
push 0
call fcn.1005ac5a
mov eax, dword [ebp - 0x18]
xor cl, cl
mov byte [ebp - 0xe], cl
cmp dword [esi + 0x3e94], eax
jne 0x1008d6c9
cmp byte [esi + 0x3ea0], cl
jne 0x1008d6c9
cmp byte [ebp - 0x21], cl
jne 0x1008d6c9
movss xmm0, dword [ebp - 0x6c]
xor edx, edx
subss xmm0, dword [esi + 0x37d8]
inc edx
mov ecx, edx
divss xmm0, dword [esi + 0x3bd0]
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 - 0x30], ecx
mov ecx, 0x400000
cmovne eax, ecx
mov dword [ebp - 0x1c], eax
mov al, byte [esi + 0x61]
mov byte [ebp - 0x5d], al
test al, al
je 0x1008cf11
cmp byte [esi + 0xdd3], 0
mov al, byte [esi + 0xdd2]
mov byte [ebp - 0xf], al
je 0x1008cf1a
cmp byte [esi + 0xdd0], 0
mov byte [ebp - 0xf], al
jne 0x1008cf1a
mov byte [ebp - 0xf], al
test al, al
jne 0x1008cf1a
mov byte [ebp - 0x10], dl
mov byte [ebp - 0xf], al
jmp 0x1008cf1e
mov al, byte [ebp - 0xf]
mov ecx, dword [ebp - 0x38]
jmp 0x1008cdf9
mov al, byte [esi + 0xdd0]
mov byte [ebp - 0xf], al
mov byte [ebp - 0x10], 0
push edx
push dword [ebp - 0x18]
push 0xa39
call fcn.10053f45
add esp, 0xc
test al, al
jne 0x1008cf4b
xor eax, eax
inc eax
push eax
push dword [ebp - 0x18]
push 0x220a
call fcn.10053f45
add esp, 0xc
test al, al
je 0x1008cf70
cmp byte [ebp - 0x38], 0
jne 0x1008cf70
cmp byte [ebp - 0xa8], 0
jne 0x1008cf70
cmp byte [ebp - 0x28], 0
je 0x1008cf68
mov eax, dword [edi + 0x44]
cmp eax, dword [edi + 0x48]
je 0x1008cf70
xor eax, eax
inc eax
mov byte [ebp - 0x12], al
jmp 0x1008cf74
mov byte [ebp - 0x12], 0
push 0
push dword [ebp - 0x18]
push 0xa24
call fcn.10053f45
add esp, 0xc
test al, al
jne 0x1008cfa0
push 0
push dword [ebp - 0x18]
push 0x1209
call fcn.10053f45
add esp, 0xc
test al, al
je 0x1008cfbf
cmp byte [ebp - 0xa8], 0
jne 0x1008cfbf
cmp byte [ebp - 0x28], 0
je 0x1008cfb7
mov eax, dword [edi + 0x44]
cmp eax, dword [edi + 0x48]
je 0x1008cfbf
xor eax, eax
inc eax
mov byte [ebp - 0x60], al
jmp 0x1008cfc6
xor eax, eax
mov byte [ebp - 0x60], 0
inc eax
push eax
push dword [ebp - 0x18]
push 0xa37
call fcn.10053f45
add esp, 0xc
test al, al
jne 0x1008cff3
xor eax, eax
inc eax
push eax
push dword [ebp - 0x18]
push 0x2209
call fcn.10053f45
add esp, 0xc
test al, al
je 0x1008d001
cmp byte [ebp - 0x38], 0
jne 0x1008d001
xor eax, eax
inc eax
mov byte [ebp - 0x61], al
jmp 0x1008d008
xor eax, eax
mov byte [ebp - 0x61], 0
inc eax
push eax
push dword [ebp - 0x18]
push 0xa3b
call fcn.10053f45
add esp, 0xc
test al, al
je 0x1008d02e
cmp byte [ebp - 0x38], 0
jne 0x1008d02e
cmp byte [ebp - 0x5c], 0
je 0x1008d02e
xor eax, eax
inc eax
jmp 0x1008d030
xor al, al
mov byte [ebp - 0x5e], al
xor eax, eax
inc eax
push eax
push dword [ebp - 0x18]
push 0xa3a
call fcn.10053f45
add esp, 0xc
test al, al
jne 0x1008d068
cmp byte [ebp - 0x5d], al
je 0x1008d07c
xor eax, eax
inc eax
push eax
push dword [ebp - 0x18]
push 0x2a3b
call fcn.10053f45
add esp, 0xc
test al, al
je 0x1008d07c
cmp byte [ebp - 0x38], 0
jne 0x1008d07c
cmp byte [ebp - 0x5c], 0
je 0x1008d07c
xor eax, eax
inc eax
mov byte [ebp - 0x5f], al
jmp 0x1008d080
mov byte [ebp - 0x5f], 0
push 0
push dword [ebp - 0x18]
push 0xa22
call fcn.10053f45
mov byte [ebp - 0x71], al
add esp, 0xc
xor eax, eax
inc eax
test byte [esi + 8], 2
je 0x1008d0a6
mov byte [ebp - 0x29], al
test byte [esi + 0xc], al
jne 0x1008d0aa
mov byte [ebp - 0x29], 0
push eax
push 0x20d
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
jne 0x1008d0d4
xor eax, eax
inc eax
push eax
push 0x267
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
jne 0x1008d0d4
mov byte [ebp - 0x62], al
jmp 0x1008d0da
xor eax, eax
inc eax
mov byte [ebp - 0x62], al
cmp byte [ebp - 0x29], 0
je 0x1008d10c
push 0
push 0x26e
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
jne 0x1008d104
push 0
push 0x26d
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
je 0x1008d10c
xor eax, eax
inc eax
mov byte [ebp - 0x13], al
jmp 0x1008d113
xor eax, eax
mov byte [ebp - 0x13], 0
inc eax
push eax
push dword [ebp - 0x18]
push 0x20e
call fcn.10053f45
add esp, 0xc
test al, al
jne 0x1008d14e
cmp byte [ebp - 0x29], al
je 0x1008d145
xor eax, eax
inc eax
push eax
push dword [ebp - 0x18]
push 0x26c
call fcn.10053f45
add esp, 0xc
test al, al
jne 0x1008d14e
xor eax, eax
mov byte [ebp - 0x29], 0
inc eax
jmp 0x1008d154
xor eax, eax
inc eax
mov byte [ebp - 0x29], al
push eax
push 0x201
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
je 0x1008d190
cmp byte [ebp - 0xf], 0
mov eax, 0x200000
lea ecx, [eax + 0xc]
cmovne eax, ecx
cmp byte [ebp - 0x10], 0
mov ecx, 0x200004
cmovne eax, ecx
or eax, dword [ebp - 0x1c]
push eax
mov ecx, edi
call fcn.1008fc5f
jmp 0x1008d6a5
xor eax, eax
inc eax
push eax
push 0x202
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
je 0x1008d1bf
cmp byte [ebp - 0xf], 0
mov eax, 0x200001
lea ecx, [eax + 0xc]
cmovne eax, ecx
lea edx, [ecx - 8]
cmp byte [ebp - 0x10], 0
cmovne eax, edx
jmp 0x1008d180
xor eax, eax
inc eax
push eax
push 0x203
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
je 0x1008d21d
cmp byte [ebp - 0x28], 0
je 0x1008d21d
cmp byte [esi + 0xdd0], 0
je 0x1008d20d
mov eax, dword [ebp - 0x58]
movss xmm0, dword [eax + 0x78]
subss xmm0, dword [esi + 0x3bd0]
maxss xmm0, dword [0x100c7294]
push ecx
movss dword [esp], xmm0
push eax
call fcn.1005389b
pop ecx
pop ecx
jmp 0x1008d6a5
movzx eax, byte [ebp - 0x10]
lea eax, [eax*4 + 0x200002]
jmp 0x1008d180
xor eax, eax
inc eax
push eax
push 0x204
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
je 0x1008d26f
cmp byte [ebp - 0x28], 0
je 0x1008d26f
cmp byte [esi + 0xdd0], 0
je 0x1008d25f
call fcn.10047a52
mov eax, dword [ebp - 0x58]
movss xmm0, dword [esi + 0x3bd0]
fstp dword [ebp - 0x4c]
addss xmm0, dword [eax + 0x78]
minss xmm0, dword [ebp - 0x4c]
jmp 0x1008d1fa
movzx eax, byte [ebp - 0x10]
lea eax, [eax*4 + 0x200003]
jmp 0x1008d180
xor eax, eax
inc eax
push eax
push 0x205
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
je 0x1008d2bd
cmp byte [ebp - 0x28], 0
je 0x1008d2bd
mov ecx, dword [ebp - 0x1c]
or ecx, 0x20000e
push ecx
mov ecx, edi
call fcn.1008fc5f
movd xmm0, dword [ebp - 0x30]
movss xmm1, dword [ebp - 0x78]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esi + 0x3bd0]
subss xmm1, xmm0
movss dword [ebp - 0x78], xmm1
jmp 0x1008d6a5
xor eax, eax
inc eax
push eax
push 0x206
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
je 0x1008d307
cmp byte [ebp - 0x28], 0
je 0x1008d307
mov ecx, dword [ebp - 0x1c]
or ecx, 0x20000f
push ecx
mov ecx, edi
call fcn.1008fc5f
movd xmm0, dword [ebp - 0x30]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esi + 0x3bd0]
addss xmm0, dword [ebp - 0x78]
movss dword [ebp - 0x78], xmm0
jmp 0x1008d6a5
xor eax, eax
inc eax
push eax
push 0x207
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
je 0x1008d32f
cmp byte [esi + 0xdd0], 0
mov ecx, 0x200006
lea eax, [ecx - 2]
jmp 0x1008d17d
xor eax, eax
inc eax
push eax
push 0x208
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
je 0x1008d357
cmp byte [esi + 0xdd0], 0
mov eax, 0x200005
lea ecx, [eax + 2]
jmp 0x1008d17d
xor eax, eax
inc eax
push eax
push 0x20a
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
je 0x1008d386
cmp byte [ebp - 0x38], 0
jne 0x1008d386
cmp byte [ebp - 0x12], 0
jne 0x1008d386
mov ecx, dword [ebp - 0x1c]
or ecx, 0x200008
push ecx
jmp 0x1008d184
xor eax, eax
inc eax
push eax
push 0x20b
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
je 0x1008d3ed
cmp byte [ebp - 0x38], 0
jne 0x1008d3ed
mov eax, dword [edi + 0x44]
cmp eax, dword [edi + 0x48]
jne 0x1008d3e2
cmp byte [ebp - 0xf], 0
je 0x1008d3b5
push 0x60000c
jmp 0x1008d3db
cmp byte [ebp - 0x5d], 0
je 0x1008d3e2
cmp byte [esi + 0xdd3], 0
je 0x1008d3e2
cmp byte [esi + 0xdd2], 0
jne 0x1008d3e2
cmp byte [esi + 0xdd0], 0
jne 0x1008d3e2
push 0x600004
mov ecx, edi
call fcn.1008fc5f
mov ecx, dword [ebp - 0x1c]
or ecx, 0x200009
jmp 0x1008d380
cmp byte [ebp - 0x62], 0
mov cl, byte [ebp - 0x13]
jne 0x1008d627
test cl, cl
jne 0x1008d627
cmp byte [ebp - 0x29], cl
je 0x1008d447
test dword [ebp + 0x20], 0x100000
je 0x1008d430
mov eax, dword [edi + 0xc]
test eax, eax
jg 0x1008d425
mov byte [ebp - 0x20], cl
mov byte [ebp - 0xd], cl
xor ecx, ecx
inc ecx
test eax, eax
mov byte [ebp - 0x21], cl
setg cl
mov byte [ebp - 0xe], cl
jmp 0x1008d6a8
xor eax, eax
xor dl, dl
inc eax
xor ch, ch
mov cl, al
mov byte [ebp - 0xe], al
mov byte [ebp - 0x21], al
mov byte [ebp - 0xd], ch
jmp 0x1008d6ae
mov al, byte [ebp - 0x5e]
test al, al
jne 0x1008d607
cmp byte [ebp - 0x5f], al
jne 0x1008d607
cmp byte [ebp - 0x71], al
je 0x1008d47f
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 0x1008d6a5
mov al, byte [ebp - 0x12]
test al, al
jne 0x1008d558
cmp byte [ebp - 0x60], al
jne 0x1008d558
cmp byte [ebp - 0x61], al
je 0x1008d6a5
call fcn.10046af4
mov dword [ebp - 0x30], eax
test eax, eax
je 0x1008d6a5
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
lea eax, [eax*2 + 2]
push eax
call fcn.1004bbfa
pop ecx
mov edx, eax
mov eax, dword [ebp - 0x30]
pop ecx
xor ecx, ecx
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x48], ecx
cmp byte [eax], cl
je 0x1008d528
mov esi, eax
mov edi, ecx
push 0
lea eax, [ebp - 0x48]
push esi
push eax
call fcn.10049b3d
add esp, 0xc
add esi, eax
cmp dword [ebp - 0x48], 0
je 0x1008d519
push 4
push dword [ebp + 0x28]
lea eax, [ebp - 0x48]
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push eax
call fcn.1008e6e4
add esp, 0x14
test al, al
je 0x1008d514
mov ecx, dword [ebp - 0x44]
mov ax, word [ebp - 0x48]
mov word [ecx + edi*2], ax
inc edi
cmp byte [esi], 0
jne 0x1008d4d6
mov esi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x48], edi
mov edi, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x48]
xor eax, eax
mov word [edx + ecx*2], ax
test ecx, ecx
jle 0x1008d54d
push ecx
push edx
lea eax, [edi + 0x40]
push eax
push edi
call fcn.10099ea9
mov edx, dword [ebp - 0x44]
xor eax, eax
add esp, 0x10
inc eax
mov byte [edi + 0xe70], al
push edx
call fcn.1004bc1c
jmp 0x1008d207
cmp dword [esi + 0x84], 0
je 0x1008d5ce
mov ecx, dword [edi + 0x44]
mov eax, dword [edi + 0x48]
cmp ecx, eax
je 0x1008d575
mov edx, eax
cmovge eax, ecx
cmovl edx, ecx
jmp 0x1008d57a
mov eax, dword [edi + 8]
xor edx, edx
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x5c], edx
lea eax, [ecx + eax*2]
push eax
lea eax, [ecx + edx*2]
push eax
call fcn.10049e05
lea esi, [eax + 1]
push esi
call fcn.1004bbfa
mov ecx, dword [ebp - 0x70]
mov edi, eax
mov eax, dword [ebp - 0x30]
mov edx, dword [ecx + 0x18]
lea ecx, [edx + eax*2]
mov eax, dword [ebp - 0x5c]
push ecx
lea ecx, [edx + eax*2]
push ecx
push esi
push edi
call fcn.10049eb7
push edi
call fcn.10052b54
push edi
call fcn.1004bc1c
mov edi, dword [ebp - 0x70]
add esp, 0x24
mov esi, dword [ebp - 0x34]
mov al, byte [ebp - 0x12]
test al, al
je 0x1008d6a5
mov eax, dword [edi + 0x44]
cmp eax, dword [edi + 0x48]
jne 0x1008d5ef
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
lea eax, [edi + 0x40]
push eax
push edi
call fcn.100992ef
jmp 0x1008d206
xor ecx, ecx
movzx eax, al
inc ecx
xor eax, ecx
mov ecx, edi
add eax, 0x20000a
push eax
call fcn.1008fc5f
mov eax, dword [edi + 0x40]
mov dword [edi + 0x48], eax
mov dword [edi + 0x44], eax
jmp 0x1008d6a5
mov eax, dword [ebp + 0x20]
xor edx, edx
inc edx
shr eax, 0xb
and al, dl
mov edx, dword [ebp - 0x28]
test dl, dl
je 0x1008d64b
test cl, cl
jne 0x1008d64b
mov cl, byte [esi + 0xdd0]
test al, al
je 0x1008d66d
test cl, cl
jne 0x1008d671
xor eax, eax
inc eax
cmp byte [esi + 0x64], 0
mov byte [ebp - 0x2b], al
je 0x1008d6a2
test dl, dl
jne 0x1008d6a2
mov eax, dword [edi + 8]
and dword [edi + 0x44], 0
mov dword [edi + 0x48], eax
mov dword [edi + 0x40], eax
mov byte [edi + 0x56], dl
jmp 0x1008d6a5
test cl, cl
jne 0x1008d64b
cmp byte [ebp - 0x38], 0
jne 0x1008d6a5
push 0xa
pop eax
push 2
mov dword [ebp - 0x30], eax
pop eax
push eax
push dword [ebp + 0x28]
lea eax, [ebp - 0x30]
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push eax
call fcn.1008e6e4
add esp, 0x14
test al, al
je 0x1008d6a5
push dword [ebp - 0x30]
jmp 0x1008d184
mov byte [ebp - 0x21], al
mov cl, byte [ebp - 0xe]
mov edx, dword [ebp - 0x20]
mov ch, byte [ebp - 0xd]
mov eax, dword [edi + 0x44]
cmp eax, dword [edi + 0x48]
je 0x1008d6bf
test ch, ch
je 0x1008d6bf
xor eax, eax
inc eax
jmp 0x1008d6c1
xor al, al
or dl, al
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], edx
and dword [ebp - 0x3c], 0
xor edx, edx
mov dword [ebp - 0x1c], edx
cmp dword [esi + 0x3e94], eax
jne 0x1008db6c
test cl, cl
je 0x1008d7b1
cmp byte [ebp - 0x38], dl
jne 0x1008d7f8
test dword [ebp + 0x20], 0x100000
je 0x1008d719
push edx
lea eax, [ebp - 0x74]
mov dword [ebp - 0x3c], 0x100c06e1
push eax
lea eax, [edi + 0x40]
mov dword [ebp - 0x1c], edx
push eax
push edi
call fcn.10099f15
add esp, 0x10
jmp 0x1008d7c2
push dword [edi + 0x30]
push dword [ebp + 0x14]
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
pop ecx
pop ecx
test eax, eax
je 0x1008d7c2
mov ecx, dword [edi + 0x28]
xor eax, eax
mov edx, dword [edi + 0x30]
dec ecx
and dword [ebp - 0x50], 0
xor esi, esi
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x4c], esi
and dword [ebp - 4], esi
test ecx, ecx
jle 0x1008d77e
lea esi, [ecx + edx]
push esi
push edx
call fcn.10049d7b
pop ecx
pop ecx
inc eax
lea ecx, [ebp - 0x54]
push eax
call fcn.1005ac5a
push 0
push esi
push dword [ebp - 0x3c]
mov esi, dword [ebp - 0x4c]
push dword [ebp - 0x54]
push esi
call fcn.10049e4e
mov eax, dword [ebp - 0x54]
add esp, 0x14
mov edx, dword [ebp - 0x1c]
lea ecx, [eax - 1]
xor eax, eax
test edx, edx
cmovg eax, ecx
push eax
push esi
lea eax, [edi + 0x40]
push eax
push edi
call fcn.10099f15
add esp, 0x10
xor eax, eax
inc eax
mov dword [ebp - 4], eax
test esi, esi
je 0x1008d7ab
push esi
call fcn.1004bc1c
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x1008d7c2
and dword [ebp - 0x3c], edx
xor edx, edx
mov dword [ebp - 0x1c], edx
cmp byte [ebp - 0x38], dl
jne 0x1008d898
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.1005abd3
push 0
push dword [edi + 0x18]
push dword [edi + 0x1c]
push dword [edi + 0x24]
call fcn.10049eb7
add esp, 0x10
cmp byte [ebp - 0xe], 0
je 0x1008d898
cmp byte [ebp - 0x2b], 0
je 0x1008d809
mov eax, dword [ebp + 0x20]
test al, 0x20
jne 0x1008d89b
mov esi, dword [ebp - 0x1c]
cmp dword [ebp - 0x3c], 0
je 0x1008db69
cmp byte [ebp - 0xac], 0
je 0x1008db49
lea ecx, [ebp - 0x104]
call fcn.10081a9b
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x100], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0xf0], eax
lea eax, [esi + 1]
cmp dword [ebp + 0x18], eax
mov dword [ebp - 0x104], 0x40000
cmovge eax, dword [ebp + 0x18]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0x104]
push eax
mov dword [ebp - 0xec], esi
call dword [ebp + 0x24]
mov eax, dword [ebp - 0xf0]
pop ecx
mov ecx, dword [ebp - 0xe8]
mov dword [ebp + 0x14], eax
lea esi, [ecx - 1]
cmp dword [ebp - 0xec], esi
cmovl esi, dword [ebp - 0xec]
jmp 0x1008db4c
mov eax, dword [ebp + 0x20]
test eax, 0x801c0
je 0x1008db1c
and dword [ebp - 0x40], 0
test al, 0x40
je 0x1008d8d1
xor eax, eax
inc eax
push eax
push 0x200
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
je 0x1008d8ce
push 0x40
pop esi
mov dword [ebp - 0x40], 0x200
jmp 0x1008d93b
mov eax, dword [ebp + 0x20]
test al, al
jns 0x1008d91c
xor eax, eax
inc eax
push eax
push 0x203
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
je 0x1008d8f7
mov esi, 0x80
mov dword [ebp - 0x40], 0x203
jmp 0x1008d93b
xor eax, eax
inc eax
push eax
push 0x204
call fcn.1004a7c0
pop ecx
pop ecx
test al, al
je 0x1008d919
mov esi, 0x80
mov dword [ebp - 0x40], 0x204
jmp 0x1008d93b
mov eax, dword [ebp + 0x20]
mov esi, 0x80000
test esi, eax
je 0x1008d92e
cmp byte [edi + 0xe72], 0
jne 0x1008d93b
mov ecx, 0x100
push 0
test ecx, eax
pop esi
cmovne esi, ecx
test esi, esi
je 0x1008db1c
lea ecx, [ebp - 0x104]
call fcn.10081a9b
push 0x30
lea eax, [ebp - 0x104]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebp + 0x20]
add esp, 0xc
cmp byte [ebp - 0x38], 0
mov dword [ebp - 0x100], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x104], esi
jne 0x1008d985
mov eax, dword [edi + 0x24]
mov esi, dword [edi + 0x18]
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0xf0], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xec], eax
mov eax, dword [edi + 0x38]
mov dword [ebp - 0xe8], eax
mov eax, dword [edi + 0x40]
mov dword [ebp - 0xf4], ecx
mov byte [ebp - 0xe4], 0
lea eax, [esi + eax*2]
push eax
push esi
call fcn.10049e05
mov ecx, dword [ebp - 0x70]
mov edi, eax
mov dword [ebp - 0xe0], edi
mov ecx, dword [ecx + 0x44]
lea ecx, [esi + ecx*2]
push ecx
push esi
call fcn.10049e05
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax + 0x48]
lea ecx, [esi + ecx*2]
push ecx
push esi
call fcn.10049e05
mov esi, eax
lea eax, [ebp - 0x104]
push eax
mov dword [ebp - 0xd8], esi
call dword [ebp + 0x24]
mov cl, byte [ebp - 0xe4]
add esp, 0x1c
mov edx, dword [ebp - 0xe0]
mov byte [ebp - 0x13], cl
cmp edx, edi
jne 0x1008da1a
test cl, cl
je 0x1008da46
mov ecx, dword [ebp - 0xf0]
lea eax, [edx + ecx]
push eax
push ecx
call fcn.10049d7b
mov edi, dword [ebp - 0x70]
mov edx, dword [ebp - 0xe0]
pop ecx
pop ecx
mov cl, byte [ebp - 0x13]
mov dword [edi + 0x40], eax
xor eax, eax
inc eax
mov byte [edi + 0xe70], al
jmp 0x1008da49
mov edi, dword [ebp - 0x70]
mov eax, dword [ebp - 0xdc]
cmp eax, dword [ebp - 0x4c]
jne 0x1008da58
test cl, cl
je 0x1008da80
cmp eax, edx
jne 0x1008da61
mov ecx, dword [edi + 0x40]
jmp 0x1008da7a
mov ecx, dword [ebp - 0xf0]
add eax, ecx
push eax
push ecx
call fcn.10049d7b
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0xdc]
mov dword [edi + 0x44], ecx
mov cl, byte [ebp - 0x13]
mov edx, dword [ebp - 0xd8]
cmp edx, esi
jne 0x1008da92
test cl, cl
je 0x1008db1c
cmp edx, eax
jne 0x1008da9b
mov eax, dword [edi + 0x44]
jmp 0x1008daad
mov ecx, dword [ebp - 0xf0]
lea eax, [edx + ecx]
push eax
push ecx
call fcn.10049d7b
pop ecx
pop ecx
cmp byte [ebp - 0x13], 0
mov dword [edi + 0x48], eax
je 0x1008db1c
push dword [ebp - 0xec]
push dword [ebp - 0xf0]
push edi
call fcn.1008e8db
mov eax, dword [ebp - 0xec]
add esp, 0xc
mov edx, dword [ebp - 0x68]
cmp eax, edx
jle 0x1008daee
cmp byte [ebp - 0xac], 0
je 0x1008daee
lea ecx, [edi + 0x10]
sub eax, edx
add eax, dword [ecx]
push eax
call fcn.1005ac5a
push 0
push 0
push dword [ebp - 0xf0]
push dword [edi + 0x10]
push dword [edi + 0x18]
call fcn.10049e4e
mov dword [edi + 8], eax
add esp, 0x14
mov eax, dword [ebp - 0xec]
mov dword [edi + 0xc], eax
mov dword [edi + 0xe6c], 0xbe99999a
cmp byte [ebp - 0x38], 0
jne 0x1008d809
push dword [ebp + 0x14]
push dword [edi + 0x24]
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
pop ecx
pop ecx
test eax, eax
je 0x1008d809
mov esi, dword [edi + 0x24]
mov dword [ebp - 0x3c], esi
mov esi, dword [edi + 0xc]
jmp 0x1008d80c
mov ecx, dword [ebp + 0x18]
lea eax, [esi + 1]
cmp eax, ecx
cmovl ecx, eax
push ecx
push dword [ebp - 0x3c]
push dword [ebp + 0x14]
call fcn.10049aa8
xor eax, eax
add esp, 0xc
inc eax
mov byte [ebp - 0x2a], al
mov esi, dword [ebp - 0x34]
cmp byte [ebp - 0x21], 0
mov ecx, dword [ebp - 0x18]
je 0x1008db85
cmp dword [esi + 0x3e94], ecx
jne 0x1008db85
call fcn.10041cab
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x28]
test dl, dl
jne 0x1008dbf0
xor eax, eax
inc eax
push eax
push ecx
lea eax, [ebp - 0xa4]
push eax
call fcn.100508bc
movss xmm0, dword [esi + 0x37dc]
add esp, 8
movss dword [ebp - 0x4c], xmm0
mov dword [esp], 0x3f800000
push 7
call fcn.10046be9
movss xmm0, dword [ebp - 0x4c]
add esp, 4
xor ecx, ecx
inc ecx
movss dword [esp], xmm0
push ecx
push eax
push dword [ebp - 0x98]
push dword [ebp - 0x9c]
push dword [ebp - 0xa0]
push dword [ebp - 0xa4]
call fcn.100503fd
mov edx, dword [ebp - 0x28]
add esp, 0x1c
movss xmm0, dword [ebp - 0xa4]
movss xmm1, dword [ebp - 0xa0]
movss xmm2, dword [ebp - 0x7c]
movss dword [ebp - 0xc4], xmm0
addss xmm0, xmm2
movss dword [ebp - 0xc0], xmm1
addss xmm1, dword [ebp - 0x6c]
movss dword [ebp - 0xbc], xmm0
movss dword [ebp - 0xb8], xmm1
test dl, dl
je 0x1008dc49
mov ecx, dword [ebp - 0x58]
mov eax, dword [ecx + 0xec]
mov ecx, dword [ecx + 0xf0]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ecx
jmp 0x1008dc73
movss xmm0, dword [ebp - 0xa4]
addss xmm0, dword [esi + 0x37d4]
movss dword [ebp - 0x50], xmm0
movss xmm0, dword [ebp - 0xa0]
addss xmm0, dword [esi + 0x37d8]
movss dword [ebp - 0x4c], xmm0
cmp byte [ebp - 0x2c], 0
lea eax, [ebp - 0x50]
movss xmm0, dword [eax]
xorps xmm1, xmm1
movss dword [ebp - 0x94], xmm0
movss xmm0, dword [eax + 4]
movss dword [ebp - 0x90], xmm0
movss dword [ebp - 0x30], xmm1
movss dword [ebp - 0x48], xmm1
je 0x1008dca8
mov eax, dword [edi + 0x24]
mov dword [ebp + 0x14], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x44], eax
mov al, byte [ebp - 0x11]
test al, al
je 0x1008dcdb
mov eax, dword [ebp + 0x10]
push eax
mov dword [ebp + 0x14], eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add eax, dword [ebp + 0x10]
xorps xmm1, xmm1
movss xmm2, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x44], eax
mov al, byte [ebp - 0x11]
pop ecx
cmp byte [ebp - 0xd], 0
jne 0x1008ddb6
cmp byte [ebp - 0x20], 0
jne 0x1008ddb6
test dl, dl
je 0x1008dd22
lea eax, [ebp - 0x44]
movss dword [ebp - 0x30], xmm2
push eax
push dword [ebp + 0x14]
call fcn.1008c011
mov edi, dword [ebp - 0x44]
pop ecx
pop ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x1c], edi
mulss xmm0, dword [esi + 0x3bd0]
movss dword [ebp - 0x48], xmm0
jmp 0x1008dd5c
test al, al
jne 0x1008dd49
mov eax, dword [ebp - 0x18]
cmp dword [esi + 0x3e94], eax
jne 0x1008dd3c
mov edi, dword [edi + 0xc]
add edi, dword [ebp + 0x14]
mov dword [ebp - 0x1c], edi
jmp 0x1008dd4c
push dword [ebp + 0x14]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
pop ecx
mov edi, eax
jmp 0x1008dd34
mov edi, dword [ebp - 0x1c]
mov eax, edi
sub eax, dword [ebp + 0x14]
cmp eax, 0x200000
jge 0x1008e577
movzx eax, byte [ebp - 0x11]
push ecx
mov dword [esp], 0x3f800000
push eax
call fcn.10046be9
movss xmm0, dword [esi + 0x3bd0]
xor edx, edx
cmp byte [ebp - 0x28], dl
pop ecx
pop ecx
lea ecx, [ebp - 0xc4]
cmovne ecx, edx
push ecx
push ecx
and dword [esp], edx
push edi
push dword [ebp + 0x14]
push eax
lea eax, [ebp - 0x94]
push eax
mov eax, dword [ebp - 0x58]
push ecx
movss dword [esp], xmm0
push dword [esi + 0x3bcc]
mov ecx, dword [eax + 0x260]
call fcn.1005fafd
jmp 0x1008e577
test al, al
jne 0x1008ddc3
mov eax, dword [edi + 0xc]
add eax, dword [ebp + 0x14]
mov dword [ebp - 0x1c], eax
and dword [ebp - 0x44], 0
mov esi, 0xfffffc18
and dword [ebp - 0x5c], 0
xor ecx, ecx
xorps xmm0, xmm0
mov edx, dword [edi + 0x18]
mov dword [ebp - 0x74], edx
movss dword [ebp - 0xac], xmm0
movss dword [ebp - 0x88], xmm1
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x3c], esi
cmp byte [ebp - 0xd], cl
je 0x1008de0a
mov eax, dword [edi + 0x40]
or esi, 0xffffffff
mov dword [ebp - 0x68], esi
lea eax, [edx + eax*2]
mov dword [ebp - 0x44], eax
xor eax, eax
lea ecx, [eax + 1]
cmp byte [ebp - 0x20], 0
je 0x1008de25
mov eax, dword [edi + 0x48]
cmp dword [edi + 0x44], eax
cmovl eax, dword [edi + 0x44]
or dword [ebp - 0x3c], 0xffffffff
inc ecx
lea eax, [edx + eax*2]
mov dword [ebp - 0x5c], eax
mov esi, dword [ebp - 0x74]
mov eax, dword [ebp - 0x28]
movzx eax, al
add ecx, eax
xor eax, eax
movzx esi, word [esi]
test si, si
mov dword [ebp - 0x40], eax
mov esi, dword [ebp - 0x68]
je 0x1008de93
mov edi, dword [ebp - 0x74]
movzx eax, word [edi]
mov edi, dword [ebp - 0x40]
cmp ax, word [ebp - 0x80]
jne 0x1008de75
inc edi
cmp esi, 0xffffffff
jne 0x1008de62
cmp edx, dword [ebp - 0x44]
jb 0x1008de62
dec ecx
mov dword [ebp - 0x68], edi
test ecx, ecx
jle 0x1008de8a
cmp dword [ebp - 0x3c], 0xffffffff
jne 0x1008de75
cmp edx, dword [ebp - 0x5c]
jb 0x1008de75
dec ecx
mov dword [ebp - 0x3c], edi
test ecx, ecx
jle 0x1008de8a
push 2
pop eax
add edx, eax
movzx eax, word [edx]
mov esi, eax
mov dword [ebp - 0x4c], esi
mov esi, dword [ebp - 0x68]
test ax, ax
jne 0x1008de49
mov dword [ebp - 0x40], edi
mov edi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
inc eax
cmp dword [ebp - 0x68], 0xffffffff
mov esi, eax
push dword [ebp - 0x74]
cmovne esi, dword [ebp - 0x68]
cmp ecx, 0xffffffff
push dword [ebp - 0x44]
cmove ecx, eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ecx
call fcn.1004989d
xor ecx, ecx
push ecx
push ecx
push ecx
push dword [ebp - 0x44]
push eax
mov eax, dword [ebp - 0x34]
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.1008c047
movd xmm4, esi
add esp, 0x24
cmp dword [ebp - 0x3c], 0
cvtdq2ps xmm4, xmm4
movss xmm1, dword [eax]
mov eax, dword [ebp - 0x34]
movss dword [ebp - 0x68], xmm1
movss xmm0, dword [eax + 0x3bd0]
mulss xmm4, xmm0
movss dword [ebp - 0x4c], xmm4
jl 0x1008df55
push dword [ebp - 0x74]
mov esi, dword [ebp - 0x5c]
push esi
call fcn.1004989d
xor ecx, ecx
push ecx
push ecx
push ecx
push esi
mov esi, dword [ebp - 0x34]
push eax
lea eax, [ebp - 0x8c]
push esi
push eax
call fcn.1008c047
movd xmm1, dword [ebp - 0x3c]
add esp, 0x24
movss xmm4, dword [ebp - 0x4c]
cvtdq2ps xmm1, xmm1
movss xmm0, dword [eax]
movss dword [ebp - 0xac], xmm0
movss xmm0, dword [esi + 0x3bd0]
mulss xmm1, xmm0
movss dword [ebp - 0x88], xmm1
movss xmm1, dword [ebp - 0x68]
jmp 0x1008df57
mov esi, eax
mov ecx, dword [ebp - 0x28]
movss xmm5, dword [ebp - 0x7c]
test cl, cl
je 0x1008df7b
movd xmm3, dword [ebp - 0x40]
cvtdq2ps xmm3, xmm3
movss dword [ebp - 0x30], xmm5
mulss xmm3, xmm0
movss dword [ebp - 0x48], xmm3
jmp 0x1008df80
movss xmm3, dword [ebp - 0x48]
cmp byte [ebp - 0xd], 0
je 0x1008e093
cmp byte [edi + 0xe70], 0
je 0x1008e093
test dword [ebp + 0x20], 0x1000
jne 0x1008dfe9
movss xmm2, dword [edi + 0x3c]
movaps xmm0, xmm5
comiss xmm2, xmm1
mulss xmm0, dword [0x100d2178]
subss xmm5, dword [esi + 0x37d4]
jbe 0x1008dfda
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x3c], xmm0
jmp 0x1008dfed
subss xmm1, xmm5
comiss xmm1, xmm2
jb 0x1008dfed
addss xmm0, xmm1
jmp 0x1008dfc8
and dword [edi + 0x3c], 0
xorps xmm6, xmm6
test cl, cl
je 0x1008e08c
movss xmm5, dword [ebp - 0x78]
movaps xmm0, xmm4
subss xmm0, dword [esi + 0x3bd0]
movss xmm7, dword [ebp - 0x6c]
comiss xmm5, xmm0
jbe 0x1008e01b
xorps xmm5, xmm5
maxss xmm5, xmm0
jmp 0x1008e045
movss xmm2, dword [esi + 0x37d8]
movaps xmm1, xmm7
addss xmm2, xmm2
movaps xmm0, xmm4
subss xmm1, xmm2
subss xmm0, xmm1
comiss xmm0, xmm5
jb 0x1008e045
movaps xmm5, xmm4
subss xmm5, xmm7
addss xmm5, xmm2
comiss xmm6, xmm5
movss xmm1, dword [esi + 0x37d8]
jbe 0x1008e057
xorps xmm1, xmm1
jmp 0x1008e06b
addss xmm1, xmm1
addss xmm1, xmm3
subss xmm1, xmm7
maxss xmm1, xmm6
minss xmm1, xmm5
mov eax, dword [ebp - 0x58]
movss xmm0, dword [eax + 0x78]
subss xmm0, xmm1
addss xmm0, dword [ebp - 0x90]
movss dword [ebp - 0x90], xmm0
movss dword [eax + 0x78], xmm1
mov byte [edi + 0xe70], 0
cmp byte [ebp - 0x20], 0
movss xmm0, dword [edi + 0x3c]
movss dword [ebp - 0x44], xmm0
je 0x1008e311
mov edx, dword [edi + 0x48]
mov eax, edx
mov ecx, dword [edi + 0x44]
cmp ecx, edx
mov edi, dword [ebp - 0x74]
cmovl eax, ecx
cmovge edx, ecx
cmp byte [ebp - 0xd], 0
lea eax, [edi + eax*2]
mov dword [ebp - 0x6c], eax
mov eax, edi
lea eax, [eax + edx*2]
mov dword [ebp - 0x5c], eax
je 0x1008e0d8
movss xmm0, dword [0x100c7298]
jmp 0x1008e0e0
movss xmm0, dword [0x100cb774]
push ecx
movss dword [esp], xmm0
push 0x2f
call fcn.10046be9
cmp byte [ebp - 0x28], 0
xorps xmm6, xmm6
pop ecx
pop ecx
mov dword [ebp - 0x78], eax
je 0x1008e10a
movss dword [ebp - 0xb4], xmm6
movss dword [ebp - 0x40], xmm6
jmp 0x1008e117
movss xmm0, dword [0x100c7ea0]
movss dword [ebp - 0x40], xmm0
movss xmm5, dword [ebp - 0x90]
addss xmm5, dword [ebp - 0x88]
movss xmm7, dword [ebp - 0xac]
addss xmm7, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x70]
subss xmm5, xmm6
mov dword [ebp - 0x6c], ecx
subss xmm7, dword [ebp - 0x44]
movss dword [ebp - 0x88], xmm5
cmp ecx, edx
jae 0x1008e30e
movss xmm1, dword [ebp - 0xb8]
movss xmm4, dword [ebp - 0xc0]
mov edi, dword [ebp - 0x78]
movaps xmm0, xmm1
addss xmm0, dword [esi + 0x3bd0]
comiss xmm5, xmm0
ja 0x1008e30b
comiss xmm4, xmm5
ja 0x1008e1dc
xor eax, eax
inc eax
push eax
push 0
lea eax, [ebp - 0x6c]
push eax
push edx
push ecx
lea eax, [ebp - 0xb0]
push esi
push eax
call fcn.1008c047
movss xmm0, dword [ebp - 0xb0]
add esp, 0x1c
comiss xmm6, xmm0
jb 0x1008e205
mov eax, dword [esi + 0x3bcc]
cmp dword [eax], 0x20
jle 0x1008e1e5
mov eax, dword [eax + 8]
movss xmm0, dword [eax + 0x80]
jmp 0x1008e1ea
mov ax, word [ecx]
add ecx, 2
mov dword [ebp - 0x6c], ecx
cmp ax, word [ebp - 0x80]
je 0x1008e2e6
cmp ecx, edx
jb 0x1008e1c9
jmp 0x1008e2e6
movss xmm0, dword [eax + 0xc]
mulss xmm0, dword [0x100c7e9c]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0xb0], xmm0
movss xmm2, dword [ebp - 0xb4]
movaps xmm3, xmm7
subss xmm2, dword [esi + 0x3bd0]
movss xmm4, dword [ebp - 0xc0]
addss xmm7, xmm0
movss xmm0, dword [ebp - 0x40]
addss xmm3, xmm6
movss xmm1, dword [ebp - 0xb8]
addss xmm0, xmm5
movss xmm6, dword [ebp - 0xbc]
addss xmm2, xmm5
minss xmm7, xmm6
maxss xmm3, dword [ebp - 0xc4]
minss xmm0, xmm1
maxss xmm2, xmm4
movss dword [ebp - 0x10c], xmm7
movss dword [ebp - 0x114], xmm3
comiss xmm0, xmm4
movss dword [ebp - 0x110], xmm2
movss dword [ebp - 0x108], xmm0
jbe 0x1008e2dd
comiss xmm1, xmm2
jbe 0x1008e2dd
comiss xmm7, dword [ebp - 0xc4]
jbe 0x1008e2dd
comiss xmm6, xmm3
jbe 0x1008e2dd
push 0
push ecx
and dword [esp], 0
lea eax, [ebp - 0x10c]
push edi
push eax
lea eax, [ebp - 0x114]
push eax
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax + 0x260]
call fcn.1005dae5
movss xmm2, dword [ebp - 0xb4]
movss xmm1, dword [ebp - 0xb8]
movss xmm4, dword [ebp - 0xc0]
movss xmm5, dword [ebp - 0x88]
movss dword [ebp - 0xb4], xmm2
mov edx, dword [ebp - 0x5c]
xorps xmm6, xmm6
mov ecx, dword [ebp - 0x6c]
movss xmm7, dword [ebp - 0x94]
addss xmm5, dword [esi + 0x3bd0]
subss xmm7, dword [ebp - 0x44]
movss dword [ebp - 0x88], xmm5
cmp ecx, edx
jb 0x1008e16f
mov edi, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x28]
test cl, cl
jne 0x1008e326
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp + 0x14]
cmp eax, 0x200000
jge 0x1008e3a7
movzx eax, byte [ebp - 0x11]
push ecx
mov dword [esp], 0x3f800000
push eax
call fcn.10046be9
movss xmm0, dword [ebp - 0x94]
xor edx, edx
cmp byte [ebp - 0x28], dl
subss xmm0, dword [ebp - 0x44]
pop ecx
pop ecx
lea ecx, [ebp - 0xc4]
cmovne ecx, edx
push ecx
push ecx
and dword [esp], edx
push dword [ebp - 0x1c]
movss dword [ebp - 0x84], xmm0
push dword [ebp + 0x14]
movss xmm0, dword [ebp - 0x90]
subss xmm0, dword [0x100c7294]
push eax
lea eax, [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x58]
push ecx
movss dword [ebp - 0x80], xmm0
movss xmm0, dword [esi + 0x3bd0]
mov ecx, dword [eax + 0x260]
movss dword [esp], xmm0
push dword [esi + 0x3bcc]
call fcn.1005fafd
cmp byte [ebp - 0xd], 0
je 0x1008e577
movss xmm1, dword [esi + 0x18]
addss xmm1, dword [edi + 0xe6c]
movss dword [edi + 0xe6c], xmm1
cmp byte [esi + 0x63], 0
je 0x1008e40a
xorps xmm0, xmm0
comiss xmm0, xmm1
jae 0x1008e40a
movsd xmm0, qword [0x100d2f20]
sub esp, 0x10
movsd qword [esp + 8], xmm0
cvtps2pd xmm0, xmm1
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_fmod
movss xmm0, dword [0x100cb790]
add esp, 0x10
fstp dword [ebp - 0x80]
comiss xmm0, dword [ebp - 0x80]
jae 0x1008e40a
xor cl, cl
jmp 0x1008e40f
xor eax, eax
lea ecx, [eax + 1]
movss xmm0, dword [ebp - 0x68]
addss xmm0, dword [ebp - 0x94]
subss xmm0, dword [ebp - 0x44]
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 0x90]
addss xmm0, dword [ebp - 0x4c]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
subss xmm0, dword [0x100c7294]
movss dword [ebp - 0x80], xmm1
movaps xmm4, xmm1
movss dword [ebp - 0x114], xmm1
addss xmm4, dword [0x100c7298]
cvttss2si eax, xmm0
movss dword [ebp - 0x10c], xmm4
movd xmm3, eax
cvtdq2ps xmm3, xmm3
movss dword [ebp - 0x4c], xmm3
movaps xmm2, xmm3
movaps xmm0, xmm3
subss xmm2, dword [esi + 0x3bd0]
subss xmm0, dword [0x100d2f10]
addss xmm2, dword [0x100c7e9c]
movss dword [ebp - 0x108], xmm0
movss dword [ebp - 0x110], xmm2
test cl, cl
je 0x1008e53c
comiss xmm0, dword [ebp - 0xc0]
jbe 0x1008e53c
movss xmm0, dword [ebp - 0xb8]
comiss xmm0, xmm2
jbe 0x1008e53c
comiss xmm4, dword [ebp - 0xc4]
jbe 0x1008e53c
movss xmm0, dword [ebp - 0xbc]
comiss xmm0, xmm1
jbe 0x1008e53c
mov eax, dword [ebp - 0x58]
push ecx
mov dword [esp], 0x3f800000
push 0
mov esi, dword [eax + 0x260]
call fcn.10046be9
movss xmm0, dword [ebp - 0x114]
add esp, 4
movss dword [ebp - 0x8c], xmm0
mov ecx, esi
movss xmm0, dword [ebp - 0x108]
movss dword [ebp - 0x88], xmm0
mov dword [esp], 0x3f800000
push eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.1005ca22
movss xmm1, dword [ebp - 0x80]
movss xmm3, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x34]
cmp byte [ebp - 0x38], 0
jne 0x1008e577
movss xmm0, dword [esi + 0x3bd0]
xor eax, eax
subss xmm1, dword [0x100c7298]
subss xmm3, xmm0
movss dword [esi + 0x5a0c], xmm0
inc eax
mov byte [esi + 0x5a00], al
movss dword [esi + 0x5a04], xmm1
movss dword [esi + 0x5a08], xmm3
cmp byte [ebp - 0xa8], 0
je 0x1008e58b
cmp byte [ebp - 0x11], 0
jne 0x1008e58b
call fcn.1004f71a
cmp byte [ebp - 0x28], 0
mov edi, dword [ebp - 0x34]
je 0x1008e627
movss xmm0, dword [ebp - 0x30]
lea eax, [ebp - 0xb0]
movss dword [ebp - 0xb0], xmm0
movss xmm0, dword [ebp - 0x48]
addss xmm0, dword [edi + 0x37d8]
push eax
movss dword [ebp - 0xac], xmm0
call fcn.1008a828
mov esi, dword [edi + 0x46a0]
mov eax, esi
or eax, 0x401
pop ecx
mov dword [edi + 0x46a0], eax
call fcn.1004525c
mov eax, dword [edi + 0x46c4]
and eax, 0x80
or dword [ebp - 0x158], eax
mov dword [edi + 0x46a0], esi
call fcn.10045677
cmp dword [edi + 0x46bc], 0
mov esi, dword [ebp - 0x18]
jne 0x1008e62a
mov dword [edi + 0x46bc], esi
mov eax, dword [ebp - 0x15c]
mov dword [edi + 0x46c0], eax
mov eax, dword [ebp - 0x158]
mov dword [edi + 0x46c4], eax
jmp 0x1008e62a
mov esi, dword [ebp - 0x18]
cmp byte [edi + 0x5a84], 0
je 0x1008e666
cmp byte [ebp - 0xa8], 0
je 0x1008e642
cmp byte [ebp - 0x11], 0
je 0x1008e666
push 0x100d2abc
push 0x100d2ac0
call fcn.1004b9eb
push dword [ebp - 0x1c]
lea eax, [ebp - 0x94]
push dword [ebp + 0x14]
push eax
call fcn.1004b887
add esp, 0x14
movss xmm0, dword [ebp - 0x11c]
comiss xmm0, dword [0x100c7294]
jbe 0x1008e6b8
movss xmm0, dword [ebp - 0x9c]
xor eax, eax
addss xmm0, dword [edi + 0x37ec]
inc eax
push eax
push 0
push dword [ebp + 8]
movss dword [ebp - 0x50], xmm0
movss xmm0, dword [ebp - 0xa0]
addss xmm0, dword [edi + 0x37d8]
movss dword [ebp - 0x4c], xmm0
push dword [ebp - 0x4c]
push dword [ebp - 0x50]
call fcn.10050af7
add esp, 0x14
cmp byte [ebp - 0x2a], 0
mov eax, dword [ebp + 0x20]
je 0x1008e6d2
test eax, 0x8000000
jne 0x1008e6d2
push esi
call fcn.1004bbe4
mov eax, dword [ebp + 0x20]
pop ecx
movzx ecx, byte [ebp - 0x2b]
test al, 0x20
movzx eax, byte [ebp - 0x2a]
cmovne eax, ecx
jmp 0x1008c3ad