Function at 0x10041590
Capabilities:
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x34
push ebx
push esi
push edi
mov edi, dword [0x101541b4]
mov ebx, edi
mov dword [esp + 0x3c], ebx
mov ecx, dword [ebx + 0x2ec8]
lea eax, [ecx - 1]
mov dword [esp + 0x18], eax
test eax, eax
js 0x1004162c
lea edi, [eax + eax*4]
shl edi, 2
nop
mov ecx, dword [ebx + 0x2ed0]
cmp dword [ecx + edi + 4], 7
jne 0x10041614
mov esi, ecx
mov eax, 0x66666667
sub ecx, esi
add ecx, edi
imul ecx
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 [ebx + 0x2ec8]
sub eax, ecx
lea eax, [eax + eax*4]
lea eax, [eax*4 - 0x14]
push eax
lea eax, [edx + 0x14]
push eax
push edx
call fcn.100fe460
mov eax, dword [esp + 0x24]
add esp, 0xc
dec dword [ebx + 0x2ec8]
mov ecx, dword [ebx + 0x2ec8]
dec eax
sub edi, 0x14
mov dword [esp + 0x18], eax
test eax, eax
jns 0x100415c0
mov edi, dword [0x101541b4]
xor esi, esi
test ecx, ecx
jle 0x1004165d
xor edi, edi
mov eax, dword [ebx + 0x2ed0]
add eax, edi
cmp dword [eax + 4], 0
jne 0x1004164b
mov edx, eax
mov ecx, ebx
mov eax, dword [eax + 0xc]
call eax
inc esi
add edi, 0x14
cmp esi, dword [ebx + 0x2ec8]
jl 0x10041634
mov edi, dword [0x101541b4]
cmp byte [edi + 0xb4], 0
je 0x10041673
test byte [edi + 0xc], 2
jne 0x10041673
mov byte [edi + 0xb4], 0
mov esi, edi
cmp byte [esi + 0x2e91], 0
jne 0x100416d9
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x100416d2
push 0
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0
push eax
mov edx, 0x10138128
call fcn.1003d920
mov edi, eax
test edi, edi
je 0x100416cc
mov edx, dword [esp + 0x18]
mov ecx, edi
call fcn.1004ec40
mov ecx, dword [0x101541b4]
test ecx, ecx
je 0x100416bf
dec dword [ecx + 0x370]
mov edx, dword [0x101541b0]
mov ecx, edi
call fcn.1003cd90
mov edi, dword [0x101541b4]
mov byte [esi + 0x2e91], 1
movss xmm0, dword [esi + 0x2e94]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x1004176f
subss xmm0, dword [esi + 0x18]
comiss xmm1, xmm0
movss dword [esi + 0x2e94], xmm0
jb 0x1004176f
mov eax, dword [esi + 0x20]
mov dword [esp + 0x20], eax
test eax, eax
je 0x1004175e
lea ecx, [esp + 0x18]
mov dword [edi + 0x2e94], 0
mov dword [esp + 0x18], 0
call fcn.1004eee0
mov ecx, dword [esp + 0x20]
mov edx, 0x1013812c
mov dword [esp + 0x1c], eax
call fcn.1003d850
mov edi, eax
test edi, edi
je 0x10041756
push edi
push dword [esp + 0x1c]
push 1
push dword [esp + 0x28]
call fcn.10104c54
push edi
call fcn.10103d10
add esp, 0x14
mov edi, dword [0x101541b4]
jmp 0x10041765
mov byte [esi + 0x358], 1
mov dword [esi + 0x2e94], 0
movss xmm1, dword [ebx + 0x18]
inc dword [ebx + 0x1b38]
cvtps2pd xmm0, xmm1
mov byte [ebx + 0x1b44], 1
mov dword [ebx + 0x2e60], 0
mov dword [ebx + 0x1b90], 0
addsd xmm0, qword [ebx + 0x1b30]
movsd qword [ebx + 0x1b30], xmm0
mov ecx, dword [ebx + 0x2e78]
test ecx, ecx
jns 0x100417d9
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, [ebx + 0x2e74]
call fcn.1004f9f0
movss xmm1, dword [ebx + 0x18]
mov edi, dword [0x101541b4]
mov dword [ebx + 0x2e74], 0
movaps xmm0, xmm1
mov eax, dword [ebx + 0x3104]
mov ecx, 0x78
movss xmm3, dword [0x1014b344]
xorps xmm2, xmm2
movss dword [esp + 0x18], xmm3
subss xmm0, dword [ebx + eax*4 + 0x2f24]
addss xmm0, dword [ebx + 0x3108]
movss dword [ebx + 0x3108], xmm0
movss dword [ebx + eax*4 + 0x2f24], xmm1
mov eax, dword [ebx + 0x3104]
inc eax
movss xmm1, dword [ebx + 0x3108]
cdq
idiv ecx
comiss xmm1, xmm2
mov dword [ebx + 0x3104], edx
jbe 0x1004184f
movss xmm0, dword [0x1014b2c8]
divss xmm0, xmm1
jmp 0x10041852
movaps xmm0, xmm3
movss dword [ebx + 0x35c], xmm0
xor esi, esi
mov eax, dword [edi + 0x1cf4]
mov edx, dword [eax]
mov dword [edx], 5
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], ecx
cmp dword [edi + 0x1cec], esi
jle 0x10041950
mov eax, dword [edi + 0x1cf4]
mov edx, dword [eax + esi*4]
inc esi
mov eax, dword [edx + 0x88]
mov ecx, dword [edx + 0x8c]
movss xmm1, dword [edx + 4]
mov dword [edx + 0x78], eax
mov eax, dword [edx + 0x90]
mov dword [edx + 0x7c], ecx
mov ecx, dword [edx + 0x94]
mov dword [edx + 0x80], eax
mov dword [edx + 0x84], ecx
mov dword [edx + 0x90], 0
mov eax, dword [edx + 0x90]
mov dword [edx + 0x94], 0
mov ecx, dword [edx + 0x94]
mov dword [edx + 0x88], eax
mov dword [edx + 0x8c], ecx
addss xmm1, dword [edx + 0x78]
movss xmm0, dword [edx + 0x7c]
addss xmm0, dword [edx + 8]
movss dword [edx + 0x14], xmm1
movss xmm1, dword [edx + 0xc]
movss dword [edx + 0x18], xmm0
subss xmm1, dword [edx + 0x78]
movss xmm0, dword [edx + 0x10]
subss xmm0, dword [edx + 0x7c]
addss xmm1, dword [edx + 0x80]
addss xmm0, dword [edx + 0x84]
maxss xmm1, xmm2
maxss xmm0, xmm2
movss dword [edx + 0x1c], xmm1
movss dword [edx + 0x20], xmm0
cmp esi, dword [edi + 0x1cec]
jl 0x10041890
mov eax, dword [ebx + 0x98]
mov byte [eax + 0x10], 1
mov esi, dword [edi + 0xa4]
test esi, esi
jne 0x1004196f
mov eax, dword [edi + 0x98]
mov eax, dword [eax + 0x3c]
mov esi, dword [eax]
movss xmm7, dword [0x1014b1b4]
mov eax, dword [edi + 0x1b94]
mov dword [edi + 0x192c], esi
movss xmm0, dword [esi + 0x10]
mulss xmm0, dword [edi + 0x9c]
mulss xmm0, dword [esi + 0x40]
maxss xmm0, xmm7
movss dword [edi + 0x1934], xmm0
test eax, eax
je 0x100419c9
movss xmm0, dword [eax + 0x280]
mov eax, dword [eax + 0x31c]
mulss xmm0, dword [edi + 0x1934]
test eax, eax
je 0x100419cc
mulss xmm0, dword [eax + 0x280]
jmp 0x100419cc
movaps xmm0, xmm2
movss dword [edi + 0x1930], xmm0
movaps xmm4, xmm3
mov edx, dword [esi + 0x30]
movaps xmm5, xmm3
movss xmm3, dword [0x1014b3bc]
movaps xmm6, xmm3
mov eax, dword [edx + 0x2c]
mov ecx, dword [edx + 0x30]
mov dword [edi + 0x1938], eax
lea eax, [edx + 0x58]
mov dword [edi + 0x193c], ecx
mov dword [edi + 0x1b28], eax
mov dword [edi + 0x1940], esi
movss dword [edi + 0x1944], xmm0
mov edx, dword [ebx + 0x1cec]
test edx, edx
jle 0x10041a61
mov ecx, dword [ebx + 0x1cf4]
mov eax, dword [ecx]
add ecx, 4
movss xmm1, dword [eax + 4]
movss xmm2, dword [eax + 8]
movaps xmm0, xmm1
minss xmm0, xmm4
addss xmm1, dword [eax + 0xc]
movaps xmm4, xmm0
movaps xmm0, xmm2
minss xmm0, xmm5
maxss xmm1, xmm3
addss xmm2, dword [eax + 0x10]
movaps xmm5, xmm0
movaps xmm3, xmm1
maxss xmm2, xmm6
movaps xmm6, xmm2
sub edx, 1
jne 0x10041a21
mov eax, dword [ebx + 0x15d4]
movss xmm1, dword [ebx + 0x15d8]
movss dword [esp + 0x20], xmm4
movss dword [esp + 0x24], xmm5
movss dword [esp + 0x28], xmm3
movss dword [esp + 0x2c], xmm6
movups xmm0, xmmword [esp + 0x20]
mov dword [ebx + 0x1948], eax
movups xmmword [ebx + 0x1950], xmm0
movss xmm0, dword [ebx + 0x194c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10041b69
movss dword [ebx + 0x194c], xmm1
xor esi, esi
nop dword [eax + eax]
movd xmm0, esi
cvtdq2ps xmm0, xmm0
test esi, esi
je 0x10041b3e
movaps xmm1, xmm0
minss xmm1, dword [ebx + 0x194c]
divss xmm1, xmm0
movaps xmm0, xmm7
subss xmm0, xmm1
call fcn.10121bce
movss xmm1, dword [0x1014b20c]
sub esp, 8
divss xmm1, xmm0
movss dword [esp + 0x28], xmm1
fld dword [esp + 0x28]
fstp qword [esp]
call fcn.1011f260
movss xmm7, dword [0x1014b1b4]
add esp, 8
fstp dword [esp + 0x20]
cvttss2si eax, dword [esp + 0x20]
inc eax
cdq
sub eax, edx
and eax, 0xfffffffe
cmp eax, 4
jge 0x10041b2f
mov eax, 4
jmp 0x10041b40
cmp eax, 0x200
mov ecx, 0x200
cmovg eax, ecx
jmp 0x10041b40
xor eax, eax
mov byte [ebx + esi + 0x1ae8], al
inc esi
cmp esi, 0x40
jl 0x10041ac0
movss xmm0, dword [ebx + 0x194c]
mulss xmm0, dword [0x1014b314]
movss dword [ebx + 0x1ae4], xmm0
xor edx, edx
mov dword [ebx + 0x1960], 0
cmp byte [ebx + 0x15d0], dl
je 0x10041b8c
mov dword [ebx + 0x1960], 1
mov edx, 1
cmp byte [ebx + 0x15d1], 0
mov ecx, edx
je 0x10041bae
mov eax, dword [ebx + 0x192c]
mov eax, dword [eax + 0x30]
test byte [eax], 4
jne 0x10041bae
or ecx, 2
mov dword [ebx + 0x1960], ecx
cmp byte [ebx + 0x15d2], 0
je 0x10041bc0
or ecx, 4
mov dword [ebx + 0x1960], ecx
test byte [ebx + 0xc], 8
je 0x10041bcf
or ecx, 8
mov dword [ebx + 0x1960], ecx
xor esi, esi
cmp dword [ebx + 0x1cec], esi
jle 0x10041c02
nop dword [eax]
mov eax, dword [ebx + 0x1cf4]
push 0x2c
push 0
mov eax, dword [eax + esi*4]
add eax, 0x34
push eax
call fcn.100fde00
inc esi
add esp, 0xc
cmp esi, dword [ebx + 0x1cec]
jl 0x10041be0
cmp byte [ebx + 0x1e3c], 0
je 0x10041c36
mov eax, dword [ebx + 0x1e54]
cmp eax, dword [ebx + 0x1bc8]
jne 0x10041c36
cmp dword [edi + 0x1bc8], eax
jne 0x10041c27
mov dword [edi + 0x1bcc], eax
cmp dword [edi + 0x1c04], eax
jne 0x10041c36
mov byte [edi + 0x1c08], 1
cmp dword [ebx + 0x1bb8], 0
mov eax, dword [ebx + 0x1bb4]
jne 0x10041c51
mov dword [ebx + 0x1bc0], 0
jmp 0x10041c5f
mov edx, eax
test eax, eax
je 0x10041c6b
cmp dword [ebx + 0x1bc8], eax
jne 0x10041c6b
mov dword [ebx + 0x1bc4], 0
mov edx, eax
movss xmm2, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1bc8]
test edx, edx
je 0x10041ca4
movaps xmm0, xmm2
addss xmm0, dword [ebx + 0x1bc0]
movss dword [ebx + 0x1bc0], xmm0
cmp ecx, edx
je 0x10041ca4
movaps xmm0, xmm2
addss xmm0, dword [ebx + 0x1bc4]
movss dword [ebx + 0x1bc4], xmm0
movaps xmm1, xmm2
mov al, byte [ebx + 0x1bbd]
mov dword [ebx + 0x1bb8], edx
mov edx, ecx
mov byte [ebx + 0x1bbe], al
mov dword [ebx + 0x1bb4], 0
mov word [ebx + 0x1bbc], 0
mov byte [ebx + 0x1bbf], 0
cmp dword [ebx + 0x1bcc], ecx
je 0x10041cf9
cmp dword [ebx + 0x1c04], ecx
jne 0x10041cf9
test ecx, ecx
je 0x10041cf9
call fcn.10040210
mov edx, dword [ebx + 0x1bc8]
movss xmm1, dword [ebx + 0x18]
test edx, edx
je 0x10041d10
movaps xmm0, xmm1
addss xmm0, dword [ebx + 0x1bd0]
movss dword [ebx + 0x1bd0], xmm0
mov eax, dword [ebx + 0x1bf8]
addss xmm1, dword [ebx + 0x1c14]
mov dword [ebx + 0x1c0c], eax
mov al, byte [ebx + 0x1bd8]
mov byte [ebx + 0x1c09], al
mov eax, dword [ebx + 0x2e20]
movss dword [ebx + 0x1c14], xmm1
mov dword [ebx + 0x1c04], edx
mov dword [ebx + 0x1bcc], 0
mov byte [ebx + 0x1bd9], 0
mov byte [ebx + 0x1c08], 0
mov byte [ebx + 0x1bd4], 0
test eax, eax
je 0x10041d75
cmp edx, eax
je 0x10041d75
mov dword [ebx + 0x2e20], 0
test edx, edx
jne 0x10041d91
mov dword [ebx + 0x1bdc], edx
mov dword [ebx + 0x1be0], edx
mov dword [ebx + 0x1be8], edx
mov dword [ebx + 0x1bec], edx
mov eax, dword [ebx + 0x1ea0]
mov dword [ebx + 0x1ea4], eax
xor eax, eax
mov dword [ebx + 0x1ea0], 0
mov dword [ebx + 0x1e9c], 0x7f7fffff
mov word [ebx + 0x1e3d], 0
mov dword [ebx + 0x1eac], 0
cmp byte [edi + 0xfc], al
movss xmm1, dword [0x1014b378]
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, [ebx + 0xc58]
cmove eax, edx
mov dword [ebx + 0x37c], eax
lea eax, [ebx + 0x458]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
cmp byte [ebx + ecx + 0x100], 0
je 0x10041e43
movss xmm0, dword [eax]
xorps xmm2, xmm2
comiss xmm2, xmm0
jbe 0x10041e3c
xorps xmm0, xmm0
jmp 0x10041e46
addss xmm0, dword [ebx + 0x18]
jmp 0x10041e46
movaps xmm0, xmm1
movss dword [eax], xmm0
inc ecx
add eax, 4
cmp ecx, 0x200
jl 0x10041e21
call fcn.1004bd50
call fcn.10040b80
call fcn.100413c0
mov esi, dword [0x101541b4]
mov ecx, dword [esi + 0x1ba0]
test ecx, ecx
je 0x10041f50
mov eax, dword [esi + 0x1bc8]
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x10041e94
mov byte [esi + 0x1c08], 1
cmp byte [esi + 0xec], 0
mov edi, dword [ecx + 0x320]
je 0x10041f3f
movss xmm2, dword [esi + 0xe4]
movss xmm0, dword [0x1014b3b8]
comiss xmm2, xmm0
movss xmm1, dword [esi + 0xe8]
jb 0x10041f3f
comiss xmm1, xmm0
jb 0x10041f3f
subss xmm2, dword [esi + 0x1bf0]
movss xmm0, dword [edi + 0xc]
subss xmm1, dword [esi + 0x1bf4]
ucomiss xmm0, xmm2
movss dword [esp + 0x20], xmm2
movss dword [esp + 0x24], xmm1
lahf
test ah, 0x44
jp 0x10041f01
movss xmm0, dword [edi + 0x10]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10041f32
test dword [edi + 8], 0x100
jne 0x10041f1f
xorps xmm0, xmm0
comiss xmm0, dword [esi + 0x2e94]
jb 0x10041f1f
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x2e94], eax
push 1
lea edx, [esp + 0x24]
mov ecx, edi
call fcn.10049070
mov ecx, dword [esi + 0x1ba0]
call fcn.10048c60
mov esi, dword [0x101541b4]
jmp 0x10041f88
call fcn.10040210
mov dword [esi + 0x1ba0], 0
jmp 0x10041f88
mov ecx, dword [esi + 0x1bf8]
test ecx, ecx
je 0x10041f88
mov eax, dword [esi + 0x1bc8]
cmp dword [ecx + 0x50], eax
jne 0x10041f88
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x10041f7a
mov byte [esi + 0x1c08], 1
cmp byte [esi + 0xec], 0
jne 0x10041f88
call fcn.10040210
mov edx, dword [esi + 0x1cd4]
sub edx, 1
js 0x10041fb9
mov eax, dword [esi + 0x1cdc]
lea ecx, [edx + edx*8]
lea eax, [eax + ecx*4]
add eax, 4
mov ecx, dword [eax]
test ecx, ecx
je 0x10041fb1
test dword [ecx + 8], 0x8000000
jne 0x10041fd3
sub eax, 0x24
sub edx, 1
jns 0x10041fa2
cmp dword [ebx + 0x1e00], 0
je 0x10041ff2
movss xmm0, dword [ebx + 0x1e10]
comiss xmm0, dword [0x1014266c]
jbe 0x10041ff2
movss xmm1, dword [ebx + 0x18]
mulss xmm1, dword [0x1014b23c]
addss xmm1, dword [ebx + 0x1e34]
minss xmm1, dword [0x1014b1b4]
jmp 0x10042013
movss xmm0, dword [ebx + 0x18]
mulss xmm0, dword [0x1014b258]
movss xmm1, dword [ebx + 0x1e34]
subss xmm1, xmm0
maxss xmm1, dword [0x1014266c]
movss dword [ebx + 0x1e34], xmm1
mov dword [ebx + 0x1e38], 0
mov dword [ebx + 0x3114], 0xffffffff
mov dword [ebx + 0x3110], 0xffffffff
mov dword [ebx + 0x310c], 0xffffffff
mov dword [ebx + 0x2e80], 0x3f800000
mov dword [ebx + 0x2e84], 0x3f800000
call fcn.10040f10
mov edi, dword [0x101541b4]
mov dword [esp + 0x14], edi
mov esi, dword [edi + 0x1cf8]
test esi, esi
je 0x100420a1
cmp byte [esi + 0x8a], 0
je 0x100420a1
test dword [esi + 8], 0x40000
jne 0x100420a1
cmp byte [edi + 0xfc], 0
jne 0x100420a1
mov ecx, dword [edi + 0x34]
test ecx, ecx
js 0x100420a1
mov dl, 1
call fcn.10043ff0
test al, al
je 0x100420a1
mov al, dl
jmp 0x100420a3
xor al, al
cmp dword [edi + 0x1bc8], 0
mov byte [edi + 0x1e30], al
jne 0x10042102
test al, al
je 0x10042102
cmp dword [edi + 0x1cfc], 0
mov dword [edi + 0x1e1c], esi
mov dword [edi + 0x1e28], 0x7fffffff
je 0x100420f1
mov ecx, dword [edi + 0x1d44]
cmp ecx, 0x7fffffff
je 0x100420f1
xor edx, edx
mov eax, 2
cmp byte [edi + 0xfd], dl
cmovne eax, edx
add eax, ecx
jmp 0x100420fc
movzx eax, byte [edi + 0xfd]
neg eax
sbb eax, eax
mov dword [edi + 0x1e2c], eax
mov esi, dword [edi + 0x1e1c]
mov dword [edi + 0x1e18], 0
mov dword [edi + 0x1e24], 0x7fffffff
mov dword [edi + 0x1e20], 0x7fffffff
test esi, esi
je 0x10042196
mov eax, dword [edi + 0x1e28]
mov dword [edi + 0x1e18], esi
cmp eax, 0x7fffffff
je 0x10042154
mov ecx, dword [esi + 0x1a8]
cmp ecx, 0xffffffff
je 0x10042154
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [edi + 0x1e20], edx
mov eax, dword [edi + 0x1e2c]
cmp eax, 0x7fffffff
je 0x10042178
mov ecx, dword [esi + 0x1ac]
cmp ecx, 0xffffffff
je 0x10042178
inc ecx
add eax, ecx
cdq
idiv ecx
mov dword [edi + 0x1e24], edx
mov dword [edi + 0x1e1c], 0
mov dword [edi + 0x1e2c], 0x7fffffff
mov dword [edi + 0x1e28], 0x7fffffff
mov dword [edi + 0x1d44], 0x7fffffff
cmp byte [ebx + 0x1b47], 0
jne 0x100421d1
movss xmm0, dword [ebx + 0xb8]
xorps xmm1, xmm1
comiss xmm1, xmm0
ja 0x100421d1
movsd xmm1, qword [ebx + 0x1b30]
cvtpd2ps xmm1, xmm1
subss xmm1, xmm0
movss dword [esp + 0x18], xmm1
jmp 0x100421d9
movss xmm1, dword [0x1014b344]
xor esi, esi
mov dword [esp + 0x1c], esi
cmp dword [ebx + 0x1b54], esi
je 0x1004238d
nop dword [eax + eax]
mov eax, dword [ebx + 0x1b5c]
xor ecx, ecx
mov esi, dword [eax + esi*4]
mov al, byte [esi + 0x8a]
mov byte [esi + 0x8b], al
mov word [esi + 0x96], cx
mov byte [esi + 0x8a], cl
mov byte [esi + 0x8c], cl
test al, al
jne 0x1004236e
cmp byte [esi + 0x360], cl
jne 0x1004236e
comiss xmm1, dword [esi + 0x260]
jbe 0x1004236e
mov ecx, dword [esi + 0x288]
mov byte [esi + 0x360], 1
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x358], eax
mov eax, dword [ecx + 0x1c]
mov dword [esi + 0x35c], eax
mov ecx, dword [esi + 0xc8]
test ecx, ecx
je 0x10042297
mov dword [esi + 0xc4], 0
mov dword [esi + 0xc0], 0
test edi, edi
je 0x10042282
dec dword [edi + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0xc8], 0
mov ecx, dword [esi + 0x288]
call fcn.10053000
mov ecx, dword [esi + 0x190]
test ecx, ecx
je 0x100422e4
mov eax, dword [0x101541b4]
mov dword [esi + 0x18c], 0
mov dword [esi + 0x188], 0
test eax, eax
je 0x100422cf
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x190], 0
mov ecx, dword [esi + 0x1c4]
test ecx, ecx
je 0x10042326
mov eax, dword [0x101541b4]
mov dword [esi + 0x1c0], 0
mov dword [esi + 0x1bc], 0
test eax, eax
je 0x10042311
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1c4], 0
mov ecx, dword [esi + 0x1d0]
test ecx, ecx
je 0x10042368
mov eax, dword [0x101541b4]
mov dword [esi + 0x1cc], 0
mov dword [esi + 0x1c8], 0
test eax, eax
je 0x10042353
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1d0], 0
mov edi, dword [0x101541b4]
mov esi, dword [esp + 0x1c]
movss xmm1, dword [esp + 0x18]
inc esi
mov dword [esp + 0x1c], esi
cmp esi, dword [ebx + 0x1b54]
jne 0x100421f0
mov dword [esp + 0x14], edi
xor ecx, ecx
mov dword [esp + 0x1c], ecx
cmp dword [ebx + 0x1ef8], ecx
jle 0x100424fd
xor edx, edx
xorps xmm1, xmm1
mov dword [esp + 0x20], edx
nop dword [eax + eax]
mov eax, dword [ebx + 0x1f00]
movss xmm0, dword [eax + ecx*4]
comiss xmm0, xmm1
jb 0x100424e2
movss xmm2, dword [esp + 0x18]
comiss xmm2, xmm0
jbe 0x100424e2
mov esi, dword [ebx + 0x1ed8]
add esi, edx
lea ecx, [esi + 0x1c4]
call fcn.10055c40
mov ecx, dword [esi + 0x1ec]
test ecx, ecx
je 0x10042428
mov eax, dword [0x101541b4]
mov dword [esi + 0x1e8], 0
mov dword [esi + 0x1e4], 0
test eax, eax
je 0x10042413
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1ec], 0
mov dword [esi + 0x1f0], 0
mov byte [esi + 0x218], 1
mov ecx, dword [esi + 0x1c0]
test ecx, ecx
je 0x1004247b
mov eax, dword [0x101541b4]
mov dword [esi + 0x1bc], 0
mov dword [esi + 0x1b8], 0
test eax, eax
je 0x10042466
dec dword [eax + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1c0], 0
xor edx, edx
mov byte [esi + 0x222], 1
cmp dword [esi + 0x54], edx
jle 0x100424a9
xor ecx, ecx
or edi, 0xffffffff
nop
mov eax, dword [esi + 0xc]
lea ecx, [ecx + 0x68]
inc edx
mov word [eax + ecx - 0x18], di
cmp edx, dword [esi + 0x54]
jl 0x10042490
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x14]
sub esi, dword [edi + 0x1ed8]
mov eax, 0x76b981db
imul esi
xorps xmm1, xmm1
mov eax, dword [edi + 0x1f00]
mov edi, dword [0x101541b4]
sar edx, 8
mov ecx, edx
mov dword [esp + 0x14], edi
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0xbf800000
mov ecx, dword [esp + 0x1c]
inc ecx
add edx, 0x228
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
cmp ecx, dword [ebx + 0x1ef8]
jl 0x100423b0
cmp byte [ebx + 0x1b47], 0
je 0x10042591
mov esi, edi
mov ecx, dword [esi + 0x1cc4]
test ecx, ecx
je 0x1004254f
mov dword [esi + 0x1cc0], 0
mov dword [esi + 0x1cbc], 0
test esi, esi
je 0x10042534
dec dword [esi + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov edi, dword [0x101541b4]
mov dword [esi + 0x1cc4], 0
mov ecx, dword [esi + 0x1cd0]
test ecx, ecx
je 0x1004258c
mov dword [esi + 0x1ccc], 0
mov dword [esi + 0x1cc8], 0
test edi, edi
je 0x10042577
dec dword [edi + 0x370]
mov edx, dword [0x101541b0]
call fcn.1003cd90
mov dword [esi + 0x1cd0], 0
call fcn.1005dea0
mov eax, dword [ebx + 0x1cf8]
mov byte [ebx + 0x1b47], 0
test eax, eax
je 0x100425b4
cmp byte [eax + 0x8b], 0
jne 0x100425b4
xor edx, edx
xor ecx, ecx
call fcn.10048df0
mov ecx, dword [ebx + 0x1b7c]
test ecx, ecx
jns 0x100425da
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, [ebx + 0x1b78]
call fcn.1004f9f0
mov dword [ebx + 0x1b78], 0
mov ecx, dword [ebx + 0x1ce4]
test ecx, ecx
jns 0x1004260a
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, [ebx + 0x1ce0]
call fcn.1004fcf0
lea esi, [ebx + 0x1cbc]
mov dword [ebx + 0x1ce0], 0
mov ecx, dword [esi + 4]
test ecx, ecx
jns 0x1004263c
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, esi
call fcn.1004f9f0
mov ecx, dword [esi + 4]
xor edx, edx
mov dword [esi], 0
test ecx, ecx
jne 0x10042653
push 8
mov ecx, esi
call fcn.1004f9f0
mov edx, dword [esi]
mov eax, dword [esi + 8]
lea ecx, [ebx + 0x1cc8]
push 0
mov dword [eax + edx*4], 0
inc dword [esi]
call fcn.1004f7c0
mov ecx, dword [ebx + 0x1cf8]
xor dl, dl
call fcn.1004a7d0
mov esi, dword [0x101541b4]
cmp byte [esi + 0x2f0c], 0
mov dword [esi + 0x2f10], 0
je 0x10042748
mov ecx, dword [esi + 0x6c]
mov edi, dword [esi + 0x1bb8]
mov dword [esi + 0x1e38], 7
test ecx, ecx
js 0x100426bf
mov dl, 1
call fcn.10043ff0
test al, al
je 0x100426bf
mov byte [esi + 0x2f0c], 0
movss xmm0, dword [esi + 0x3f4]
ucomiss xmm0, dword [0x1014266c]
lahf
test ah, 0x44
jp 0x100426e5
test edi, edi
je 0x100426e5
mov dword [esi + 0x2f10], edi
mov byte [esi + 0x2f0c], 0
or dword [esi + 0x1c18], 0x40
xor edx, edx
xor ecx, ecx
mov dword [esi + 0x1c6c], 0x3f19999a
call fcn.1004a4d0
push edi
push str.HoveredId:_0x_08X
call fcn.1005f970
push str.Press_ESC_to_abort_picking.
call fcn.1005f970
add esp, 0xc
xor ecx, ecx
mov eax, 0x10
test edi, edi
cmove ecx, eax
mov eax, dword [0x101541b4]
add eax, 0x15dc
add eax, ecx
push str.Click_to_break_in_debugger_
push eax
call fcn.1005fa10
add esp, 8
call fcn.10048bd0
mov esi, dword [0x101541b4]
mov byte [ebx + 0x1b45], 1
xor edx, edx
or dword [esi + 0x1c18], 2
mov ecx, str.DebugDefault
push 0
mov dword [esi + 0x1c38], 0x43c80000
mov dword [esi + 0x1c3c], 0x43c80000
mov dword [esi + 0x1c20], 4
call fcn.10046970
xor edi, edi
cmp dword [ebx + 0x2ec8], edi
jle 0x100427b3
xor esi, esi
nop
mov eax, dword [ebx + 0x2ed0]
add eax, esi
cmp dword [eax + 4], 1
jne 0x100427a7
mov edx, eax
mov ecx, ebx
mov eax, dword [eax + 0xc]
call eax
inc edi
add esi, 0x14
cmp edi, dword [ebx + 0x2ec8]
jl 0x10042790
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret