Function at 0x406090
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, 0x28
push esi
mov esi, dword [0x4c8150]
push edi
mov dword [ebp - 8], esi
cmp byte [esi + 0xb3], 0
je 0x4060ca
test byte [esi + 0xc], 2
jne 0x4060ca
mov byte [esi + 0xb3], 0
cmp byte [esi + 0x2e1c], 0
jne 0x406124
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x40611d
push ecx
lea eax, [ebp - 4]
mov dword [ebp - 4], 0
push eax
call fcn.004030a0
mov edi, eax
add esp, 8
test edi, edi
je 0x40611d
mov edx, dword [ebp - 4]
mov ecx, edi
call fcn.004115f0
mov ecx, dword [0x4c8150]
test ecx, ecx
je 0x40610e
dec dword [ecx + 0x374]
push dword [0x4c8148]
push edi
call fcn.00402880
add esp, 8
mov byte [esi + 0x2e1c], 1
movss xmm0, dword [esi + 0x2e20]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x4061aa
subss xmm0, dword [esi + 0x18]
comiss xmm1, xmm0
movss dword [esi + 0x2e20], xmm0
jb 0x4061aa
mov edi, dword [esi + 0x20]
test edi, edi
je 0x406199
mov eax, dword [0x4c8150]
lea ecx, [ebp - 4]
mov dword [ebp - 4], 0
mov dword [eax + 0x2e20], 0
call fcn.00411890
mov edx, 0x4b9ae8
mov dword [ebp - 0xc], eax
mov ecx, edi
call fcn.00402fa0
mov edi, eax
test edi, edi
je 0x4061a0
push edi
push dword [ebp - 4]
push 1
push dword [ebp - 0xc]
call fcn.0047dcc3
push edi
call fcn.0047d191
add esp, 0x14
jmp 0x4061a0
mov byte [esi + 0x35c], 1
mov dword [esi + 0x2e20], 0
movss xmm1, dword [esi + 0x18]
inc dword [esi + 0x19c0]
cvtps2pd xmm0, xmm1
mov byte [esi + 0x19cc], 1
mov dword [esi + 0x2df0], 0
mov dword [esi + 0x1a14], 0
addsd xmm0, qword [esi + 0x19b8]
movsd qword [esi + 0x19b8], xmm0
mov ecx, dword [esi + 0x2e04]
test ecx, ecx
jns 0x40620e
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 + 0x2e00]
call fcn.004124e0
movss xmm1, dword [esi + 0x18]
mov dword [esi + 0x2e00], 0
movaps xmm0, xmm1
mov eax, dword [esi + 0x305c]
mov ecx, 0x78
movss xmm3, dword [0x4bdfa8]
xorps xmm2, xmm2
subss xmm0, dword [esi + eax*4 + 0x2e7c]
addss xmm0, dword [esi + 0x3060]
movss dword [esi + 0x3060], xmm0
movss dword [esi + eax*4 + 0x2e7c], xmm1
mov eax, dword [esi + 0x305c]
inc eax
movss xmm1, dword [esi + 0x3060]
cdq
idiv ecx
comiss xmm1, xmm2
mov dword [esi + 0x305c], edx
movss xmm0, dword [0x4be060]
movss dword [ebp - 0xc], xmm0
jbe 0x40628c
divss xmm1, dword [0x4be030]
movaps xmm0, xmm3
divss xmm0, xmm1
mov eax, dword [esi + 0x98]
mov edi, dword [0x4c8150]
movss dword [esi + 0x360], xmm0
mov byte [eax], 1
mov ecx, dword [edi + 0xa4]
mov dword [ebp - 4], ecx
test ecx, ecx
jne 0x4062be
mov eax, dword [edi + 0x98]
mov eax, dword [eax + 0x3c]
mov ecx, dword [eax]
mov dword [ebp - 4], ecx
mov edx, dword [edi + 0x1a18]
movaps xmm0, xmm3
mov dword [edi + 0x18dc], ecx
movss xmm1, dword [ecx + 0x10]
mulss xmm1, dword [edi + 0x9c]
mulss xmm1, dword [ecx + 0x48]
maxss xmm0, xmm1
movss dword [edi + 0x18e4], xmm0
test edx, edx
je 0x406318
mov eax, dword [0x4c8150]
movss xmm1, dword [eax + 0x18e4]
mov eax, dword [edx + 0x330]
mulss xmm1, dword [edx + 0x288]
test eax, eax
je 0x40631b
mulss xmm1, dword [eax + 0x288]
jmp 0x40631b
xorps xmm1, xmm1
movss dword [edi + 0x18e0], xmm1
mov edx, dword [ecx + 0x38]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov eax, dword [edx + 0x2c]
mov ecx, dword [edx + 0x30]
mov dword [edi + 0x18e8], eax
lea eax, [edx + 0x58]
mov dword [edi + 0x19b4], eax
mov eax, dword [ebp - 4]
mov dword [edi + 0x18f0], eax
mov dword [edi + 0x18ec], ecx
movss dword [edi + 0x18f4], xmm1
movss xmm0, dword [esi + 0x10]
mov eax, dword [esi + 0x15d4]
movss xmm1, dword [esi + 0x15d8]
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [esi + 0x14]
movss dword [ebp - 0x14], xmm0
movups xmm0, xmmword [ebp - 0x20]
mov dword [esi + 0x18f8], eax
movups xmmword [esi + 0x1900], xmm0
movss xmm0, dword [esi + 0x18fc]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x406422
movss dword [esi + 0x18fc], xmm1
xor edi, edi
nop
movd xmm1, edi
cvtdq2ps xmm1, xmm1
addss xmm1, xmm3
movaps xmm0, xmm1
subss xmm0, dword [esi + 0x18fc]
divss xmm0, xmm1
cvtps2pd xmm0, xmm0
call fcn.0049c2f0
movss xmm1, dword [0x4bdff8]
cvtsd2ss xmm0, xmm0
divss xmm1, xmm0
cvttss2si edx, xmm1
cmp edx, 0xc
jge 0x4063f2
mov edx, 0xc
jmp 0x406400
cmp edx, 0x200
mov eax, 0x200
cmovg edx, eax
movss xmm3, dword [0x4bdfa8]
mov ecx, 0xff
cmp edx, ecx
movzx eax, dl
cmovl ecx, eax
mov byte [edi + esi + 0x1974], cl
inc edi
cmp edi, 0x40
jl 0x4063b0
xor edx, edx
mov dword [esi + 0x1910], 0
cmp byte [esi + 0x15d0], dl
je 0x406445
mov dword [esi + 0x1910], 1
mov edx, 1
cmp byte [esi + 0x15d1], 0
mov ecx, edx
je 0x406468
mov eax, dword [esi + 0x18dc]
mov eax, dword [eax + 0x38]
test byte [eax + 4], 4
jne 0x406468
or ecx, 2
mov dword [esi + 0x1910], ecx
cmp byte [esi + 0x15d2], 0
je 0x40647a
or ecx, 4
mov dword [esi + 0x1910], ecx
test byte [esi + 0xc], 8
je 0x406489
or ecx, 8
mov dword [esi + 0x1910], ecx
lea edi, [esi + 0x1cd4]
mov ecx, edi
call fcn.0041a460
mov eax, dword [esi + 0x98]
mov edx, dword [edi + 0x48]
mov ecx, dword [edi + 0x4c]
mov eax, dword [eax + 8]
mov dword [ebp - 0x10], eax
cmp edx, ecx
jne 0x4064d8
inc edx
mov dword [ebp - 4], edx
test ecx, ecx
je 0x4064c2
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [ebp - 4]
sar eax, 1
add eax, ecx
jmp 0x4064c7
mov eax, 8
cmp eax, edx
lea ecx, [edi + 0x48]
cmovg edx, eax
push edx
call fcn.004124e0
mov edx, dword [edi + 0x48]
mov eax, dword [edi + 0x50]
mov ecx, dword [ebp - 0x10]
mov dword [eax + edx*4], ecx
inc dword [edi + 0x48]
lea edi, [esi + 0x1cd4]
mov dword [edi + 0x70], ecx
mov ecx, edi
call fcn.0041a8a0
mov eax, dword [edi + 0x28]
movss xmm0, dword [eax + 0x20]
movss xmm2, dword [eax + 0x18]
comiss xmm2, xmm0
movss xmm3, dword [eax + 0x24]
movss xmm1, dword [eax + 0x1c]
movss dword [ebp - 0x20], xmm2
movss dword [ebp - 0x1c], xmm1
movss dword [ebp - 0x18], xmm0
movss dword [ebp - 0x14], xmm3
jb 0x406529
movss dword [ebp - 0x18], xmm2
comiss xmm1, xmm3
jb 0x406533
movss dword [ebp - 0x14], xmm1
mov eax, dword [edi + 0x3c]
mov ecx, dword [edi + 0x40]
cmp eax, ecx
jne 0x40656b
lea edx, [eax + 1]
mov dword [ebp - 0x10], edx
test ecx, ecx
je 0x406555
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [ebp - 0x10]
sar eax, 1
add eax, ecx
jmp 0x40655a
mov eax, 8
cmp eax, edx
lea ecx, [edi + 0x3c]
cmovg edx, eax
push edx
call fcn.00421430
mov eax, dword [edi + 0x3c]
movaps xmm0, xmmword [ebp - 0x20]
lea ecx, [esi + 0x1cd4]
shl eax, 4
add eax, dword [edi + 0x44]
movups xmmword [eax], xmm0
inc dword [edi + 0x3c]
movups xmmword [esi + 0x1d34], xmm0
call fcn.0041a800
lea ecx, [esi + 0x1d70]
call fcn.0041a460
mov eax, dword [esi + 0x98]
lea ecx, [esi + 0x1db8]
mov edx, dword [ecx]
mov edi, dword [ecx + 4]
mov eax, dword [eax + 8]
mov dword [ebp - 4], eax
cmp edx, edi
jne 0x4065e6
lea ecx, [edx + 1]
test edi, edi
je 0x4065c5
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x4065ca
mov eax, 8
cmp eax, ecx
lea edi, [esi + 0x1d70]
cmovg ecx, eax
push ecx
lea ecx, [edi + 0x48]
call fcn.004124e0
mov edx, dword [edi + 0x48]
lea ecx, [edi + 0x48]
jmp 0x4065ec
lea edi, [esi + 0x1d70]
mov eax, dword [ecx + 8]
mov esi, dword [ebp - 4]
mov dword [eax + edx*4], esi
mov eax, esi
inc dword [ecx]
mov ecx, edi
mov dword [edi + 0x70], eax
call fcn.0041a8a0
mov eax, dword [edi + 0x28]
mov esi, dword [ebp - 8]
movss xmm0, dword [eax + 0x20]
movss xmm2, dword [eax + 0x18]
comiss xmm2, xmm0
movss xmm3, dword [eax + 0x24]
movss xmm1, dword [eax + 0x1c]
movss dword [ebp - 0x20], xmm2
movss dword [ebp - 0x1c], xmm1
movss dword [ebp - 0x18], xmm0
movss dword [ebp - 0x14], xmm3
jb 0x40663b
movss dword [ebp - 0x18], xmm2
comiss xmm1, xmm3
jb 0x406645
movss dword [ebp - 0x14], xmm1
mov eax, dword [edi + 0x3c]
mov ecx, dword [edi + 0x40]
cmp eax, ecx
jne 0x40667d
lea edx, [eax + 1]
mov dword [ebp - 0x10], edx
test ecx, ecx
je 0x406667
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [ebp - 0x10]
sar eax, 1
add eax, ecx
jmp 0x40666c
mov eax, 8
cmp eax, edx
lea ecx, [edi + 0x3c]
cmovg edx, eax
push edx
call fcn.00421430
mov eax, dword [edi + 0x3c]
movaps xmm0, xmmword [ebp - 0x20]
lea ecx, [esi + 0x1d70]
shl eax, 4
add eax, dword [edi + 0x44]
movups xmmword [eax], xmm0
inc dword [edi + 0x3c]
movups xmmword [esi + 0x1dd0], xmm0
call fcn.0041a800
mov edi, dword [0x4c8150]
mov dword [esi + 0x1cb0], 0
mov eax, dword [esi + 0x1cb0]
mov dword [esi + 0x1cb4], 0
mov ecx, dword [esi + 0x1cb4]
mov byte [esi + 0x1c8c], 0
mov dword [esi + 0x1c90], 0
mov dword [esi + 0x1c98], 0
mov dword [esi + 0x1c9c], 0
mov dword [esi + 0x1c94], 0
mov dword [esi + 0x1ca8], eax
mov dword [esi + 0x1cac], ecx
mov dword [esi + 0x1ca0], eax
mov dword [esi + 0x1ca4], ecx
cmp byte [esi + 0x1e10], 0
je 0x406740
mov eax, dword [esi + 0x1e28]
cmp eax, dword [esi + 0x1a50]
jne 0x406740
cmp dword [edi + 0x1a50], eax
jne 0x406731
mov dword [edi + 0x1a54], eax
cmp dword [edi + 0x1a8c], eax
jne 0x406740
mov byte [edi + 0x1a90], 1
cmp dword [esi + 0x1a40], 0
mov eax, dword [esi + 0x1a3c]
jne 0x40675b
mov dword [esi + 0x1a48], 0
jmp 0x406769
mov ecx, eax
test eax, eax
je 0x406775
cmp dword [esi + 0x1a50], eax
jne 0x406775
mov dword [esi + 0x1a4c], 0
mov ecx, eax
movss xmm2, dword [esi + 0x18]
mov eax, dword [esi + 0x1a50]
test ecx, ecx
je 0x4067af
movss xmm0, dword [esi + 0x1a48]
addss xmm0, xmm2
movss dword [esi + 0x1a48], xmm0
cmp eax, ecx
je 0x4067af
movaps xmm0, xmm2
addss xmm0, dword [esi + 0x1a4c]
movss dword [esi + 0x1a4c], xmm0
movaps xmm1, xmm2
mov dword [esi + 0x1a40], ecx
mov ecx, eax
mov dword [esi + 0x1a3c], 0
mov word [esi + 0x1a44], 0
cmp dword [esi + 0x1a54], eax
je 0x4067f1
cmp dword [esi + 0x1a8c], eax
jne 0x4067f1
test eax, eax
je 0x4067f1
call fcn.00404ce0
mov ecx, dword [esi + 0x1a50]
movss xmm1, dword [esi + 0x18]
test ecx, ecx
je 0x406808
movaps xmm0, xmm1
addss xmm0, dword [esi + 0x1a58]
movss dword [esi + 0x1a58], xmm0
mov eax, dword [esi + 0x1a80]
addss xmm1, dword [esi + 0x1a9c]
mov dword [esi + 0x1a94], eax
mov al, byte [esi + 0x1a60]
mov byte [esi + 0x1a91], al
mov eax, dword [esi + 0x2db0]
movss dword [esi + 0x1a9c], xmm1
mov dword [esi + 0x1a8c], ecx
mov dword [esi + 0x1a54], 0
mov byte [esi + 0x1a61], 0
mov byte [esi + 0x1a90], 0
mov byte [esi + 0x1a5c], 0
test eax, eax
je 0x40686d
cmp ecx, eax
je 0x40686d
mov dword [esi + 0x2db0], 0
test ecx, ecx
jne 0x406889
mov dword [esi + 0x1a64], ecx
mov dword [esi + 0x1a68], ecx
mov dword [esi + 0x1a70], ecx
mov dword [esi + 0x1a74], ecx
mov eax, dword [esi + 0x1e74]
mov dword [esi + 0x1e78], eax
xor eax, eax
mov dword [esi + 0x1e74], 0
mov dword [esi + 0x1e70], 0x7f7fffff
mov word [esi + 0x1e11], 0
mov dword [esi + 0x1e80], 0
cmp byte [edi + 0x100], al
movss xmm2, dword [0x4be06c]
setne al
mov ecx, eax
or ecx, 2
cmp byte [edi + 0x101], 0
cmove ecx, eax
mov edx, ecx
or edx, 4
cmp byte [edi + 0x102], 0
cmove edx, ecx
mov ecx, 0x200
mov eax, edx
or eax, 8
cmp byte [edi + 0x103], 0
lea edi, [esi + 0xc60]
cmove eax, edx
lea edx, [esi + 0x460]
mov dword [esi + 0x380], eax
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 8]
xor eax, eax
nop dword [eax]
cmp byte [esi + eax + 0x104], 0
je 0x406941
movss xmm1, dword [edx]
xorps xmm0, xmm0
comiss xmm0, xmm1
ja 0x406944
movss xmm0, dword [esi + 0x18]
addss xmm0, xmm1
jmp 0x406944
movaps xmm0, xmm2
movss dword [edx], xmm0
inc eax
add edx, 4
cmp eax, 0x200
jl 0x406920
call fcn.0040ee20
call fcn.00405590
call fcn.00405ea0
call fcn.00405130
mov edi, dword [0x4c8150]
mov edx, dword [edi + 0x1b38]
sub edx, 1
js 0x40699e
mov eax, dword [edi + 0x1b40]
lea ecx, [edx + edx*8]
lea eax, [eax + ecx*4]
add eax, 4
mov ecx, dword [eax]
test ecx, ecx
je 0x406996
test dword [ecx + 8], 0x8000000
jne 0x4069b8
sub eax, 0x24
sub edx, 1
jns 0x406987
cmp dword [esi + 0x1c58], 0
je 0x4069d7
movss xmm0, dword [esi + 0x1c68]
comiss xmm0, dword [0x4bdf38]
jbe 0x4069d7
movss xmm1, dword [esi + 0x18]
mulss xmm1, dword [0x4bdff4]
addss xmm1, dword [esi + 0x1cd0]
minss xmm1, dword [0x4bdfa8]
jmp 0x4069f8
movss xmm0, dword [esi + 0x18]
mulss xmm0, dword [0x4be000]
movss xmm1, dword [esi + 0x1cd0]
subss xmm1, xmm0
maxss xmm1, dword [0x4bdf38]
movss dword [esi + 0x1cd0], xmm1
mov dword [esi + 0x1e0c], 0
mov dword [esi + 0x306c], 0xffffffff
mov dword [esi + 0x3068], 0xffffffff
mov dword [esi + 0x3064], 0xffffffff
mov dword [esi + 0x2e0c], 0x3f800000
mov dword [esi + 0x2e10], 0x3f800000
call fcn.00405960
mov eax, dword [edi + 0x1b50]
test eax, eax
je 0x406a77
cmp byte [eax + 0x7a], 0
je 0x406a77
test dword [eax + 8], 0x40000
jne 0x406a77
cmp byte [edi + 0x100], 0
jne 0x406a77
mov ecx, dword [edi + 0x34]
test ecx, ecx
js 0x406a77
call fcn.004082a0
test al, al
je 0x406a77
mov al, 1
jmp 0x406a79
xor al, al
cmp dword [edi + 0x1a50], 0
mov byte [edi + 0x1c88], al
jne 0x406ade
test al, al
je 0x406ade
cmp dword [edi + 0x1b54], 0
mov eax, dword [edi + 0x1b50]
mov dword [edi + 0x1c74], eax
mov dword [edi + 0x1c80], 0x7fffffff
je 0x406acd
mov ecx, dword [edi + 0x1b9c]
cmp ecx, 0x7fffffff
je 0x406acd
xor edx, edx
mov eax, 2
cmp byte [edi + 0x101], dl
cmovne eax, edx
add eax, ecx
jmp 0x406ad8
movzx eax, byte [edi + 0x101]
neg eax
sbb eax, eax
mov dword [edi + 0x1c84], eax
mov eax, dword [edi + 0x1c74]
mov dword [edi + 0x1c70], 0
mov dword [edi + 0x1c7c], 0x7fffffff
mov dword [edi + 0x1c78], 0x7fffffff
test eax, eax
je 0x406b7c
mov edx, dword [edi + 0x1c80]
mov dword [edi + 0x1c70], eax
cmp edx, 0x7fffffff
je 0x406b38
mov ecx, dword [eax + 0x19c]
cmp ecx, 0xffffffff
je 0x406b38
inc ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [edi + 0x1c74]
mov dword [edi + 0x1c78], edx
mov edx, dword [edi + 0x1c84]
cmp edx, 0x7fffffff
je 0x406b5e
mov ecx, dword [eax + 0x1a0]
cmp ecx, 0xffffffff
je 0x406b5e
inc ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov dword [edi + 0x1c7c], edx
mov dword [edi + 0x1c74], 0
mov dword [edi + 0x1c84], 0x7fffffff
mov dword [edi + 0x1c80], 0x7fffffff
mov dword [edi + 0x1b9c], 0x7fffffff
movss xmm0, dword [esi + 0xb8]
comiss xmm0, dword [0x4bdf38]
jb 0x406bae
movsd xmm1, qword [esi + 0x19b8]
cvtpd2ps xmm1, xmm1
subss xmm1, xmm0
movss dword [ebp - 0xc], xmm1
jmp 0x406bb6
movss xmm1, dword [0x4be060]
xor ecx, ecx
mov dword [ebp - 8], ecx
cmp dword [esi + 0x19d8], ecx
je 0x406c15
mov eax, dword [esi + 0x19e0]
xor edx, edx
mov ecx, dword [eax + ecx*4]
mov al, byte [ecx + 0x7a]
mov byte [ecx + 0x7b], al
mov word [ecx + 0x86], dx
mov byte [ecx + 0x7a], dl
mov byte [ecx + 0x7c], dl
test al, al
jne 0x406bfb
cmp byte [ecx + 0x36c], dl
jne 0x406bfb
comiss xmm1, dword [ecx + 0x268]
jbe 0x406bfb
call fcn.00404a40
mov ecx, dword [ebp - 8]
movss xmm1, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 8], ecx
cmp ecx, dword [esi + 0x19d8]
jne 0x406bc3
mov edi, dword [0x4c8150]
mov eax, dword [esi + 0x1b50]
test eax, eax
je 0x406c88
cmp byte [eax + 0x7b], 0
jne 0x406c88
mov ecx, dword [edi + 0x19e4]
sub ecx, 1
mov dword [ebp - 0xc], ecx
js 0x406c81
mov eax, dword [edi + 0x19ec]
lea eax, [eax + ecx*4]
mov dword [ebp - 8], eax
nop
mov edi, dword [eax]
test edi, edi
je 0x406c73
cmp byte [edi + 0x7b], 0
je 0x406c73
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 0x406e11
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
dec ecx
sub eax, 4
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], eax
test ecx, ecx
jns 0x406c40
xor ecx, ecx
call fcn.0040cc70
mov ecx, dword [esi + 0x1a00]
test ecx, ecx
jns 0x406cae
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 + 0x19fc]
call fcn.004124e0
mov dword [esi + 0x19fc], 0
mov ecx, dword [esi + 0x1b48]
test ecx, ecx
jns 0x406cde
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 + 0x1b44]
call fcn.00412990
mov dword [esi + 0x1b44], 0
xor dl, dl
mov ecx, dword [esi + 0x1b50]
call fcn.0040daa0
mov edi, dword [0x4c8150]
cmp byte [edi + 0x2e74], 0
mov dword [edi + 0x2e78], 0
je 0x406dcb
mov eax, dword [edi + 0x6c]
mov ecx, dword [edi + 0x1a40]
mov dword [ebp - 4], ecx
mov dword [edi + 0x1e0c], 7
test eax, eax
js 0x406d41
mov ecx, eax
call fcn.004082a0
mov ecx, dword [ebp - 4]
test al, al
je 0x406d41
mov byte [edi + 0x2e74], 0
movss xmm0, dword [edi + 0x3fc]
ucomiss xmm0, dword [0x4bdf38]
lahf
test ah, 0x44
jp 0x406d67
test ecx, ecx
je 0x406d67
mov dword [edi + 0x2e78], ecx
mov byte [edi + 0x2e74], 0
or dword [edi + 0x1aa0], 0x40
xor edx, edx
mov dword [edi + 0x1af4], 0x3f19999a
call fcn.0040d880
mov edi, dword [ebp - 4]
push edi
push str.HoveredId:_0x_08X
call fcn.00422ca0
push str.Press_ESC_to_abort_picking.
call fcn.00422ca0
add esp, 0xc
xor ecx, ecx
mov eax, 0x10
test edi, edi
cmove ecx, eax
mov eax, dword [0x4c8150]
add eax, 0x15dc
add eax, ecx
push str.Click_to_break_in_debugger_
push eax
call fcn.00422d20
add esp, 8
call fcn.0040cba0
mov edi, dword [0x4c8150]
mov byte [esi + 0x19cd], 1
xor edx, edx
or dword [edi + 0x1aa0], 2
mov ecx, str.DebugDefault
push 0
mov dword [edi + 0x1ac0], 0x43c80000
mov dword [edi + 0x1ac4], 0x43c80000
mov dword [edi + 0x1aa8], 4
call fcn.0040a7a0
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov ecx, dword [edi + 0x340]
test ecx, ecx
je 0x406e25
cmp byte [ecx + 0x7b], 0
jne 0x406c83
mov ecx, edi
jmp 0x406c83