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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0xb8
mov eax, dword [0x1005200c]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, ecx
mov esi, edx
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebx + 0x10]
cmp byte [edi + 0x67], 0
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x24], ecx
je 0x10041e8b
mov ecx, edi
call fcn.10040b40
mov ecx, dword [ebp - 0x24]
mov eax, dword [0x100cbe88]
mov dword [ebp - 0x28], eax
mov eax, dword [eax + 0x3f14]
mov dword [ebp - 0x4c], eax
cmp byte [eax + 0xc8], 0
jne 0x10041ed7
push ecx
mov edx, esi
call fcn.10041710
mov ecx, dword [ebp - 0x54]
add esp, 4
mov dword [ebp - 0x1c], eax
test ecx, ecx
je 0x10041eec
cmp byte [ecx], 0
jne 0x10041eec
xorps xmm0, xmm0
lea ecx, [ebp - 0x14]
push 0x18
push 0
mov edx, eax
movups xmmword [ebp - 0x14], xmm0
call fcn.10014ee0
add esp, 8
xor al, al
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10047d31
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x40], eax
test eax, 0x100000
je 0x10041f00
xor ecx, ecx
mov dword [ebp - 0x54], ecx
jmp 0x10041f0c
test ecx, ecx
jne 0x10041f0e
or eax, 0x100000
mov dword [ebp - 0x40], eax
test ecx, ecx
setne al
lea ecx, [ebp - 0x78]
movzx eax, al
mov edx, esi
push eax
call fcn.10042ba0
mov ecx, dword [ebp - 0x1c]
add esp, 4
test ecx, ecx
je 0x10041f54
mov edx, dword [edi]
xor eax, eax
test edx, edx
jle 0x10041f54
mov esi, dword [edi + 8]
mov dword [ebp - 0x34], esi
cmp dword [esi], ecx
je 0x10041f48
inc eax
add esi, 0x2c
mov dword [ebp - 0x34], esi
cmp eax, edx
jl 0x10041f37
jmp 0x10041f54
mov byte [ebp - 0x15], 0
test esi, esi
jne 0x10041fe9
or eax, 0xffffffff
mov dword [ebp - 0xa4], 0
mov word [ebp - 0x86], ax
xorps xmm0, xmm0
mov word [ebp - 0x88], ax
mov ecx, edi
lea eax, [ebp - 0xac]
movlpd qword [ebp - 0xac], xmm0
push eax
movlpd qword [ebp - 0x98], xmm0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x9c], 0xffffffff
mov dword [ebp - 0xa0], 0xffffffff
mov dword [ebp - 0x8c], 0xffffffff
call fcn.100435b0
imul esi, dword [edi], 0x2c
mov eax, dword [edi + 8]
movss xmm0, dword [ebp - 0x78]
add eax, 0xffffffd4
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 0x15], 1
add esi, eax
mov dword [ebp - 0x34], esi
mov dword [esi], ecx
movss dword [esi + 0x18], xmm0
mov byte [edi + 0x69], 1
jmp 0x10041fee
movss xmm0, dword [ebp - 0x78]
mov eax, dword [edi + 8]
mov ecx, esi
sub ecx, eax
mov eax, 0x2e8ba2e9
imul ecx
mov ecx, dword [ebp - 0x28]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov word [edi + 0x6c], ax
movss dword [esi + 0x1c], xmm0
mov ax, word [edi + 0x6a]
mov word [esi + 0x24], ax
inc word [edi + 0x6a]
mov eax, dword [ecx + 0x3eb0]
mov edx, dword [edi + 0x24]
mov dword [ebp - 0x48], eax
inc edx
mov eax, dword [edi + 0xc]
shr eax, 0x15
and eax, 0xffffff01
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x68], eax
mov eax, dword [esi + 0xc]
inc eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x40]
shr eax, 0x15
and eax, 0xffffff01
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x48]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x40]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esi + 8], eax
test eax, eax
je 0x10042070
mov dword [esi + 0x20], 0xffffffff
jmp 0x100420ac
mov ecx, dword [edi + 0x84]
mov edx, dword [ebp - 0x58]
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
mov dword [esi + 0x20], ecx
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x10042088
sub edx, ecx
mov ecx, dword [ebp - 0x58]
lea eax, [ecx + 1]
add eax, edx
push eax
push ecx
lea ecx, [edi + 0x84]
call fcn.10006e10
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x48]
cmp dword [ebp - 0x38], eax
jge 0x100420d9
test byte [edi + 0xc], 2
je 0x100420d9
cmp dword [edi + 0x18], 0
jne 0x100420d9
cmp edx, eax
jge 0x100420ca
cmp dword [edi + 0x14], 0
jne 0x100420d9
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x1c]
test al, al
jne 0x100420df
mov dword [edi + 0x18], edx
jmp 0x100420df
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x1c]
test byte [ebp - 0x40], 2
je 0x100420f1
cmp dword [edi + 0x14], edx
je 0x100420f1
test al, al
jne 0x100420f1
mov dword [edi + 0x18], edx
cmp dword [edi + 0x1c], edx
sete cl
mov dword [ebp - 0x50], ecx
mov byte [ebp - 0x6c], cl
mov ecx, dword [ebp - 0x28]
jne 0x10042106
mov byte [edi + 0x68], 1
cmp byte [ebp - 0x50], 0
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x5c], 1
jne 0x10042143
cmp dword [edi + 0x14], 0
jne 0x10042143
cmp eax, dword [ebp - 0x48]
jge 0x10042143
cmp dword [ebp - 0x24], 0
jne 0x10042143
cmp dword [edi], 1
jne 0x10042143
mov edx, dword [ebp - 0x50]
test byte [edi + 0xc], 2
movzx edx, dl
cmove edx, dword [ebp - 0x5c]
mov dword [ebp - 0x50], edx
mov byte [ebp - 0x6c], dl
mov edx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x38]
cmp esi, dword [ebp - 0x48]
mov esi, dword [ebp - 0x34]
jge 0x1004217f
cmp eax, dword [ebp - 0x48]
jge 0x10042159
cmp byte [ebp - 0x15], 0
je 0x1004217f
xorps xmm0, xmm0
lea ecx, [ebp - 0x14]
push 0x18
push 0
movups xmmword [ebp - 0x14], xmm0
call fcn.10014ee0
mov eax, dword [ebp - 0x3c]
add esp, 8
test al, al
je 0x100423be
jmp 0x10041ed7
cmp dword [edi + 0x14], edx
jne 0x1004218d
mov eax, dword [ecx + 0x3eb0]
mov dword [esi + 0x10], eax
mov edx, dword [ebp - 0x4c]
mov ecx, dword [esi + 4]
movss xmm2, dword [esi + 0x18]
movss xmm1, dword [edi + 0x2c]
movss xmm0, dword [edx + 0x108]
movss dword [ebp - 0x70], xmm0
movss xmm0, dword [edx + 0x10c]
movss dword [ebp - 0x5c], xmm0
movss xmm0, dword [esi + 0x14]
and ecx, 0xc0
jne 0x100421dd
subss xmm0, dword [edi + 0x48]
xorps xmm5, xmm5
addss xmm1, xmm5
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
jmp 0x100421e4
xorps xmm3, xmm3
addss xmm1, xmm3
addss xmm0, dword [edi + 0x28]
movss dword [edx + 0x108], xmm0
movss dword [edx + 0x10c], xmm1
movss xmm3, dword [edx + 0x108]
movss xmm4, dword [edx + 0x10c]
movaps xmm1, xmm3
movss xmm6, dword [0x1004fb00]
addss xmm1, xmm2
movss dword [ebp - 0x60], xmm3
movaps xmm2, xmm4
movss dword [ebp - 0x64], xmm4
movss dword [ebp - 0x14], xmm3
movss dword [ebp - 0x10], xmm4
movss dword [ebp - 0x2c], xmm1
movss dword [ebp - 0xc], xmm1
addss xmm2, dword [ebp - 0x74]
movss dword [ebp - 0x74], xmm2
movss dword [ebp - 8], xmm2
test ecx, ecx
jne 0x10042321
movss xmm5, dword [edi + 0x58]
comiss xmm5, xmm3
ja 0x10042264
comiss xmm1, dword [edi + 0x5c]
jbe 0x10042321
movss xmm0, dword [edi + 0x5c]
mov ecx, dword [0x100cbe88]
movss dword [ebp - 0xb4], xmm0
movaps xmm0, xmm3
maxss xmm0, xmm5
mov byte [ebp - 0x15], 1
push 1
mov eax, dword [ecx + 0x3f14]
movss dword [ebp - 0xb0], xmm2
movss dword [ebp - 0x80], xmm0
movaps xmm0, xmm4
mov byte [eax + 0xc5], 1
subss xmm0, xmm6
mov esi, dword [ecx + 0x3f14]
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0x80]
push eax
mov ecx, dword [esi + 0x288]
movss dword [ebp - 0x7c], xmm0
call fcn.1002ea70
mov eax, dword [esi + 0x288]
mov edx, dword [ebp - 0x4c]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
add ecx, ecx
movss xmm1, dword [eax + ecx*8 - 8]
movss xmm2, dword [eax + ecx*8 - 4]
movss xmm0, dword [eax + ecx*8 - 0xc]
mov eax, dword [eax + ecx*8 - 0x10]
mov dword [esi + 0x22c], eax
movss dword [esi + 0x230], xmm0
movss dword [esi + 0x234], xmm1
movss dword [esi + 0x238], xmm2
movss xmm1, dword [ebp - 0x2c]
movss xmm2, dword [ebp - 0x74]
movss xmm3, dword [ebp - 0x60]
movss xmm4, dword [ebp - 0x64]
jmp 0x10042325
mov byte [ebp - 0x15], 0
mov ecx, dword [ebp - 0x28]
subss xmm1, xmm3
movss xmm0, dword [edx + 0x120]
subss xmm2, xmm4
movss dword [ebp - 0x64], xmm0
movss xmm0, dword [edx + 0x124]
movss dword [ebp - 0x60], xmm0
movss dword [ebp - 0x80], xmm1
movss xmm1, dword [ecx + 0x3894]
lea ecx, [ebp - 0x80]
movss dword [ebp - 0x7c], xmm2
call fcn.10014d80
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x14]
movss xmm0, dword [ebp - 0x64]
mov edx, dword [ebp - 0x1c]
push 0
movss dword [eax + 0x120], xmm0
movss xmm0, dword [ebp - 0x60]
push 0
movss dword [eax + 0x124], xmm0
call fcn.10014ee0
add esp, 8
test al, al
jne 0x100423d4
cmp byte [ebp - 0x15], al
je 0x100423a1
call fcn.1000c940
mov eax, dword [ebp - 0x4c]
movss xmm0, dword [ebp - 0x70]
movss dword [eax + 0x108], xmm0
movss xmm0, dword [ebp - 0x5c]
movss dword [eax + 0x10c], xmm0
mov al, byte [ebp - 0x50]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10047d31
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, dword [ebp - 0x3c]
movzx ecx, al
mov eax, dword [ebp - 0x28]
inc ecx
shl ecx, 4
or ecx, 0x1000
mov dword [ebp - 0x2c], ecx
cmp byte [eax + 0x42a0], 0
je 0x10042439
cmp dword [eax + 0x42c0], 0xffffffff
je 0x10042433
lea ecx, [eax + 0x42c4]
mov eax, str._IMWINDOW
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10042427
test dl, dl
je 0x10042423
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10042427
add eax, 2
add ecx, 2
test dl, dl
jne 0x10042407
xor eax, eax
jmp 0x1004242c
sbb eax, eax
or eax, 1
mov ecx, dword [ebp - 0x2c]
test eax, eax
je 0x10042439
or ecx, 0x200
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 0x1d]
push ecx
push eax
lea eax, [ebp - 0x2d]
push eax
lea ecx, [ebp - 0x14]
call fcn.1003b650
mov edx, dword [ebp - 0x1c]
add esp, 0xc
mov byte [ebp - 0x42], al
test al, al
je 0x10042463
cmp byte [ebp - 0x3c], 0
jne 0x10042463
mov dword [edi + 0x18], edx
cmp byte [ebp - 0x1d], 0
mov ecx, dword [ebp - 0x28]
je 0x1004248a
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x1004248a
cmp dword [ecx + 0x3f50], edx
jne 0x10042492
cmp byte [ecx + 0x3f5c], 0
je 0x1004248a
mov dword [ecx + 0x3f88], eax
cmp dword [ecx + 0x3f50], edx
je 0x100424c0
mov eax, dword [0x100cbe88]
mov esi, dword [eax + 0x3fc0]
cmp dword [eax + 0x3f3c], esi
jne 0x100424ac
mov byte [eax + 0x3f44], 1
mov edx, dword [ebp - 0x1c]
cmp dword [eax + 0x3f50], esi
jne 0x100424c5
mov byte [eax + 0x3f5d], 1
jmp 0x100424c5
mov eax, dword [0x100cbe88]
cmp dword [ebp - 0x24], 0
mov esi, dword [ebp - 0x34]
je 0x10042524
mov esi, dword [ebp - 0x24]
mov esi, dword [esi + 0x388]
test esi, esi
mov esi, dword [ebp - 0x34]
je 0x10042524
mov ecx, dword [ebp - 0x24]
mov esi, dword [ecx + 0x388]
mov ecx, dword [ebp - 0x28]
cmp dword [esi + 0x18], 0
mov esi, dword [ebp - 0x34]
jne 0x10042524
mov edx, dword [ebp - 0x24]
mov esi, dword [edx + 0x388]
mov edx, dword [ebp - 0x1c]
test dword [esi + 0x10], 0x400
mov esi, dword [ebp - 0x34]
jne 0x10042524
mov ecx, dword [ebp - 0x24]
mov byte [ebp - 0x1e], 1
mov esi, dword [ecx + 0x388]
mov ecx, dword [ebp - 0x28]
cmp dword [esi + 0x24], 1
mov esi, dword [ebp - 0x34]
je 0x10042528
mov byte [ebp - 0x1e], 0
cmp byte [ebp - 0x1d], 0
je 0x1004284a
cmp byte [ebp - 0x1e], 0
xorps xmm3, xmm3
je 0x10042563
cmp byte [eax + 0xd60], 0
je 0x10042563
movss xmm0, dword [eax + 0x36f8]
comiss xmm0, xmm3
setae al
test al, al
je 0x10042563
mov ecx, dword [ebp - 0x24]
call fcn.10009590
jmp 0x1004284a
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x48]
jl 0x1004284a
mov eax, dword [0x100cbe88]
cmp byte [eax + 0xd60], 0
je 0x1004284a
movss xmm1, dword [eax + 0x30]
movss xmm0, dword [eax + 0x36f8]
mulss xmm1, xmm1
comiss xmm0, xmm1
setae al
test al, al
je 0x1004284a
xor eax, eax
xorps xmm5, xmm5
cmp byte [ecx + 0x42a0], al
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x24]
jne 0x10042638
test byte [edi + 0xc], 1
jne 0x100425c5
test eax, eax
je 0x1004284a
movss xmm0, dword [ecx + 0xb4]
comiss xmm3, xmm0
jbe 0x100425ef
movss xmm1, dword [ecx + 0xd58]
movss xmm2, dword [ebp - 0x14]
comiss xmm2, xmm1
jbe 0x100425ef
or eax, 0xffffffff
movaps xmm5, xmm2
mov dword [ebp - 0x38], eax
jmp 0x10042610
comiss xmm0, xmm3
jbe 0x10042638
movss xmm0, dword [ecx + 0xd58]
movss xmm1, dword [ebp - 0xc]
comiss xmm0, xmm1
jbe 0x10042638
mov dword [ebp - 0x38], 1
movaps xmm5, xmm0
push dword [ecx + 0xd5c]
mov edx, esi
subss xmm5, xmm1
push dword [ecx + 0xd58]
mov ecx, edi
call fcn.10041830
mov eax, dword [ebp - 0x24]
xorps xmm3, xmm3
mov edx, dword [ebp - 0x1c]
add esp, 8
mov ecx, dword [ebp - 0x28]
test eax, eax
je 0x1004284a
test byte [eax + 8], 4
jne 0x1004284a
cmp byte [ecx + 0x42a0], 0
je 0x1004265f
cmp dword [ecx + 0x42b8], edx
je 0x1004272f
movss xmm2, dword [ecx + 0x3ca8]
xor al, al
movss xmm1, dword [ecx + 0x36d0]
movaps xmm0, xmm2
andps xmm1, xmmword [0x1004ffa0]
addss xmm0, xmm2
movaps xmm4, xmm2
mulss xmm4, dword [0x1004fb48]
subss xmm1, xmm0
mulss xmm1, dword [0x1004faa4]
comiss xmm3, xmm1
ja 0x100426aa
movaps xmm3, xmm2
mulss xmm3, dword [0x1004fb74]
minss xmm3, xmm1
movss xmm0, dword [ecx + 0xd5c]
movss xmm1, dword [ebp - 0x10]
mulss xmm2, dword [0x1004fb24]
subss xmm1, xmm0
movzx ecx, al
mov eax, 1
subss xmm0, dword [ebp - 8]
addss xmm2, xmm3
maxss xmm1, xmm0
comiss xmm1, xmm2
cmovae ecx, eax
comiss xmm5, xmm4
mov dword [ebp - 0x2c], ecx
jbe 0x10042727
mov eax, dword [ebp - 0x38]
test eax, eax
jns 0x10042705
mov ecx, esi
mov eax, 0x2e8ba2e9
sub ecx, dword [edi + 8]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x10042722
jle 0x10042727
mov ecx, esi
mov eax, 0x2e8ba2e9
sub ecx, dword [edi + 8]
imul ecx
mov eax, dword [edi]
sar edx, 3
dec eax
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, eax
je 0x1004272f
mov ecx, dword [ebp - 0x2c]
test cl, cl
je 0x1004284a
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x88], eax
add ecx, 0x535c
lea eax, [ebp - 0xa4]
mov dword [ebp - 0x98], 0
push eax
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x94], 0xffffffff
mov dword [ebp - 0x90], 0x3f000000
mov byte [ebp - 0x8c], 0
mov dword [ebp - 0xa4], 2
call fcn.10025e30
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov edx, ecx
mov dword [eax + 0x3f24], ecx
mov ecx, dword [ecx + 0x84]
call fcn.10008e40
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x3f24]
movss xmm0, dword [ecx + 0x3f80]
movss xmm1, dword [eax + 0x40]
movss xmm2, dword [eax + 0x44]
subss xmm1, dword [ebp - 0x14]
subss xmm2, dword [ebp - 0x10]
mov byte [ecx + 0x3f5e], 1
subss xmm0, xmm1
movss dword [ecx + 0x3f80], xmm0
movss xmm0, dword [ecx + 0x3f84]
subss xmm0, xmm2
movss dword [ecx + 0x3f84], xmm0
mov ecx, dword [0x100cbe88]
movaps xmm0, xmmword [0x1004ffe0]
mov dword [ecx + 0x3f64], 0xffffffff
mov dword [ecx + 0x3f68], 0xffffffff
movups xmmword [ecx + 0x3f6c], xmm0
mov dword [ecx + 0x3f7c], 0xffffffff
cmp byte [ecx + 0x4171], 0
mov word [ecx + 0x4188], 0
setne al
mov byte [ecx + 0x4170], al
cmp byte [ebp - 0x1d], 0
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x288]
mov dword [ebp - 0x2c], eax
jne 0x1004288d
cmp byte [ebp - 0x2d], 0
jne 0x1004288d
cmp byte [ebp - 0x50], 0
je 0x1004287a
mov eax, dword [ebp - 0x68]
movzx eax, al
xor eax, 1
lea ecx, [eax*2 + 0x24]
jmp 0x10042892
cmp byte [ebp - 0x68], 0
mov ecx, 0x25
mov edx, 0x22
cmovne ecx, edx
jmp 0x10042892
mov ecx, 0x23
movss xmm1, dword [0x1004fb00]
call fcn.10006fa0
mov ecx, dword [ebp - 0x2c]
lea edx, [ebp - 0x14]
push eax
push dword [ebp - 0x40]
call fcn.10042c90
mov edx, dword [ebp - 0x1c]
lea ecx, [ebp - 0x14]
push 1
call fcn.10007d90
add esp, 0xc
mov ecx, 0x20
call fcn.10009010
test al, al
je 0x100428fe
mov ecx, dword [0x100cbe88]
movss xmm0, dword [ecx + 0x36ac]
ucomiss xmm0, dword [0x1004fa58]
lahf
test ah, 0x44
jnp 0x100428f0
cmp byte [ecx + 0x3697], 0
je 0x100428fe
cmp byte [ebp - 0x3c], 0
mov eax, dword [ebp - 0x1c]
jne 0x10042901
mov dword [edi + 0x18], eax
jmp 0x10042901
mov eax, dword [ebp - 0x1c]
test byte [edi + 0xc], 8
je 0x1004290b
or dword [ebp - 0x40], 4
cmp dword [ebp - 0x54], 0
je 0x10042973
mov ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x1004291b
mov eax, dword [ecx + 4]
push eax
xor edx, edx
mov ecx, str.CLOSE
call fcn.100066f0
mov ecx, dword [0x100cbe88]
add esp, 4
mov dword [ebp - 0x38], eax
cmp dword [ecx + 0x3f50], eax
jne 0x10042942
mov dword [ecx + 0x3f54], eax
cmp dword [ecx + 0x3f94], eax
jne 0x10042951
mov byte [ecx + 0x3f98], 1
cmp dword [ecx + 0x3f38], eax
jne 0x10042978
push ecx
push str.CLOSE
mov edx, 0xb
mov ecx, eax
call fcn.100259a0
mov eax, dword [ebp - 0x38]
add esp, 8
jmp 0x10042978
xor eax, eax
mov dword [ebp - 0x38], eax
push dword [edi + 0x78]
lea ecx, [ebp - 0x41]
push dword [edi + 0x74]
lea edx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 0x1e]
push ecx
push dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x2c]
push eax
push dword [ebp - 0x1c]
push dword [ebp - 0x58]
push dword [ebp - 0x40]
call fcn.100430e0
add esp, 0x24
cmp byte [ebp - 0x1e], 0
je 0x100429e3
mov eax, dword [ebp - 0x54]
test eax, eax
je 0x100429e3
mov byte [eax], 0
test byte [esi + 4], 1
jne 0x100429d9
mov byte [esi + 0x28], 1
mov eax, dword [edi + 0x1c]
cmp eax, dword [esi]
jne 0x100429e3
mov dword [esi + 0xc], 0xffffffff
mov dword [edi + 0x18], 0
mov dword [edi + 0x14], 0
jmp 0x100429e3
mov eax, dword [esi]
cmp dword [edi + 0x1c], eax
je 0x100429e3
mov dword [edi + 0x18], eax
cmp dword [ebp - 0x24], 0
je 0x10042a07
cmp byte [ebp - 0x2d], 0
mov eax, dword [ebp - 0x28]
jne 0x100429fd
mov ecx, dword [ebp - 0x38]
cmp dword [eax + 0x3f3c], ecx
jne 0x10042a07
or dword [eax + 0x3fc8], 0x80
cmp byte [ebp - 0x15], 0
je 0x10042a12
call fcn.1000c940
cmp byte [ebp - 0x41], 0
mov eax, dword [ebp - 0x4c]
movss xmm0, dword [ebp - 0x70]
movss dword [eax + 0x108], xmm0
movss xmm0, dword [ebp - 0x5c]
movss dword [eax + 0x10c], xmm0
je 0x10042b7e
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x1c]
cmp dword [eax + 0x3f3c], ecx
jne 0x10042b7e
cmp byte [ebp - 0x1d], 0
jne 0x10042b7e
movss xmm0, dword [eax + 0x3f4c]
comiss xmm0, dword [eax + 0x530c]
jbe 0x10042b7e
mov eax, dword [0x100cbe88]
cmp byte [eax + 0x416f], 0
mov ecx, dword [eax + 0x3f14]
je 0x10042ac7
cmp byte [eax + 0x416e], 0
jne 0x10042ac7
test byte [eax + 0x3fc4], 4
jne 0x10042b7e
mov edx, dword [eax + 0x4134]
mov eax, dword [eax + 0x3fc0]
cmp edx, eax
jne 0x10042b7e
test edx, edx
je 0x10042b7e
cmp eax, dword [ecx + 4]
jne 0x10042b41
cmp byte [ecx + 0xc5], 0
je 0x10042b41
jmp 0x10042b7e
mov edx, dword [eax + 0x3fc8]
test dl, 1
je 0x10042b7e
cmp dword [eax + 0x3f18], ecx
je 0x10042ae6
test dl, dl
jns 0x10042b7e
mov edx, dword [eax + 0x3f50]
test edx, edx
je 0x10042b11
cmp edx, dword [eax + 0x3fc0]
je 0x10042b11
cmp byte [eax + 0x3f5d], 0
jne 0x10042b11
cmp edx, dword [ecx + 0x84]
je 0x10042b11
cmp edx, dword [ecx + 0x88]
jne 0x10042b7e
xor edx, edx
call fcn.10008fa0
test al, al
je 0x10042b7e
mov eax, dword [0x100cbe88]
test byte [eax + 0x3fc4], 4
jne 0x10042b7e
mov eax, dword [eax + 0x3fc0]
cmp eax, dword [ecx + 0x84]
jne 0x10042b41
cmp byte [ecx + 0xc5], 0
jne 0x10042b7e
test byte [edi + 0xc], 0x20
jne 0x10042b7e
test byte [esi + 4], 0x10
jne 0x10042b7e
mov edx, dword [ebp - 0x58]
mov eax, edx
cmp edx, 0xffffffff
jae 0x10042b6d
mov cl, byte [eax]
test cl, cl
je 0x10042b6d
cmp cl, 0x23
jne 0x10042b67
cmp byte [eax + 1], cl
je 0x10042b6d
inc eax
cmp eax, 0xffffffff
jb 0x10042b57
push edx
sub eax, edx
push eax
push str._.s
call fcn.10015cc0
add esp, 0xc
cmp byte [ebp - 0x3c], 0
je 0x100423be
mov ecx, dword [ebp - 4]
mov al, byte [ebp - 0x42]
xor ecx, ebp
pop edi
pop esi
call fcn.10047d31
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret