Function at 0x1002d950
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x28
push esi
push edi
mov edi, dword [0x100be9bc]
mov dword [esp + 0x1c], edi
mov eax, dword [edi + 0x2ef8]
sub eax, 1
mov dword [esp + 0x10], eax
js 0x1002d9e8
lea ecx, [eax + eax*4]
shl ecx, 2
mov dword [esp + 0xc], ecx
nop
mov edx, dword [edi + 0x2f00]
cmp dword [edx + ecx + 4], 7
jne 0x1002d9d8
mov esi, edx
mov eax, 0x66666667
sub edx, esi
add edx, ecx
imul edx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea eax, [ecx + ecx*4]
lea edx, [esi + eax*4]
mov eax, dword [edi + 0x2ef8]
sub eax, ecx
lea eax, [eax + eax*4]
lea eax, [eax*4 - 0x14]
push eax
lea eax, [edx + 0x14]
push eax
push edx
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [esp + 0x1c]
add esp, 0xc
dec dword [edi + 0x2ef8]
mov ecx, dword [esp + 0xc]
dec eax
sub ecx, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
test eax, eax
jns 0x1002d980
xor esi, esi
cmp dword [edi + 0x2ef8], esi
jle 0x1002da2c
xor ecx, ecx
mov dword [esp + 0x10], ecx
nop dword [eax + eax]
mov eax, dword [edi + 0x2f00]
add eax, ecx
cmp dword [eax + 4], 0
jne 0x1002da1c
push eax
mov eax, dword [eax + 0xc]
push edi
call eax
mov ecx, dword [esp + 0x18]
add esp, 8
inc esi
add ecx, 0x14
mov dword [esp + 0x10], ecx
cmp esi, dword [edi + 0x2ef8]
jl 0x1002da00
mov esi, dword [0x100be9bc]
cmp byte [esi + 0xb4], 0
je 0x1002da48
test byte [esi + 0xc], 2
jne 0x1002da48
mov byte [esi + 0xb4], 0
cmp byte [esi + 0x2ec1], 0
mov eax, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov dword [esp + 0xc], eax
jne 0x1002daac
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x1002daa5
push ecx
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0
push eax
call fcn.10029bb0
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
je 0x1002daa5
mov edx, dword [esp + 0x10]
mov ecx, eax
call fcn.1003a810
mov ecx, dword [0x100be9bc]
test ecx, ecx
je 0x1002da9a
dec dword [ecx + 0x370]
push dword [esp + 0x20]
call dword [esp + 0x10]
add esp, 4
mov byte [esi + 0x2ec1], 1
movss xmm0, dword [esi + 0x2ec4]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x1002db48
subss xmm0, dword [esi + 0x18]
comiss xmm1, xmm0
movss dword [esi + 0x2ec4], xmm0
jb 0x1002db48
mov eax, dword [esi + 0x20]
mov dword [esp + 0x20], eax
test eax, eax
je 0x1002db37
mov eax, dword [0x100be9bc]
lea ecx, [esp + 0x10]
mov dword [esp + 0x10], 0
mov dword [eax + 0x2ec4], 0
call fcn.1003aae0
mov ecx, dword [esp + 0x20]
mov edx, 0x10098ea4
mov dword [esp + 0x18], eax
call fcn.10029ab0
mov dword [esp + 0x20], eax
test eax, eax
je 0x1002db3e
push eax
push dword [esp + 0x14]
push 1
push dword [esp + 0x24]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
push dword [esp + 0x30]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 0x14
jmp 0x1002db3e
mov byte [esi + 0x358], 1
mov dword [esi + 0x2ec4], 0
movss xmm0, dword [edi + 0x18]
inc dword [edi + 0x1a10]
cvtps2pd xmm0, xmm0
mov byte [edi + 0x1a1c], 1
mov dword [edi + 0x2e90], 0
mov dword [edi + 0x1a68], 0
addsd xmm0, qword [edi + 0x1a08]
movsd qword [edi + 0x1a08], xmm0
mov ecx, dword [edi + 0x2ea8]
test ecx, ecx
jns 0x1002dba7
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [edi + 0x2ea4]
call fcn.1003b930
mov dword [edi + 0x2ea4], 0
mov ecx, 0x78
mov eax, dword [edi + 0x3134]
xorps xmm2, xmm2
movss xmm1, dword [edi + 0x18]
movaps xmm0, xmm1
movss xmm3, dword [0x1009a1b4]
subss xmm0, dword [edi + eax*4 + 0x2f54]
addss xmm0, dword [edi + 0x3138]
movss dword [edi + 0x3138], xmm0
movss dword [edi + eax*4 + 0x2f54], xmm1
mov eax, dword [edi + 0x3134]
inc eax
movss xmm1, dword [edi + 0x3138]
cdq
idiv ecx
comiss xmm1, xmm2
mov dword [edi + 0x3134], edx
movss xmm0, dword [0x1009a36c]
movss dword [esp + 0x10], xmm0
jbe 0x1002dc2b
divss xmm1, dword [0x1009a2dc]
movaps xmm0, xmm3
divss xmm0, xmm1
mov eax, dword [edi + 0x98]
mov esi, dword [0x100be9bc]
movss dword [edi + 0x35c], xmm0
mov byte [eax], 1
mov eax, dword [esi + 0xa4]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1002dc5f
mov eax, dword [esi + 0x98]
mov eax, dword [eax + 0x3c]
mov eax, dword [eax]
mov dword [esp + 0x14], eax
movss xmm0, dword [esi + 0x9c]
movaps xmm1, xmm3
mov ecx, dword [esi + 0x1a6c]
mov dword [esi + 0x192c], eax
mulss xmm0, dword [eax + 0x10]
mulss xmm0, dword [eax + 0x40]
maxss xmm1, xmm0
movss dword [esi + 0x1934], xmm1
test ecx, ecx
je 0x1002dcac
mulss xmm1, dword [ecx + 0x280]
mov ecx, dword [ecx + 0x31c]
test ecx, ecx
je 0x1002dcaf
mulss xmm1, dword [ecx + 0x280]
jmp 0x1002dcaf
xorps xmm1, xmm1
movss dword [esi + 0x1930], xmm1
mov edx, dword [eax + 0x30]
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov eax, dword [edx + 0x2c]
mov ecx, dword [edx + 0x30]
mov dword [esi + 0x1938], eax
lea eax, [edx + 0x58]
mov dword [esi + 0x1a04], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0x1940], eax
mov dword [esi + 0x193c], ecx
movss dword [esi + 0x1944], xmm1
movss xmm0, dword [edi + 0x10]
mov eax, dword [edi + 0x15d4]
movss xmm1, dword [edi + 0x15d8]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [edi + 0x14]
movss dword [esp + 0x2c], xmm0
movups xmm0, xmmword [esp + 0x20]
mov dword [edi + 0x1948], eax
movups xmmword [edi + 0x1950], xmm0
movss xmm0, dword [edi + 0x194c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1002ddb6
movss dword [edi + 0x194c], xmm1
xor esi, esi
nop dword [eax + eax]
movd xmm1, esi
cvtdq2ps xmm1, xmm1
movaps xmm0, xmm1
subss xmm0, dword [edi + 0x194c]
divss xmm0, xmm1
cvtps2pd xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_acos_precise
movss xmm1, dword [0x1009a254]
cvtsd2ss xmm0, xmm0
divss xmm1, xmm0
cvttss2si edx, xmm1
cmp edx, 0xc
jge 0x1002dd8e
mov edx, 0xc
jmp 0x1002dd9c
cmp edx, 0x200
mov eax, 0x200
cmovg edx, eax
mov ecx, 0xff
movzx eax, dl
cmp edx, ecx
cmovl ecx, eax
mov byte [esi + edi + 0x19c4], cl
inc esi
cmp esi, 0x40
jl 0x1002dd50
xor edx, edx
mov dword [edi + 0x1960], 0
cmp byte [edi + 0x15d0], dl
je 0x1002ddd9
mov dword [edi + 0x1960], 1
mov edx, 1
cmp byte [edi + 0x15d1], 0
mov ecx, edx
je 0x1002ddfc
mov eax, dword [edi + 0x192c]
mov eax, dword [eax + 0x30]
test byte [eax + 4], 4
jne 0x1002ddfc
or ecx, 2
mov dword [edi + 0x1960], ecx
cmp byte [edi + 0x15d2], 0
je 0x1002de0e
or ecx, 4
mov dword [edi + 0x1960], ecx
test byte [edi + 0xc], 8
je 0x1002de1d
or ecx, 8
mov dword [edi + 0x1960], ecx
lea ecx, [edi + 0x1d48]
call fcn.10043de0
mov eax, dword [edi + 0x98]
lea edx, [edi + 0x1d90]
mov ecx, dword [edx]
mov esi, dword [edx + 4]
mov dword [esp + 0x14], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x18], eax
cmp ecx, esi
jne 0x1002de72
inc ecx
test esi, esi
je 0x1002de5c
mov eax, esi
cdq
sub eax, edx
mov edx, dword [esp + 0x14]
sar eax, 1
add eax, esi
jmp 0x1002de61
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, edx
call fcn.1003b930
mov edx, dword [esp + 0x14]
mov ecx, dword [edx]
mov eax, dword [edx + 8]
mov esi, dword [esp + 0x18]
mov dword [eax + ecx*4], esi
lea esi, [edi + 0x1d48]
inc dword [edx]
mov ecx, esi
mov eax, dword [esp + 0x18]
mov dword [esi + 0x70], eax
call fcn.10044210
mov eax, dword [esi + 0x2c]
lea ecx, [esi + 0x3c]
mov edx, dword [ecx]
movss xmm0, dword [eax + 0x18]
movss xmm1, dword [eax + 0x1c]
movss dword [esp + 0x20], xmm0
maxss xmm0, dword [eax + 0x20]
movss dword [esp + 0x24], xmm1
maxss xmm1, dword [eax + 0x24]
mov eax, dword [ecx + 4]
movss dword [esp + 0x28], xmm0
movss dword [esp + 0x2c], xmm1
cmp edx, eax
jne 0x1002defb
lea ecx, [edx + 1]
test eax, eax
je 0x1002dee3
cdq
sub eax, edx
lea edx, [esi + 0x3c]
sar eax, 1
add eax, dword [edx + 4]
jmp 0x1002deeb
mov eax, 8
lea edx, [esi + 0x3c]
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, edx
call fcn.1004b880
lea ecx, [esi + 0x3c]
mov eax, dword [ecx]
mov edx, dword [ecx + 8]
add eax, eax
movaps xmm0, xmmword [esp + 0x20]
movups xmmword [edx + eax*8], xmm0
inc dword [ecx]
mov ecx, esi
movups xmmword [esi + 0x60], xmm0
call fcn.100440f0
lea ecx, [edi + 0x1dd8]
call fcn.10043de0
mov eax, dword [edi + 0x98]
lea edx, [edi + 0x1e20]
mov ecx, dword [edx]
mov esi, dword [edx + 4]
mov dword [esp + 0x18], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x14], eax
cmp ecx, esi
jne 0x1002df6d
inc ecx
test esi, esi
je 0x1002df57
mov eax, esi
cdq
sub eax, edx
mov edx, dword [esp + 0x18]
sar eax, 1
add eax, esi
jmp 0x1002df5c
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, edx
call fcn.1003b930
mov edx, dword [esp + 0x18]
mov ecx, dword [edx]
mov eax, dword [edx + 8]
mov esi, dword [esp + 0x14]
mov dword [eax + ecx*4], esi
lea esi, [edi + 0x1dd8]
inc dword [edx]
mov ecx, esi
mov eax, dword [esp + 0x14]
mov dword [esi + 0x70], eax
call fcn.10044210
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x3c]
movss xmm0, dword [eax + 0x18]
movss xmm1, dword [eax + 0x1c]
movss dword [esp + 0x20], xmm0
maxss xmm0, dword [eax + 0x20]
movss dword [esp + 0x24], xmm1
maxss xmm1, dword [eax + 0x24]
mov eax, dword [esi + 0x40]
movss dword [esp + 0x28], xmm0
movss dword [esp + 0x2c], xmm1
cmp ecx, eax
jne 0x1002dfea
inc ecx
test eax, eax
je 0x1002dfd7
cdq
sub eax, edx
sar eax, 1
add eax, dword [esi + 0x40]
jmp 0x1002dfdc
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
lea ecx, [esi + 0x3c]
call fcn.1004b880
mov eax, dword [esi + 0x3c]
lea ecx, [edi + 0x1dd8]
mov edx, dword [esi + 0x44]
add eax, eax
movaps xmm0, xmmword [esp + 0x20]
movups xmmword [edx + eax*8], xmm0
inc dword [esi + 0x3c]
movups xmmword [edi + 0x1e38], xmm0
call fcn.100440f0
mov esi, dword [0x100be9bc]
mov byte [edi + 0x1d00], 0
mov dword [edi + 0x1d04], 0
mov dword [edi + 0x1d0c], 0
mov dword [edi + 0x1d10], 0
mov dword [edi + 0x1d08], 0
mov dword [edi + 0x1d24], 0
mov dword [edi + 0x1d28], 0
mov dword [edi + 0x1d1c], 0
mov dword [edi + 0x1d20], 0
mov dword [edi + 0x1d14], 0
mov dword [edi + 0x1d18], 0
cmp byte [edi + 0x1e6c], 0
je 0x1002e0b5
mov eax, dword [edi + 0x1e84]
cmp eax, dword [edi + 0x1aa4]
jne 0x1002e0b5
cmp dword [esi + 0x1aa4], eax
jne 0x1002e0a6
mov dword [esi + 0x1aa8], eax
cmp dword [esi + 0x1adc], eax
jne 0x1002e0b5
mov byte [esi + 0x1ae0], 1
cmp dword [edi + 0x1a94], 0
jne 0x1002e0ca
mov dword [edi + 0x1a9c], 0
jmp 0x1002e0dc
mov eax, dword [edi + 0x1a90]
test eax, eax
je 0x1002e0e6
cmp dword [edi + 0x1aa4], eax
jne 0x1002e0e6
mov dword [edi + 0x1aa0], 0
mov eax, dword [edi + 0x1a90]
test eax, eax
je 0x1002e120
movss xmm1, dword [edi + 0x18]
movaps xmm0, xmm1
addss xmm0, dword [edi + 0x1a9c]
movss dword [edi + 0x1a9c], xmm0
cmp dword [edi + 0x1aa4], eax
je 0x1002e120
addss xmm1, dword [edi + 0x1aa0]
movss dword [edi + 0x1aa0], xmm1
mov dword [edi + 0x1a94], eax
mov al, byte [edi + 0x1a99]
mov byte [edi + 0x1a9a], al
mov eax, dword [edi + 0x1aa4]
mov dword [edi + 0x1a90], 0
mov word [edi + 0x1a98], 0
mov byte [edi + 0x1a9b], 0
cmp dword [edi + 0x1aa8], eax
je 0x1002e16b
cmp dword [edi + 0x1adc], eax
jne 0x1002e16b
test eax, eax
je 0x1002e16b
call fcn.1002c5b0
mov ecx, dword [edi + 0x1aa4]
test ecx, ecx
je 0x1002e18a
movss xmm0, dword [edi + 0x18]
addss xmm0, dword [edi + 0x1aac]
movss dword [edi + 0x1aac], xmm0
mov eax, dword [edi + 0x1ad0]
movss xmm0, dword [edi + 0x18]
addss xmm0, dword [edi + 0x1aec]
mov dword [edi + 0x1ae4], eax
mov al, byte [edi + 0x1ab4]
mov byte [edi + 0x1ae1], al
mov eax, dword [edi + 0x2e50]
movss dword [edi + 0x1aec], xmm0
mov dword [edi + 0x1adc], ecx
mov dword [edi + 0x1aa8], 0
mov byte [edi + 0x1ab5], 0
mov byte [edi + 0x1ae0], 0
mov byte [edi + 0x1ab0], 0
test eax, eax
je 0x1002e1f4
cmp ecx, eax
je 0x1002e1f4
mov dword [edi + 0x2e50], 0
test ecx, ecx
jne 0x1002e210
mov dword [edi + 0x1ab8], ecx
mov dword [edi + 0x1abc], ecx
mov dword [edi + 0x1ac0], ecx
mov dword [edi + 0x1ac4], ecx
mov eax, dword [edi + 0x1ed0]
mov dword [edi + 0x1ed4], eax
xor eax, eax
mov dword [edi + 0x1ed0], 0
mov dword [edi + 0x1ecc], 0x7f7fffff
mov word [edi + 0x1e6d], 0
mov dword [edi + 0x1edc], 0
cmp byte [esi + 0xfc], al
movss xmm1, dword [0x1009a38c]
setne al
mov ecx, eax
or ecx, 2
cmp byte [esi + 0xfd], 0
cmove ecx, eax
mov edx, ecx
or edx, 4
cmp byte [esi + 0xfe], 0
cmove edx, ecx
mov ecx, 0x200
mov eax, edx
or eax, 8
cmp byte [esi + 0xff], 0
cmove eax, edx
lea edx, [edi + 0x458]
mov dword [edi + 0x37c], eax
mov esi, edx
add edi, 0xc58
xor eax, eax
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x1c]
cmp byte [esi + eax + 0x100], 0
je 0x1002e2c6
movss xmm0, dword [edx]
xorps xmm2, xmm2
comiss xmm2, xmm0
jbe 0x1002e2bf
xorps xmm0, xmm0
jmp 0x1002e2c9
addss xmm0, dword [esi + 0x18]
jmp 0x1002e2c9
movaps xmm0, xmm1
movss dword [edx], xmm0
inc eax
add edx, 4
cmp eax, 0x200
jl 0x1002e2a4
call fcn.10037f70
call fcn.1002cf40
call fcn.1002d780
mov edi, dword [0x100be9bc]
mov ecx, dword [edi + 0x1a7c]
test ecx, ecx
je 0x1002e3ef
mov eax, dword [edi + 0x1aa4]
mov dword [edi + 0x1aa8], eax
cmp dword [edi + 0x1adc], eax
jne 0x1002e316
mov byte [edi + 0x1ae0], 1
cmp byte [edi + 0xec], 0
mov ecx, dword [ecx + 0x320]
je 0x1002e3de
lea eax, [edi + 0xe4]
mov edx, eax
test eax, eax
jne 0x1002e33b
lea edx, [edi + 0xe4]
movss xmm0, dword [edx]
movss xmm1, dword [0x1009a3c8]
comiss xmm0, xmm1
movss xmm2, dword [edx + 4]
jb 0x1002e3de
comiss xmm2, xmm1
jb 0x1002e3de
movss xmm1, dword [eax]
subss xmm1, dword [edi + 0x1ac8]
movss xmm0, dword [ecx + 0xc]
movss xmm2, dword [eax + 4]
subss xmm2, dword [edi + 0x1acc]
ucomiss xmm0, xmm1
movss dword [esp + 0x20], xmm1
movss dword [esp + 0x24], xmm2
lahf
test ah, 0x44
jp 0x1002e39f
movss xmm0, dword [ecx + 0x10]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x1002e3cb
test dword [ecx + 8], 0x100
jne 0x1002e3bd
xorps xmm0, xmm0
comiss xmm0, dword [edi + 0x2ec4]
jb 0x1002e3bd
mov eax, dword [edi + 0x1c]
mov dword [edi + 0x2ec4], eax
push 1
lea edx, [esp + 0x24]
call fcn.10035060
add esp, 4
mov ecx, dword [edi + 0x1a7c]
call fcn.10034cc0
mov edi, dword [0x100be9bc]
jmp 0x1002e427
call fcn.1002c5b0
mov dword [edi + 0x1a7c], 0
jmp 0x1002e427
mov ecx, dword [edi + 0x1ad0]
test ecx, ecx
je 0x1002e427
mov eax, dword [edi + 0x1aa4]
cmp dword [ecx + 0x50], eax
jne 0x1002e427
mov dword [edi + 0x1aa8], eax
cmp dword [edi + 0x1adc], eax
jne 0x1002e419
mov byte [edi + 0x1ae0], 1
cmp byte [edi + 0xec], 0
jne 0x1002e427
call fcn.1002c5b0
mov edx, dword [edi + 0x1bac]
sub edx, 1
js 0x1002e45c
mov eax, dword [edi + 0x1bb4]
lea ecx, [edx + edx*8]
lea eax, [eax + ecx*4]
add eax, 4
mov ecx, dword [eax]
test ecx, ecx
je 0x1002e454
test dword [ecx + 8], 0x8000000
jne 0x1002e51e
sub eax, 0x24
sub edx, 1
jns 0x1002e441
cmp dword [esi + 0x1ccc], 0
xorps xmm6, xmm6
je 0x1002e479
movss xmm0, dword [esi + 0x1cdc]
comiss xmm0, xmm6
ja 0x1002e521
movss xmm0, dword [esi + 0x18]
mulss xmm0, dword [0x1009a268]
movss xmm1, dword [esi + 0x1d44]
subss xmm1, xmm0
maxss xmm1, xmm6
movss dword [esi + 0x1d44], xmm1
mov dword [esi + 0x1e68], 0
mov dword [esi + 0x3144], 0xffffffff
mov dword [esi + 0x3140], 0xffffffff
mov dword [esi + 0x313c], 0xffffffff
mov dword [esi + 0x2eb0], 0x3f800000
mov dword [esi + 0x2eb4], 0x3f800000
call fcn.1002d2b0
mov edi, dword [0x100be9bc]
mov eax, dword [edi + 0x1bc4]
test eax, eax
je 0x1002e543
cmp byte [eax + 0x8a], 0
je 0x1002e543
test dword [eax + 8], 0x40000
jne 0x1002e543
cmp byte [edi + 0xfc], 0
jne 0x1002e543
mov ecx, dword [edi + 0x34]
test ecx, ecx
js 0x1002e543
call fcn.10030150
test al, al
je 0x1002e543
mov al, 1
jmp 0x1002e545
xorps xmm6, xmm6
movss xmm1, dword [esi + 0x18]
mulss xmm1, dword [0x1009a250]
addss xmm1, dword [esi + 0x1d44]
minss xmm1, dword [0x1009a1b4]
jmp 0x1002e496
xor al, al
cmp dword [edi + 0x1aa4], 0
mov byte [edi + 0x1cfc], al
jne 0x1002e5aa
test al, al
je 0x1002e5aa
cmp dword [edi + 0x1bc8], 0
mov eax, dword [edi + 0x1bc4]
mov dword [edi + 0x1ce8], eax
mov dword [edi + 0x1cf4], 0x7fffffff
je 0x1002e599
mov ecx, dword [edi + 0x1c10]
cmp ecx, 0x7fffffff
je 0x1002e599
xor edx, edx
mov eax, 2
cmp byte [edi + 0xfd], dl
cmovne eax, edx
add eax, ecx
jmp 0x1002e5a4
movzx eax, byte [edi + 0xfd]
neg eax
sbb eax, eax
mov dword [edi + 0x1cf8], eax
mov eax, dword [edi + 0x1ce8]
mov dword [edi + 0x1ce4], 0
mov dword [edi + 0x1cf0], 0x7fffffff
mov dword [edi + 0x1cec], 0x7fffffff
test eax, eax
je 0x1002e648
mov edx, dword [edi + 0x1cf4]
mov dword [edi + 0x1ce4], eax
cmp edx, 0x7fffffff
je 0x1002e604
mov ecx, dword [eax + 0x1a8]
cmp ecx, 0xffffffff
je 0x1002e604
inc ecx
lea eax, [edx + ecx]
cdq
idiv ecx
mov eax, dword [edi + 0x1ce8]
mov dword [edi + 0x1cec], edx
mov edx, dword [edi + 0x1cf8]
cmp edx, 0x7fffffff
je 0x1002e62a
mov ecx, dword [eax + 0x1ac]
cmp ecx, 0xffffffff
je 0x1002e62a
inc ecx
lea eax, [edx + ecx]
cdq
idiv ecx
mov dword [edi + 0x1cf0], edx
mov dword [edi + 0x1ce8], 0
mov dword [edi + 0x1cf8], 0x7fffffff
mov dword [edi + 0x1cf4], 0x7fffffff
mov dword [edi + 0x1c10], 0x7fffffff
cmp byte [esi + 0x1a1f], 0
jne 0x1002e680
movss xmm0, dword [esi + 0xb8]
comiss xmm6, xmm0
ja 0x1002e680
movsd xmm1, qword [esi + 0x1a08]
cvtpd2ps xmm1, xmm1
subss xmm1, xmm0
movss dword [esp + 0x10], xmm1
jmp 0x1002e686
movss xmm1, dword [esp + 0x10]
xor edi, edi
mov dword [esp + 0x18], edi
cmp dword [esi + 0x1a2c], edi
je 0x1002e82c
nop dword [eax + eax]
mov eax, dword [esi + 0x1a34]
xor ecx, ecx
mov edi, dword [eax + edi*4]
mov al, byte [edi + 0x8a]
mov byte [edi + 0x8b], al
mov word [edi + 0x96], cx
mov byte [edi + 0x8a], cl
mov byte [edi + 0x8c], cl
test al, al
jne 0x1002e811
cmp byte [edi + 0x360], cl
jne 0x1002e811
comiss xmm1, dword [edi + 0x260]
jbe 0x1002e811
mov ecx, dword [edi + 0x288]
mov byte [edi + 0x360], 1
mov eax, dword [ecx + 0x10]
mov dword [edi + 0x358], eax
mov eax, dword [ecx + 0x1c]
mov dword [edi + 0x35c], eax
mov ecx, dword [edi + 0xc8]
test ecx, ecx
je 0x1002e749
mov eax, dword [0x100be9bc]
mov dword [edi + 0xc4], 0
mov dword [edi + 0xc0], 0
test eax, eax
je 0x1002e737
dec dword [eax + 0x370]
push ecx
call dword [esp + 0x10]
add esp, 4
mov dword [edi + 0xc8], 0
mov ecx, dword [edi + 0x288]
call fcn.10043f40
mov ecx, dword [edi + 0x190]
test ecx, ecx
je 0x1002e793
mov eax, dword [0x100be9bc]
mov dword [edi + 0x18c], 0
mov dword [edi + 0x188], 0
test eax, eax
je 0x1002e781
dec dword [eax + 0x370]
push ecx
call dword [esp + 0x10]
add esp, 4
mov dword [edi + 0x190], 0
mov ecx, dword [edi + 0x1c4]
test ecx, ecx
je 0x1002e7d2
mov eax, dword [0x100be9bc]
mov dword [edi + 0x1c0], 0
mov dword [edi + 0x1bc], 0
test eax, eax
je 0x1002e7c0
dec dword [eax + 0x370]
push ecx
call dword [esp + 0x10]
add esp, 4
mov dword [edi + 0x1c4], 0
mov ecx, dword [edi + 0x1d0]
test ecx, ecx
je 0x1002e811
mov eax, dword [0x100be9bc]
mov dword [edi + 0x1cc], 0
mov dword [edi + 0x1c8], 0
test eax, eax
je 0x1002e7ff
dec dword [eax + 0x370]
push ecx
call dword [esp + 0x10]
add esp, 4
mov dword [edi + 0x1d0], 0
mov edi, dword [esp + 0x18]
movss xmm1, dword [esp + 0x10]
inc edi
mov dword [esp + 0x18], edi
cmp edi, dword [esi + 0x1a2c]
jne 0x1002e6a0
xor ecx, ecx
mov dword [esp + 0x14], ecx
cmp dword [esi + 0x1f28], ecx
jle 0x1002e998
xor edx, edx
xorps xmm1, xmm1
mov dword [esp + 0x20], edx
nop word [eax + eax]
mov eax, dword [esi + 0x1f30]
movss xmm0, dword [eax + ecx*4]
comiss xmm0, xmm1
jb 0x1002e97d
movss xmm2, dword [esp + 0x10]
comiss xmm2, xmm0
jbe 0x1002e97d
mov edi, dword [esi + 0x1f08]
mov eax, dword [0x100be9bc]
add edi, edx
mov dword [esp + 0x18], eax
lea ecx, [edi + 0x1c4]
call fcn.10046640
mov ecx, dword [edi + 0x1ec]
test ecx, ecx
je 0x1002e8ce
mov eax, dword [0x100be9bc]
mov dword [edi + 0x1e8], 0
mov dword [edi + 0x1e4], 0
test eax, eax
je 0x1002e8bc
dec dword [eax + 0x370]
push ecx
call dword [esp + 0x10]
add esp, 4
mov dword [edi + 0x1ec], 0
mov dword [edi + 0x1f0], 0
mov byte [edi + 0x217], 1
mov ecx, dword [edi + 0x1c0]
test ecx, ecx
je 0x1002e91e
mov eax, dword [0x100be9bc]
mov dword [edi + 0x1bc], 0
mov dword [edi + 0x1b8], 0
test eax, eax
je 0x1002e90c
dec dword [eax + 0x370]
push ecx
call dword [esp + 0x10]
add esp, 4
mov dword [edi + 0x1c0], 0
xor edx, edx
mov byte [edi + 0x221], 1
cmp dword [edi + 0x54], edx
jle 0x1002e946
xor ecx, ecx
or esi, 0xffffffff
mov eax, dword [edi + 0xc]
lea ecx, [ecx + 0x68]
inc edx
mov word [ecx + eax - 0x18], si
cmp edx, dword [edi + 0x54]
jl 0x1002e931
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
xorps xmm1, xmm1
sub edi, dword [eax + 0x1f08]
mov eax, 0x76b981db
imul edi
mov eax, dword [esp + 0x18]
sar edx, 8
mov ecx, edx
shr ecx, 0x1f
mov eax, dword [eax + 0x1f30]
add ecx, edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0xbf800000
mov ecx, dword [esp + 0x14]
inc ecx
add edx, 0x228
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], edx
cmp ecx, dword [esi + 0x1f28]
jl 0x1002e850
cmp byte [esi + 0x1a1f], 0
je 0x1002ea29
mov edi, dword [0x100be9bc]
mov eax, dword [edi + 0x1b9c]
test eax, eax
je 0x1002e9e5
mov dword [edi + 0x1b98], 0
mov dword [edi + 0x1b94], 0
test edi, edi
je 0x1002e9d3
dec dword [edi + 0x370]
push eax
call dword [esp + 0x10]
add esp, 4
mov dword [edi + 0x1b9c], 0
mov ecx, dword [edi + 0x1ba8]
test ecx, ecx
je 0x1002ea24
mov eax, dword [0x100be9bc]
mov dword [edi + 0x1ba4], 0
mov dword [edi + 0x1ba0], 0
test eax, eax
je 0x1002ea12
dec dword [eax + 0x370]
push ecx
call dword [esp + 0x10]
add esp, 4
mov dword [edi + 0x1ba8], 0
call fcn.10052580
mov eax, dword [esi + 0x1bc4]
mov byte [esi + 0x1a1f], 0
test eax, eax
je 0x1002eab7
cmp byte [eax + 0x8b], 0
jne 0x1002eab7
mov eax, dword [0x100be9bc]
mov ecx, dword [eax + 0x1a38]
sub ecx, 1
mov dword [esp + 0x20], ecx
js 0x1002eab0
mov eax, dword [eax + 0x1a40]
lea eax, [eax + ecx*4]
mov dword [esp + 0x1c], eax
mov edi, dword [eax]
test edi, edi
je 0x1002eaa0
cmp byte [edi + 0x8b], 0
je 0x1002eaa0
mov edx, dword [edi + 8]
mov eax, edx
and eax, 0x40200
cmp eax, 0x40200
setne cl
bt edx, 0x18
setae al
test al, cl
jne 0x1002ecd2
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
dec ecx
sub eax, 4
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], eax
test ecx, ecx
jns 0x1002ea68
xor ecx, ecx
call fcn.10034cc0
mov ecx, dword [esi + 0x1a54]
test ecx, ecx
jns 0x1002eadd
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [esi + 0x1a50]
call fcn.1003b930
mov dword [esi + 0x1a50], 0
mov ecx, dword [esi + 0x1bbc]
test ecx, ecx
jns 0x1002eb0d
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [esi + 0x1bb8]
call fcn.1003bdd0
lea edi, [esi + 0x1b94]
mov dword [esi + 0x1bb8], 0
mov ecx, dword [edi + 4]
test ecx, ecx
jns 0x1002eb3c
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
mov ecx, edi
call fcn.1003b930
mov dword [edi], 0
cmp dword [edi + 4], 0
jne 0x1002eb51
push 8
mov ecx, edi
call fcn.1003b930
mov ecx, dword [edi]
mov eax, dword [edi + 8]
push 0
mov dword [eax + ecx*4], 0
lea ecx, [esi + 0x1ba0]
inc dword [edi]
call fcn.1003b700
mov ecx, dword [esi + 0x1bc4]
xor dl, dl
call fcn.100369d0
mov edi, dword [0x100be9bc]
cmp byte [edi + 0x2f3c], 0
mov dword [edi + 0x2f40], 0
je 0x1002ec52
mov eax, dword [edi + 0x6c]
mov ecx, dword [edi + 0x1a94]
mov dword [esp + 0x10], ecx
mov dword [edi + 0x1e68], 7
test eax, eax
js 0x1002ebc7
mov ecx, eax
call fcn.10030150
mov ecx, dword [esp + 0x10]
test al, al
je 0x1002ebc7
mov byte [edi + 0x2f3c], 0
movss xmm0, dword [edi + 0x3f4]
ucomiss xmm0, dword [0x1009a0f8]
lahf
test ah, 0x44
jp 0x1002ebed
test ecx, ecx
je 0x1002ebed
mov dword [edi + 0x2f40], ecx
mov byte [edi + 0x2f3c], 0
or dword [edi + 0x1af0], 0x40
xor edx, edx
mov dword [edi + 0x1b44], 0x3f19999a
call fcn.10036550
mov edi, dword [esp + 0x10]
push edi
push str.HoveredId:_0x_08X
call fcn.10054170
push str.Press_ESC_to_abort_picking.
call fcn.10054170
add esp, 0xc
xor ecx, ecx
mov eax, 0x10
test edi, edi
cmove ecx, eax
mov eax, dword [0x100be9bc]
add eax, 0x15dc
add eax, ecx
push str.Click_to_break_in_debugger_
push eax
call fcn.100541f0
add esp, 8
call fcn.10034ae0
mov edi, dword [0x100be9bc]
mov byte [esi + 0x1a1d], 1
xor edx, edx
or dword [edi + 0x1af0], 2
mov ecx, str.DebugDefault
push 0
mov dword [edi + 0x1b10], 0x43c80000
mov dword [edi + 0x1b14], 0x43c80000
mov dword [edi + 0x1af8], 4
call fcn.10032860
xor edi, edi
add esp, 4
cmp dword [esi + 0x2ef8], edi
jle 0x1002eccc
xor ecx, ecx
mov dword [esp + 0x20], ecx
nop
mov eax, dword [esi + 0x2f00]
add eax, ecx
cmp dword [eax + 4], 1
jne 0x1002ecbc
push eax
mov eax, dword [eax + 0xc]
push esi
call eax
mov ecx, dword [esp + 0x28]
add esp, 8
inc edi
add ecx, 0x14
mov dword [esp + 0x20], ecx
cmp edi, dword [esi + 0x2ef8]
jl 0x1002eca0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x32c]
test ecx, ecx
je 0x1002ece9
cmp byte [ecx + 0x8b], 0
jne 0x1002eab2
mov ecx, edi
jmp 0x1002eab2