Function at 0x10029540
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x10118080]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [0x1013c240]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov byte [0x1013a384], 1
mov eax, dword [ecx]
push 0
push 0
push 0
mov eax, dword [eax + 0x84]
mov dword [ebp - 0x20], ebx
call eax
mov eax, dword [0x101053c0]
movss xmm1, dword [0x10106ce4]
movzx ecx, al
shr eax, 8
mov edx, dword [0x1013c230]
movzx eax, al
movd xmm0, ecx
lea ecx, [ebp - 0x14]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 8], 0x3f800000
push ecx
mov ecx, edx
mulss xmm0, xmm1
movss dword [ebp - 0x14], xmm0
movd xmm0, eax
movzx eax, byte [0x101053c2]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x10], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0xc], xmm0
mov eax, dword [edx]
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [0x1013c230]
push ecx
mov dword [esp], 0x3f800000
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov ecx, dword [0x1013a388]
test ecx, ecx
je 0x1002970e
mov eax, dword [ecx]
mov dword [ebp - 0x10], 0xb0a8a3e2
mov dword [ebp - 0xc], 0xb2b6a7ab
mov dword [ebp - 8], 0xc6b2a8af
mov edx, dword [eax + 0x2c]
xor eax, eax
nop dword [eax]
xor byte [ebp + eax - 0x10], 0xc6
inc eax
cmp eax, 0xc
jb 0x10029620
push 1
push 0
lea eax, [ebp - 0x10]
push eax
call edx
test eax, eax
je 0x1002965a
mov edx, dword [eax]
sub esp, 0xc
mov ecx, eax
mov dword [esp + 8], 0x3f333333
mov dword [esp + 4], 0x3f333333
mov dword [esp], 0x3f333333
call dword [edx + 0x2c]
mov ecx, dword [0x1013a388]
mov dword [ebp - 0x10], 0xa9aeb6e2
mov dword [ebp - 0xc], 0xa9a4a1a8
mov dword [ebp - 8], 0xc6b2b5a9
mov eax, dword [ecx]
mov edx, dword [eax + 0x2c]
xor eax, eax
nop dword [eax]
xor byte [ebp + eax - 0x10], 0xc6
inc eax
cmp eax, 0xc
jb 0x10029680
push 1
push 0
lea eax, [ebp - 0x10]
push eax
call edx
test eax, eax
je 0x100296ba
mov edx, dword [eax]
sub esp, 0xc
mov ecx, eax
mov dword [esp + 8], 0x3f333333
mov dword [esp + 4], 0x3f333333
mov dword [esp], 0x3f333333
call dword [edx + 0x2c]
mov ecx, dword [0x1013a388]
mov dword [ebp - 0x14], 0xabafb4e2
mov dword [ebp - 0x10], 0xaea1afaa
mov dword [ebp - 0xc], 0xa9a9a4b2
mov eax, dword [ecx]
mov word [ebp - 8], 0xb2b5
mov byte [ebp - 6], 0xc6
mov edx, dword [eax + 0x2c]
xor eax, eax
xor byte [ebp + eax - 0x14], 0xc6
inc eax
cmp eax, 0xf
jb 0x100296e6
push 1
push 0
lea eax, [ebp - 0x14]
push eax
call edx
test eax, eax
je 0x1002970e
mov edx, dword [eax]
push ecx
mov ecx, eax
mov dword [esp], 0x3f333333
call dword [edx + 0x10]
cmp dword [0x1011d070], 3
jne 0x10029990
mov edi, dword [0x1013a370]
mov eax, 0xaa71da0d
mov ebx, dword [0x1013a36c]
mov ecx, edi
sub ecx, ebx
mov dword [ebp - 0x24], 0
imul ecx
add edx, ecx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x1002998d
xor esi, esi
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x1c], esi
xorps xmm1, xmm1
mov ecx, edi
mov eax, 0xaa71da0d
sub ecx, ebx
imul ecx
add edx, ecx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, dword [ebp - 0x24]
jbe 0x10029f7c
mov eax, dword [0x1013c268]
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x34], 0x3f800000
mov dword [ebp - 0x2c], 0
movss xmm0, dword [eax + 0x10]
lea eax, [ebp - 0x2c]
subss xmm0, dword [ebx + esi + 4]
lea esi, [ebp - 0x34]
subss xmm0, dword [0x10106dec]
comiss xmm0, xmm1
movss xmm1, dword [0x10106d9c]
movss dword [ebp - 0x30], xmm0
cmovae eax, ecx
comiss xmm1, xmm0
cmovae esi, eax
movss xmm0, dword [esi]
comiss xmm0, xmm1
jb 0x100297f2
mov ecx, dword [ebp - 0x28]
add ecx, dword [ebp - 0x1c]
lea eax, [ecx + 0x1808]
sub edi, eax
push edi
push eax
push ecx
call fcn.100c79e0
mov edi, dword [ebp - 0x1c]
add esp, 0xc
sub dword [0x1013a370], 0x1808
jmp 0x10029949
mov ecx, dword [ebp - 0x20]
add ecx, 8
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov edi, dword [ebp - 0x1c]
cmp dword [ebx + edi], eax
jne 0x10029949
movss xmm0, dword [0x10106d9c]
mov ecx, dword [0x1013c230]
movss xmm1, dword [0x1011d21c]
subss xmm0, dword [esi]
mulss xmm1, dword [0x10106cfc]
mov eax, dword [ecx]
push ecx
mulss xmm1, xmm0
mov eax, dword [eax + 0x10]
movss dword [esp], xmm1
call eax
mov eax, dword [0x1011d1a4]
mov edx, dword [0x1011d104]
sub eax, 0
je 0x1002986c
sub eax, 1
je 0x10029864
sub eax, 1
je 0x1002985c
xor esi, esi
jmp 0x10029872
mov esi, dword [0x1013a388]
jmp 0x10029872
mov esi, dword [0x1013a390]
jmp 0x10029872
mov esi, dword [0x1013a38c]
movss xmm1, dword [0x10106ce4]
movzx eax, dl
mov ecx, dword [0x1013c230]
mov dword [ebp - 8], 0x3f800000
movd xmm0, eax
mov eax, edx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
shr edx, 0x10
mulss xmm0, xmm1
movss dword [ebp - 0x14], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, dl
lea edx, [ebp - 0x14]
push edx
mulss xmm0, xmm1
movss dword [ebp - 0x10], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0xc], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov eax, dword [esi]
mov ecx, esi
push 1
push 0x400
mov eax, dword [eax + 0x74]
call eax
mov eax, dword [esi]
mov ecx, esi
push 1
push 0x4000
mov eax, dword [eax + 0x74]
call eax
mov eax, dword [esi]
mov ecx, esi
push 1
push 0x8000
mov eax, dword [eax + 0x74]
call eax
mov ecx, dword [0x1013c240]
push 0
push 0
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
call eax
mov ecx, dword [ebp - 0x20]
lea eax, [edi + 8]
add eax, ebx
mov byte [ebp - 0x16], 0xff
lea edx, [ebp - 0x16]
push edx
mov esi, dword [ecx + 0x2900]
mov dword [ecx + 0x2900], eax
add ecx, 4
push 1
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
call eax
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x2900], esi
mov ebx, dword [0x1013a36c]
add edi, 0x1808
mov esi, dword [ebp - 0x24]
mov eax, 0xaa71da0d
mov dword [ebp - 0x1c], edi
inc esi
mov edi, dword [0x1013a370]
xorps xmm1, xmm1
mov ecx, edi
mov dword [ebp - 0x24], esi
sub ecx, ebx
mov dword [ebp - 0x28], ebx
imul ecx
add edx, ecx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
mov esi, dword [ebp - 0x1c]
jb 0x10029756
mov ebx, dword [ebp - 0x20]
mov edi, dword [0x1013a44c]
test edi, edi
je 0x100299e4
mov ecx, dword [0x1013c414]
add ecx, 0xffffffd5
xor ecx, 0x20f6a00c
mov eax, dword [ecx + ebx]
cmp eax, dword [ecx + edi]
jne 0x100299de
mov ecx, dword [0x1013c2ec]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
test eax, eax
je 0x100299e4
mov eax, dword [ebx + 8]
lea ecx, [ebx + 8]
mov eax, dword [eax + 0x28]
call eax
mov edx, dword [edi + 8]
lea ecx, [edi + 8]
mov esi, eax
mov edx, dword [edx + 0x28]
call edx
cmp esi, eax
je 0x100299e4
mov byte [ebp - 0x16], 1
jmp 0x100299e8
mov byte [ebp - 0x16], 0
mov eax, dword [0x1013c43c]
add eax, 0xffffffcb
xor eax, 0x20f6a016
cmp dword [eax + ebx], 0
jne 0x10029f62
mov eax, dword [0x1013c3b4]
cmp byte [ebx + eax], 0
je 0x10029b62
cmp byte [0x10120f80], 0
je 0x10029a44
mov eax, dword [0x1013c490]
add eax, 0xffffffb6
xor eax, 0x20f6a02b
cmp byte [eax + ebx], 0
je 0x10029a44
mov ecx, dword [0x1013c230]
push ecx
mov dword [esp], 0x3f000000
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
jmp 0x10029b4e
cmp byte [0x10120d08], 0
je 0x10029b4e
mov ecx, dword [0x1013c230]
movss xmm0, dword [0x10120ec8]
mulss xmm0, dword [0x10106cfc]
push ecx
mov eax, dword [ecx]
movss dword [esp], xmm0
mov eax, dword [eax + 0x10]
call eax
mov eax, dword [0x10120dbc]
mov edx, dword [0x10120e50]
sub eax, 0
je 0x10029aa2
sub eax, 1
je 0x10029a9a
sub eax, 1
je 0x10029a92
xor esi, esi
jmp 0x10029aa8
mov esi, dword [0x1013a388]
jmp 0x10029aa8
mov esi, dword [0x1013a390]
jmp 0x10029aa8
mov esi, dword [0x1013a38c]
movss xmm1, dword [0x10106ce4]
movzx eax, dl
mov ecx, dword [0x1013c230]
mov dword [ebp - 8], 0x3f800000
movd xmm0, eax
mov eax, edx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
shr edx, 0x10
mulss xmm0, xmm1
movss dword [ebp - 0x14], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, dl
lea edx, [ebp - 0x14]
push edx
mulss xmm0, xmm1
movss dword [ebp - 0x10], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0xc], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov eax, dword [esi]
mov ecx, esi
push 0
push 0x400
mov eax, dword [eax + 0x74]
call eax
mov eax, dword [esi]
mov ecx, esi
push 0
push 0x4000
mov eax, dword [eax + 0x74]
call eax
mov eax, dword [esi]
mov ecx, esi
push 0
push 0x8000
mov eax, dword [eax + 0x74]
call eax
mov ecx, dword [0x1013c240]
push 0
push 0
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
call eax
mov byte [ebp - 0x15], 0xff
lea ecx, [ebx + 4]
mov eax, dword [ecx]
lea edx, [ebp - 0x15]
push edx
push 1
mov eax, dword [eax + 0x24]
call eax
cmp byte [ebp - 0x16], 0
je 0x10029d05
cmp byte [0x10120804], 0
je 0x10029b86
mov eax, dword [ebx + 8]
lea ecx, [ebx + 8]
mov eax, dword [eax + 0x28]
call eax
push eax
call fcn.100290b0
push 0
push dword [0x10120508]
push dword [0x10120504]
call fcn.100c5720
mov ecx, dword [0x10120508]
cmp eax, ecx
je 0x10029f62
push 1
push ecx
push dword [0x10120504]
call fcn.100c5720
cmp eax, dword [0x10120508]
je 0x10029cd2
mov ecx, dword [0x1013c230]
movss xmm0, dword [0x1012074c]
mulss xmm0, dword [0x10106cfc]
push ecx
mov eax, dword [ecx]
movss dword [esp], xmm0
mov eax, dword [eax + 0x10]
call eax
mov eax, dword [0x101205ac]
mov edx, dword [0x101206d4]
sub eax, 0
je 0x10029c12
sub eax, 1
je 0x10029c0a
sub eax, 1
je 0x10029c02
xor esi, esi
jmp 0x10029c18
mov esi, dword [0x1013a388]
jmp 0x10029c18
mov esi, dword [0x1013a390]
jmp 0x10029c18
mov esi, dword [0x1013a38c]
movss xmm1, dword [0x10106ce4]
movzx eax, dl
mov ecx, dword [0x1013c230]
mov dword [ebp - 8], 0x3f800000
movd xmm0, eax
mov eax, edx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
shr edx, 0x10
mulss xmm0, xmm1
movss dword [ebp - 0x14], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, dl
lea edx, [ebp - 0x14]
push edx
mulss xmm0, xmm1
movss dword [ebp - 0x10], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0xc], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov eax, dword [esi]
mov ecx, esi
push 1
push 0x400
mov eax, dword [eax + 0x74]
call eax
mov eax, dword [esi]
mov ecx, esi
push 1
push 0x4000
mov eax, dword [eax + 0x74]
call eax
mov eax, dword [esi]
mov ecx, esi
push 1
push 0x8000
mov eax, dword [eax + 0x74]
call eax
mov ecx, dword [0x1013c240]
push 0
push 0
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
call eax
mov byte [ebp - 0x15], 0xff
lea ecx, [ebx + 4]
mov eax, dword [ecx]
lea edx, [ebp - 0x15]
push edx
push 1
mov eax, dword [eax + 0x24]
call eax
mov ecx, dword [0x1013c230]
movss xmm0, dword [0x1012074c]
mulss xmm0, dword [0x10106cfc]
push ecx
mov eax, dword [ecx]
movss dword [esp], xmm0
mov eax, dword [eax + 0x10]
call eax
mov edx, dword [0x10120640]
mov eax, dword [0x101205ac]
jmp 0x10029e7f
push 0
push dword [0x10120a0c]
push dword [0x10120a08]
call fcn.100c5720
mov ecx, dword [0x10120a0c]
cmp eax, ecx
je 0x10029f62
push 1
push ecx
push dword [0x10120a08]
call fcn.100c5720
cmp eax, dword [0x10120a0c]
je 0x10029e51
mov ecx, dword [0x1013c230]
movss xmm0, dword [0x10120c50]
mulss xmm0, dword [0x10106cfc]
push ecx
mov eax, dword [ecx]
movss dword [esp], xmm0
mov eax, dword [eax + 0x10]
call eax
mov eax, dword [0x10120ab0]
mov edx, dword [0x10120bd8]
sub eax, 0
je 0x10029d91
sub eax, 1
je 0x10029d89
sub eax, 1
je 0x10029d81
xor esi, esi
jmp 0x10029d97
mov esi, dword [0x1013a388]
jmp 0x10029d97
mov esi, dword [0x1013a390]
jmp 0x10029d97
mov esi, dword [0x1013a38c]
movss xmm1, dword [0x10106ce4]
movzx eax, dl
mov ecx, dword [0x1013c230]
mov dword [ebp - 8], 0x3f800000
movd xmm0, eax
mov eax, edx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
shr edx, 0x10
mulss xmm0, xmm1
movss dword [ebp - 0x14], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, dl
lea edx, [ebp - 0x14]
push edx
mulss xmm0, xmm1
movss dword [ebp - 0x10], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0xc], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov eax, dword [esi]
mov ecx, esi
push 1
push 0x400
mov eax, dword [eax + 0x74]
call eax
mov eax, dword [esi]
mov ecx, esi
push 1
push 0x4000
mov eax, dword [eax + 0x74]
call eax
mov eax, dword [esi]
mov ecx, esi
push 1
push 0x8000
mov eax, dword [eax + 0x74]
call eax
mov ecx, dword [0x1013c240]
push 0
push 0
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
call eax
mov byte [ebp - 0x15], 0xff
lea ecx, [ebx + 4]
mov eax, dword [ecx]
lea edx, [ebp - 0x15]
push edx
push 1
mov eax, dword [eax + 0x24]
call eax
mov ecx, dword [0x1013c230]
movss xmm0, dword [0x10120c50]
mulss xmm0, dword [0x10106cfc]
push ecx
mov eax, dword [ecx]
movss dword [esp], xmm0
mov eax, dword [eax + 0x10]
call eax
mov edx, dword [0x10120b44]
mov eax, dword [0x10120ab0]
sub eax, 0
je 0x10029ea2
sub eax, 1
je 0x10029e9a
sub eax, 1
je 0x10029e92
xor esi, esi
jmp 0x10029ea8
mov esi, dword [0x1013a388]
jmp 0x10029ea8
mov esi, dword [0x1013a390]
jmp 0x10029ea8
mov esi, dword [0x1013a38c]
movss xmm1, dword [0x10106ce4]
movzx eax, dl
mov ecx, dword [0x1013c230]
mov dword [ebp - 8], 0x3f800000
movd xmm0, eax
mov eax, edx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
shr edx, 0x10
mulss xmm0, xmm1
movss dword [ebp - 0x14], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, dl
lea edx, [ebp - 0x14]
push edx
mulss xmm0, xmm1
movss dword [ebp - 0x10], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0xc], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov eax, dword [esi]
mov ecx, esi
push 0
push 0x400
mov eax, dword [eax + 0x74]
call eax
mov eax, dword [esi]
mov ecx, esi
push 0
push 0x4000
mov eax, dword [eax + 0x74]
call eax
mov eax, dword [esi]
mov ecx, esi
push 0
push 0x8000
mov eax, dword [eax + 0x74]
call eax
mov ecx, dword [0x1013c240]
push 0
push 0
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
call eax
lea ecx, [ebx + 4]
mov byte [ebp - 0x15], 0xff
mov eax, dword [ecx]
lea edx, [ebp - 0x15]
push edx
push 1
mov eax, dword [eax + 0x24]
call eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
mov byte [0x1013a384], 0
pop ebx
call fcn.100c6262
mov esp, ebp
pop ebp
ret 4
call fcn.1002b330
int3