Function at 0x1002bad0
Capabilities:
Write file on windows

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x38
push esi
mov esi, dword [0x1007f11c]
xor edx, edx
push edi
mov ecx, esi
mov dword [ebp - 0x14], esi
call fcn.1002dc90
mov edi, dword [0x1007f11c]
cmp byte [edi + 0xb3], 0
je 0x1002bb19
test byte [edi + 0xc], 2
jne 0x1002bb19
mov byte [edi + 0xb3], 0
cmp byte [edi + 0x2eb9], 0
lea eax, [edi + 0x20]
mov ecx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov dword [ebp - 4], ecx
jne 0x1002bb7c
mov ecx, dword [eax]
test ecx, ecx
je 0x1002bb75
push ecx
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], 0
push eax
call fcn.1002fce0
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
je 0x1002bb72
mov edx, dword [ebp - 0xc]
mov ecx, eax
call fcn.10020220
mov ecx, dword [0x1007f11c]
test ecx, ecx
je 0x1002bb69
dec dword [ecx + 0x370]
push dword [ebp - 0x24]
call dword [ebp - 4]
add esp, 4
lea eax, [edi + 0x20]
mov byte [edi + 0x2eb9], 1
movss xmm0, dword [edi + 0x2ebc]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x1002bc0a
subss xmm0, dword [edi + 0x18]
comiss xmm1, xmm0
movss dword [edi + 0x2ebc], xmm0
jb 0x1002bc0a
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
test eax, eax
je 0x1002bbf9
mov eax, dword [0x1007f11c]
lea ecx, [ebp - 0xc]
mov dword [ebp - 0xc], 0
mov dword [eax + 0x2ebc], 0
call fcn.100200f0
mov ecx, dword [ebp - 0x24]
mov edx, 0x100766d4
mov dword [ebp - 0x18], eax
call fcn.1002feb0
mov dword [ebp - 0x24], eax
test eax, eax
je 0x1002bc00
push eax
push dword [ebp - 0xc]
push 1
push dword [ebp - 0x18]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
push dword [ebp - 0x24]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 0x14
jmp 0x1002bc00
mov byte [edi + 0x358], 1
mov dword [edi + 0x2ebc], 0
movss xmm0, dword [esi + 0x18]
inc dword [esi + 0x1a10]
cvtps2pd xmm0, xmm0
mov byte [esi + 0x1a1c], 1
mov dword [esi + 0x2e88], 0
mov dword [esi + 0x1a68], 0
addsd xmm0, qword [esi + 0x1a08]
movsd qword [esi + 0x1a08], xmm0
mov ecx, dword [esi + 0x2ea0]
test ecx, ecx
jns 0x1002bc69
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 + 0x2e9c]
call fcn.1000dfa0
mov dword [esi + 0x2e9c], 0
mov ecx, 0x78
mov eax, dword [esi + 0x3120]
movss xmm1, dword [esi + 0x18]
movaps xmm0, xmm1
movss xmm2, dword [0x100776c4]
subss xmm0, dword [esi + eax*4 + 0x2f40]
addss xmm0, dword [esi + 0x3124]
movss dword [esi + 0x3124], xmm0
movss dword [esi + eax*4 + 0x2f40], xmm1
mov eax, dword [esi + 0x3120]
inc eax
movss xmm1, dword [esi + 0x3124]
cdq
idiv ecx
comiss xmm1, dword [0x1007764c]
mov dword [esi + 0x3120], edx
movss xmm0, dword [0x10077788]
movss dword [ebp - 8], xmm0
jbe 0x1002bced
divss xmm1, dword [0x10077750]
movaps xmm0, xmm2
divss xmm0, xmm1
mov eax, dword [esi + 0x98]
movss dword [esi + 0x35c], xmm0
mov byte [eax], 1
mov eax, dword [0x1007f11c]
mov ecx, dword [eax + 0xa4]
test ecx, ecx
jne 0x1002bd18
mov eax, dword [eax + 0x98]
mov eax, dword [eax + 0x3c]
mov ecx, dword [eax]
call fcn.10025920
movss xmm0, dword [esi + 0x10]
mov eax, dword [esi + 0x15d4]
movss xmm1, dword [esi + 0x15d8]
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [esi + 0x14]
movss dword [ebp - 0x24], xmm0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
movups xmm0, xmmword [ebp - 0x30]
mov dword [esi + 0x1948], eax
movups xmmword [esi + 0x1950], xmm0
movss xmm0, dword [esi + 0x194c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1002bdf2
movss dword [esi + 0x194c], xmm1
xor edi, edi
nop dword [eax]
movd xmm1, edi
cvtdq2ps xmm1, xmm1
addss xmm1, xmm2
movaps xmm0, xmm1
subss xmm0, dword [esi + 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 [0x10077720]
cvtsd2ss xmm0, xmm0
divss xmm1, xmm0
cvttss2si edx, xmm1
cmp edx, 0xc
jge 0x1002bdc2
mov edx, 0xc
jmp 0x1002bdd0
cmp edx, 0x200
mov eax, 0x200
cmovg edx, eax
movss xmm2, dword [0x100776c4]
mov ecx, 0xff
cmp edx, ecx
movzx eax, dl
cmovl ecx, eax
mov byte [esi + edi + 0x19c4], cl
inc edi
cmp edi, 0x40
jl 0x1002bd80
xor edx, edx
mov dword [esi + 0x1960], 0
cmp byte [esi + 0x15d0], dl
je 0x1002be15
mov dword [esi + 0x1960], 1
mov edx, 1
cmp byte [esi + 0x15d1], 0
mov ecx, edx
je 0x1002be38
mov eax, dword [esi + 0x192c]
mov eax, dword [eax + 0x30]
test byte [eax + 4], 4
jne 0x1002be38
or ecx, 2
mov dword [esi + 0x1960], ecx
cmp byte [esi + 0x15d2], 0
je 0x1002be4a
or ecx, 4
mov dword [esi + 0x1960], ecx
test byte [esi + 0xc], 8
je 0x1002be59
or ecx, 8
mov dword [esi + 0x1960], ecx
lea ecx, [esi + 0x1d48]
call fcn.100415e0
mov eax, dword [esi + 0x98]
lea edx, [esi + 0x1d90]
mov ecx, dword [edx]
mov edi, dword [edx + 4]
mov dword [ebp - 0xc], edx
mov eax, dword [eax + 8]
mov dword [ebp - 0x10], eax
cmp ecx, edi
jne 0x1002beaa
inc ecx
test edi, edi
je 0x1002be95
mov eax, edi
cdq
sub eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 1
add eax, edi
jmp 0x1002be9a
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, edx
call fcn.1000dfa0
mov edx, dword [ebp - 0xc]
mov ecx, dword [edx]
mov eax, dword [edx + 8]
mov edi, dword [ebp - 0x10]
mov dword [eax + ecx*4], edi
lea edi, [esi + 0x1d48]
inc dword [edx]
mov ecx, edi
mov eax, dword [ebp - 0x10]
mov dword [edi + 0x70], eax
call fcn.10038460
mov eax, dword [edi + 0x2c]
lea ecx, [edi + 0x3c]
mov edx, dword [ecx]
movss xmm0, dword [eax + 0x18]
movss xmm1, dword [eax + 0x1c]
movss dword [ebp - 0x30], xmm0
maxss xmm0, dword [eax + 0x20]
movss dword [ebp - 0x2c], xmm1
maxss xmm1, dword [eax + 0x24]
mov eax, dword [ecx + 4]
movss dword [ebp - 0x28], xmm0
movss dword [ebp - 0x24], xmm1
cmp edx, eax
jne 0x1002bf2d
lea ecx, [edx + 1]
test eax, eax
je 0x1002bf15
cdq
sub eax, edx
lea edx, [edi + 0x3c]
sar eax, 1
add eax, dword [edx + 4]
jmp 0x1002bf1d
mov eax, 8
lea edx, [edi + 0x3c]
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, edx
call fcn.1000e6d0
lea ecx, [edi + 0x3c]
mov eax, dword [ecx]
mov edx, dword [ecx + 8]
add eax, eax
movaps xmm0, xmmword [ebp - 0x30]
movups xmmword [edx + eax*8], xmm0
inc dword [ecx]
mov ecx, edi
movups xmmword [edi + 0x60], xmm0
call fcn.100384f0
lea ecx, [esi + 0x1dd4]
call fcn.100415e0
mov eax, dword [esi + 0x98]
lea edx, [esi + 0x1e1c]
mov ecx, dword [edx]
mov edi, dword [edx + 4]
mov dword [ebp - 0x10], edx
mov eax, dword [eax + 8]
mov dword [ebp - 0xc], eax
cmp ecx, edi
jne 0x1002bf9a
inc ecx
test edi, edi
je 0x1002bf85
mov eax, edi
cdq
sub eax, edx
mov edx, dword [ebp - 0x10]
sar eax, 1
add eax, edi
jmp 0x1002bf8a
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, edx
call fcn.1000dfa0
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx]
mov eax, dword [edx + 8]
mov edi, dword [ebp - 0xc]
mov dword [eax + ecx*4], edi
lea edi, [esi + 0x1dd4]
inc dword [edx]
mov ecx, edi
mov eax, dword [ebp - 0xc]
mov dword [edi + 0x70], eax
call fcn.10038460
mov eax, dword [edi + 0x2c]
mov ecx, dword [edi + 0x3c]
movss xmm0, dword [eax + 0x18]
movss xmm1, dword [eax + 0x1c]
movss dword [ebp - 0x30], xmm0
maxss xmm0, dword [eax + 0x20]
movss dword [ebp - 0x2c], xmm1
maxss xmm1, dword [eax + 0x24]
mov eax, dword [edi + 0x40]
movss dword [ebp - 0x28], xmm0
movss dword [ebp - 0x24], xmm1
cmp ecx, eax
jne 0x1002c011
inc ecx
test eax, eax
je 0x1002bffe
cdq
sub eax, edx
sar eax, 1
add eax, dword [edi + 0x40]
jmp 0x1002c003
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
lea ecx, [edi + 0x3c]
call fcn.1000e6d0
mov eax, dword [edi + 0x3c]
lea ecx, [esi + 0x1dd4]
movaps xmm0, xmmword [ebp - 0x30]
shl eax, 4
add eax, dword [edi + 0x44]
movups xmmword [eax], xmm0
inc dword [edi + 0x3c]
movups xmmword [esi + 0x1e34], xmm0
call fcn.100384f0
mov edi, dword [0x1007f11c]
mov byte [esi + 0x1d00], 0
mov dword [esi + 0x1d04], 0
mov dword [esi + 0x1d0c], 0
mov dword [esi + 0x1d10], 0
mov dword [esi + 0x1d08], 0
mov dword [esi + 0x1d24], 0
mov dword [esi + 0x1d28], 0
mov dword [esi + 0x1d1c], 0
mov dword [esi + 0x1d20], 0
mov dword [esi + 0x1d14], 0
mov dword [esi + 0x1d18], 0
cmp byte [esi + 0x1e64], 0
je 0x1002c0db
mov eax, dword [esi + 0x1e7c]
cmp eax, dword [esi + 0x1aa4]
jne 0x1002c0db
cmp dword [edi + 0x1aa4], eax
jne 0x1002c0cc
mov dword [edi + 0x1aa8], eax
cmp dword [edi + 0x1adc], eax
jne 0x1002c0db
mov byte [edi + 0x1ae0], 1
cmp dword [esi + 0x1a94], 0
jne 0x1002c0f0
mov dword [esi + 0x1a9c], 0
jmp 0x1002c102
mov eax, dword [esi + 0x1a90]
test eax, eax
je 0x1002c10c
cmp dword [esi + 0x1aa4], eax
jne 0x1002c10c
mov dword [esi + 0x1aa0], 0
mov eax, dword [esi + 0x1a90]
test eax, eax
je 0x1002c146
movss xmm1, dword [esi + 0x18]
movaps xmm0, xmm1
addss xmm0, dword [esi + 0x1a9c]
movss dword [esi + 0x1a9c], xmm0
cmp dword [esi + 0x1aa4], eax
je 0x1002c146
addss xmm1, dword [esi + 0x1aa0]
movss dword [esi + 0x1aa0], xmm1
mov dword [esi + 0x1a94], eax
mov al, byte [esi + 0x1a99]
mov byte [esi + 0x1a9a], al
mov eax, dword [esi + 0x1aa4]
mov dword [esi + 0x1a90], 0
mov word [esi + 0x1a98], 0
mov byte [esi + 0x1a9b], 0
cmp dword [esi + 0x1aa8], eax
je 0x1002c191
cmp dword [esi + 0x1adc], eax
jne 0x1002c191
test eax, eax
je 0x1002c191
call fcn.10031c00
mov ecx, dword [esi + 0x1aa4]
test ecx, ecx
je 0x1002c1b0
movss xmm0, dword [esi + 0x18]
addss xmm0, dword [esi + 0x1aac]
movss dword [esi + 0x1aac], xmm0
mov eax, dword [esi + 0x1ad0]
movss xmm0, dword [esi + 0x18]
addss xmm0, dword [esi + 0x1aec]
mov dword [esi + 0x1ae4], eax
mov al, byte [esi + 0x1ab4]
mov byte [esi + 0x1ae1], al
mov eax, dword [esi + 0x2e48]
movss dword [esi + 0x1aec], xmm0
mov dword [esi + 0x1adc], ecx
mov dword [esi + 0x1aa8], 0
mov byte [esi + 0x1ab5], 0
mov byte [esi + 0x1ae0], 0
mov byte [esi + 0x1ab0], 0
test eax, eax
je 0x1002c21a
cmp ecx, eax
je 0x1002c21a
mov dword [esi + 0x2e48], 0
test ecx, ecx
jne 0x1002c236
mov dword [esi + 0x1ab8], ecx
mov dword [esi + 0x1abc], ecx
mov dword [esi + 0x1ac0], ecx
mov dword [esi + 0x1ac4], ecx
mov eax, dword [esi + 0x1ec8]
mov dword [esi + 0x1ecc], eax
xor eax, eax
mov dword [esi + 0x1ec8], 0
mov dword [esi + 0x1ec4], 0x7f7fffff
mov word [esi + 0x1e65], 0
mov dword [esi + 0x1ed4], 0
cmp byte [edi + 0xfc], al
movss xmm1, dword [0x10077794]
setne al
mov ecx, eax
or ecx, 2
cmp byte [edi + 0xfd], 0
cmove ecx, eax
mov edx, ecx
or edx, 4
cmp byte [edi + 0xfe], 0
cmove edx, ecx
mov ecx, 0x200
mov eax, edx
or eax, 8
cmp byte [edi + 0xff], 0
lea edi, [esi + 0xc58]
cmove eax, edx
lea edx, [esi + 0x458]
mov dword [esi + 0x37c], eax
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x14]
xor eax, eax
nop dword [eax]
cmp byte [esi + eax + 0x100], 0
je 0x1002c2f2
movss xmm0, dword [edx]
xorps xmm2, xmm2
comiss xmm2, xmm0
jbe 0x1002c2eb
xorps xmm0, xmm0
jmp 0x1002c2f5
addss xmm0, dword [esi + 0x18]
jmp 0x1002c2f5
movaps xmm0, xmm1
movss dword [edx], xmm0
inc eax
add edx, 4
cmp eax, 0x200
jl 0x1002c2d0
call fcn.10021f90
call fcn.1002d4f0
call fcn.1002cd60
mov edi, dword [0x1007f11c]
mov ecx, dword [edi + 0x1a7c]
test ecx, ecx
je 0x1002c418
mov eax, dword [edi + 0x1aa4]
mov dword [edi + 0x1aa8], eax
cmp dword [edi + 0x1adc], eax
jne 0x1002c342
mov byte [edi + 0x1ae0], 1
cmp byte [edi + 0xec], 0
mov ecx, dword [ecx + 0x30c]
je 0x1002c407
lea eax, [edi + 0xe4]
mov edx, eax
test eax, eax
jne 0x1002c367
lea edx, [edi + 0xe4]
movss xmm0, dword [edx]
movss xmm1, dword [0x100777ac]
comiss xmm0, xmm1
movss xmm2, dword [edx + 4]
jb 0x1002c407
comiss xmm2, xmm1
jb 0x1002c407
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 [ebp - 0x28], xmm1
movss dword [ebp - 0x24], xmm2
lahf
test ah, 0x44
jp 0x1002c3c9
movss xmm0, dword [ecx + 0x10]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x1002c3f4
test dword [ecx + 8], 0x100
jne 0x1002c3e7
xorps xmm0, xmm0
comiss xmm0, dword [edi + 0x2ebc]
jb 0x1002c3e7
mov eax, dword [edi + 0x1c]
mov dword [edi + 0x2ebc], eax
push 1
lea edx, [ebp - 0x28]
call fcn.10025630
add esp, 4
mov ecx, dword [edi + 0x1a7c]
call fcn.10030e80
mov edi, dword [0x1007f11c]
jmp 0x1002c450
call fcn.10031c00
mov dword [edi + 0x1a7c], 0
jmp 0x1002c450
mov ecx, dword [edi + 0x1ad0]
test ecx, ecx
je 0x1002c450
mov eax, dword [edi + 0x1aa4]
cmp dword [ecx + 0x48], eax
jne 0x1002c450
mov dword [edi + 0x1aa8], eax
cmp dword [edi + 0x1adc], eax
jne 0x1002c442
mov byte [edi + 0x1ae0], 1
cmp byte [edi + 0xec], 0
jne 0x1002c450
call fcn.10031c00
mov edx, dword [edi + 0x1bac]
sub edx, 1
js 0x1002c48b
mov eax, dword [edi + 0x1bb4]
lea ecx, [edx + edx*8]
lea eax, [eax + ecx*4]
add eax, 4
nop word [eax + eax]
mov ecx, dword [eax]
test ecx, ecx
je 0x1002c483
test dword [ecx + 8], 0x8000000
jne 0x1002c54d
sub eax, 0x24
sub edx, 1
jns 0x1002c470
cmp dword [esi + 0x1ccc], 0
xorps xmm6, xmm6
je 0x1002c4a8
movss xmm0, dword [esi + 0x1cdc]
comiss xmm0, xmm6
ja 0x1002c550
movss xmm0, dword [esi + 0x18]
mulss xmm0, dword [0x10077728]
movss xmm1, dword [esi + 0x1d44]
subss xmm1, xmm0
maxss xmm1, xmm6
movss dword [esi + 0x1d44], xmm1
mov dword [esi + 0x1e60], 0
mov dword [esi + 0x3130], 0xffffffff
mov dword [esi + 0x312c], 0xffffffff
mov dword [esi + 0x3128], 0xffffffff
mov dword [esi + 0x2ea8], 0x3f800000
mov dword [esi + 0x2eac], 0x3f800000
call fcn.1002d080
mov edi, dword [0x1007f11c]
mov eax, dword [edi + 0x1bc4]
test eax, eax
je 0x1002c572
cmp byte [eax + 0x82], 0
je 0x1002c572
test dword [eax + 8], 0x40000
jne 0x1002c572
cmp byte [edi + 0xfc], 0
jne 0x1002c572
mov ecx, dword [edi + 0x34]
test ecx, ecx
js 0x1002c572
call fcn.10031b10
test al, al
je 0x1002c572
mov al, 1
jmp 0x1002c574
xorps xmm6, xmm6
movss xmm1, dword [esi + 0x18]
mulss xmm1, dword [0x1007771c]
addss xmm1, dword [esi + 0x1d44]
minss xmm1, dword [0x100776c4]
jmp 0x1002c4c5
xor al, al
cmp dword [edi + 0x1aa4], 0
mov byte [edi + 0x1cfc], al
jne 0x1002c5d9
test al, al
je 0x1002c5d9
cmp dword [edi + 0x1bc8], 0
mov eax, dword [edi + 0x1bc4]
mov dword [edi + 0x1ce8], eax
mov dword [edi + 0x1cf4], 0x7fffffff
je 0x1002c5c8
mov ecx, dword [edi + 0x1c10]
cmp ecx, 0x7fffffff
je 0x1002c5c8
xor edx, edx
mov eax, 2
cmp byte [edi + 0xfd], dl
cmovne eax, edx
add eax, ecx
jmp 0x1002c5d3
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 0x1002c677
mov edx, dword [edi + 0x1cf4]
mov dword [edi + 0x1ce4], eax
cmp edx, 0x7fffffff
je 0x1002c633
mov ecx, dword [eax + 0x198]
cmp ecx, 0xffffffff
je 0x1002c633
inc ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [edi + 0x1ce8]
mov dword [edi + 0x1cec], edx
mov edx, dword [edi + 0x1cf8]
cmp edx, 0x7fffffff
je 0x1002c659
mov ecx, dword [eax + 0x19c]
cmp ecx, 0xffffffff
je 0x1002c659
inc ecx
lea eax, [ecx + edx]
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 0x1002c6ae
movss xmm0, dword [esi + 0xb8]
comiss xmm6, xmm0
ja 0x1002c6ae
movsd xmm1, qword [esi + 0x1a08]
cvtpd2ps xmm1, xmm1
subss xmm1, xmm0
movss dword [ebp - 8], xmm1
jmp 0x1002c6b3
movss xmm1, dword [ebp - 8]
cmp dword [esi + 0x1a2c], 0
mov dword [ebp - 0x10], 0
je 0x1002c85e
xor edi, edi
mov dword [ebp - 0xc], edi
nop dword [eax]
mov eax, dword [esi + 0x1a34]
xor ecx, ecx
mov edi, dword [edi + eax]
mov al, byte [edi + 0x82]
mov byte [edi + 0x83], al
mov word [edi + 0x8e], cx
mov byte [edi + 0x82], cl
mov byte [edi + 0x84], cl
test al, al
jne 0x1002c83d
cmp byte [edi + 0x34c], cl
jne 0x1002c83d
comiss xmm1, dword [edi + 0x250]
jbe 0x1002c83d
mov ecx, dword [edi + 0x278]
mov byte [edi + 0x34c], 1
mov eax, dword [ecx + 0x10]
mov dword [edi + 0x344], eax
mov eax, dword [ecx + 0x1c]
mov dword [edi + 0x348], eax
mov ecx, dword [edi + 0xc0]
test ecx, ecx
je 0x1002c778
mov eax, dword [0x1007f11c]
mov dword [edi + 0xbc], 0
mov dword [edi + 0xb8], 0
test eax, eax
je 0x1002c767
dec dword [eax + 0x370]
push ecx
call dword [ebp - 4]
add esp, 4
mov dword [edi + 0xc0], 0
mov ecx, dword [edi + 0x278]
call fcn.10041480
mov ecx, dword [edi + 0x180]
test ecx, ecx
je 0x1002c7c1
mov eax, dword [0x1007f11c]
mov dword [edi + 0x17c], 0
mov dword [edi + 0x178], 0
test eax, eax
je 0x1002c7b0
dec dword [eax + 0x370]
push ecx
call dword [ebp - 4]
add esp, 4
mov dword [edi + 0x180], 0
mov ecx, dword [edi + 0x1b4]
test ecx, ecx
je 0x1002c7ff
mov eax, dword [0x1007f11c]
mov dword [edi + 0x1b0], 0
mov dword [edi + 0x1ac], 0
test eax, eax
je 0x1002c7ee
dec dword [eax + 0x370]
push ecx
call dword [ebp - 4]
add esp, 4
mov dword [edi + 0x1b4], 0
mov ecx, dword [edi + 0x1c0]
test ecx, ecx
je 0x1002c83d
mov eax, dword [0x1007f11c]
mov dword [edi + 0x1bc], 0
mov dword [edi + 0x1b8], 0
test eax, eax
je 0x1002c82c
dec dword [eax + 0x370]
push ecx
call dword [ebp - 4]
add esp, 4
mov dword [edi + 0x1c0], 0
mov eax, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
inc eax
movss xmm1, dword [ebp - 8]
add edi, 4
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edi
cmp eax, dword [esi + 0x1a2c]
jne 0x1002c6d0
xor ecx, ecx
mov dword [ebp - 0x18], ecx
cmp dword [esi + 0x1f20], ecx
jle 0x1002c9c9
xor edi, edi
xorps xmm1, xmm1
xor edx, edx
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x24], edx
nop dword [eax]
mov eax, dword [esi + 0x1f28]
movss xmm0, dword [edx + eax]
comiss xmm0, xmm1
jb 0x1002c9aa
movss xmm2, dword [ebp - 8]
comiss xmm2, xmm0
jbe 0x1002c9aa
mov edi, dword [esi + 0x1f00]
add edi, dword [ebp - 0xc]
mov eax, dword [0x1007f11c]
mov dword [ebp - 0x10], eax
lea ecx, [edi + 0x1bc]
call fcn.10041340
mov ecx, dword [edi + 0x1e4]
test ecx, ecx
je 0x1002c8fc
mov eax, dword [0x1007f11c]
mov dword [edi + 0x1e0], 0
mov dword [edi + 0x1dc], 0
test eax, eax
je 0x1002c8eb
dec dword [eax + 0x370]
push ecx
call dword [ebp - 4]
add esp, 4
mov dword [edi + 0x1e4], 0
mov dword [edi + 0x1e8], 0
mov byte [edi + 0x20f], 1
mov ecx, dword [edi + 0x1b8]
test ecx, ecx
je 0x1002c94b
mov eax, dword [0x1007f11c]
mov dword [edi + 0x1b4], 0
mov dword [edi + 0x1b0], 0
test eax, eax
je 0x1002c93a
dec dword [eax + 0x370]
push ecx
call dword [ebp - 4]
add esp, 4
mov dword [edi + 0x1b8], 0
xor edx, edx
mov byte [edi + 0x219], 1
cmp dword [edi + 0x54], edx
jle 0x1002c974
xor ecx, ecx
or esi, 0xffffffff
nop
mov eax, dword [edi + 0xc]
lea ecx, [ecx + 0x68]
inc edx
mov word [eax + ecx - 0x18], si
cmp edx, dword [edi + 0x54]
jl 0x1002c960
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
xorps xmm1, xmm1
sub edi, dword [eax + 0x1f00]
mov eax, 0x78787879
imul edi
mov eax, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
sar edx, 8
mov ecx, edx
mov eax, dword [eax + 0x1f28]
shr ecx, 0x1f
add ecx, edx
mov edx, dword [ebp - 0x24]
mov dword [eax + ecx*4], 0xbf800000
mov ecx, dword [ebp - 0x18]
inc ecx
add edi, 0x220
add edx, 4
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x24], edx
cmp ecx, dword [esi + 0x1f20]
jl 0x1002c880
cmp byte [esi + 0x1a1f], 0
je 0x1002ca58
mov edi, dword [0x1007f11c]
mov eax, dword [edi + 0x1b9c]
test eax, eax
je 0x1002ca15
mov dword [edi + 0x1b98], 0
mov dword [edi + 0x1b94], 0
test edi, edi
je 0x1002ca04
dec dword [edi + 0x370]
push eax
call dword [ebp - 4]
add esp, 4
mov dword [edi + 0x1b9c], 0
mov ecx, dword [edi + 0x1ba8]
test ecx, ecx
je 0x1002ca53
mov eax, dword [0x1007f11c]
mov dword [edi + 0x1ba4], 0
mov dword [edi + 0x1ba0], 0
test eax, eax
je 0x1002ca42
dec dword [eax + 0x370]
push ecx
call dword [ebp - 4]
add esp, 4
mov dword [edi + 0x1ba8], 0
call fcn.10046060
mov eax, dword [esi + 0x1bc4]
mov byte [esi + 0x1a1f], 0
test eax, eax
je 0x1002cadc
cmp byte [eax + 0x83], 0
jne 0x1002cadc
mov eax, dword [0x1007f11c]
mov ecx, dword [eax + 0x1a38]
sub ecx, 1
mov dword [ebp - 0x24], ecx
js 0x1002cad5
mov eax, dword [eax + 0x1a40]
lea eax, [eax + ecx*4]
mov dword [ebp - 0x18], eax
mov edi, dword [eax]
test edi, edi
je 0x1002cac7
cmp byte [edi + 0x83], 0
je 0x1002cac7
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 0x1002ccf2
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
dec ecx
sub eax, 4
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x18], eax
test ecx, ecx
jns 0x1002ca91
xor ecx, ecx
call fcn.10030e80
mov ecx, dword [esi + 0x1a54]
test ecx, ecx
jns 0x1002cb02
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.1000dfa0
mov dword [esi + 0x1a50], 0
mov ecx, dword [esi + 0x1bbc]
test ecx, ecx
jns 0x1002cb32
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.1000e3e0
lea edi, [esi + 0x1b94]
mov dword [esi + 0x1bb8], 0
mov ecx, dword [edi + 4]
test ecx, ecx
jns 0x1002cb61
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.1000dfa0
mov dword [edi], 0
cmp dword [edi + 4], 0
jne 0x1002cb76
push 8
mov ecx, edi
call fcn.1000dfa0
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.1000dd70
mov ecx, dword [esi + 0x1bc4]
xor dl, dl
call fcn.10024790
mov edi, dword [0x1007f11c]
cmp byte [edi + 0x2f28], 0
mov dword [edi + 0x2f2c], 0
je 0x1002cc74
mov eax, dword [edi + 0x6c]
mov ecx, dword [edi + 0x1a94]
mov dword [ebp - 0xc], ecx
mov dword [edi + 0x1e60], 7
test eax, eax
js 0x1002cbea
mov ecx, eax
call fcn.10031b10
mov ecx, dword [ebp - 0xc]
test al, al
je 0x1002cbea
mov byte [edi + 0x2f28], 0
movss xmm0, dword [edi + 0x3f4]
ucomiss xmm0, dword [0x1007764c]
lahf
test ah, 0x44
jp 0x1002cc10
test ecx, ecx
je 0x1002cc10
mov dword [edi + 0x2f2c], ecx
mov byte [edi + 0x2f28], 0
or dword [edi + 0x1af0], 0x40
xor edx, edx
mov dword [edi + 0x1b44], 0x3f19999a
call fcn.10024ab0
mov edi, dword [ebp - 0xc]
push edi
push str.HoveredId:_0x_08X
call fcn.1004fb70
push str.Press_ESC_to_abort_picking.
call fcn.1004fb70
add esp, 0xc
xor ecx, ecx
mov eax, 0x10
test edi, edi
cmove ecx, eax
mov eax, dword [0x1007f11c]
add eax, 0x15dc
add eax, ecx
push str.Click_to_break_in_debugger_
push eax
call fcn.1004f0a0
add esp, 8
call fcn.10025b50
mov edi, dword [0x1007f11c]
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.10025c50
xor edi, edi
add esp, 4
cmp dword [esi + 0x2ef0], edi
jle 0x1002cce9
xor ecx, ecx
mov dword [ebp - 0x24], ecx
mov eax, dword [esi + 0x2ef8]
add eax, ecx
cmp dword [eax], 1
jne 0x1002ccda
push eax
mov eax, dword [eax + 8]
push esi
call eax
mov ecx, dword [ebp - 0x24]
add esp, 8
inc edi
add ecx, 0x10
mov dword [ebp - 0x24], ecx
cmp edi, dword [esi + 0x2ef0]
jl 0x1002ccc0
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov ecx, dword [edi + 0x318]
test ecx, ecx
je 0x1002cd09
cmp byte [ecx + 0x83], 0
jne 0x1002cad7
mov ecx, edi
jmp 0x1002cad7