Function at 0x10012040
Capabilities:
Contain obfuscated stackstrings

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
push 0xffffffffffffffff
push 0x10038f01
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x20
mov eax, dword [0x10045008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
cmp byte [0x10fb235e], 0
je 0x100124d4
mov eax, dword fs:[0x2c]
mov esi, dword [0x1009134c]
mov ecx, dword [eax + esi*4]
mov eax, dword [0x11dff63c]
cmp eax, dword [ecx + 4]
jle 0x10012108
push 0x11dff63c
call fcn.10035ec7
add esp, 4
cmp dword [0x11dff63c], 0xffffffff
jne 0x10012108
mov dword [ebp - 4], 0
mov dword [ebp - 0x20], 0x695f6c63
mov dword [ebp - 0x1c], 0x7265746e
mov word [ebp - 0x18], 0x70
mov byte [ebp - 4], 1
lea edx, [ebp - 0x20]
mov ecx, dword [0x10091584]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
push 0x11dff63c
mov dword [0x11dff64c], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10035e7d
add esp, 4
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + esi*4]
mov eax, dword [0x11dff658]
cmp eax, dword [ecx + 4]
jle 0x10012197
push 0x11dff658
call fcn.10035ec7
add esp, 4
cmp dword [0x11dff658], 0xffffffff
jne 0x10012197
mov dword [ebp - 4], 2
mov ecx, 0xc6
xor edx, edx
mov al, byte [edx + 0x1003e53c]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x24], al
and ecx, 0x800000ff
jns 0x1001215f
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0xd
jl 0x10012142
mov byte [ebp - 0x17], 0
mov byte [ebp - 4], 3
lea edx, [ebp - 0x24]
mov ecx, dword [0x10091584]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
push 0x11dff658
mov dword [0x11dff65c], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10035e7d
add esp, 4
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + esi*4]
mov eax, dword [0x11dff640]
cmp eax, dword [ecx + 4]
jle 0x10012226
push 0x11dff640
call fcn.10035ec7
add esp, 4
cmp dword [0x11dff640], 0xffffffff
jne 0x10012226
mov dword [ebp - 4], 4
mov ecx, 0xbf
xor edx, edx
mov al, byte [edx + 0x1003e54c]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x28], al
and ecx, 0x800000ff
jns 0x100121ee
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0xf
jl 0x100121d1
mov byte [ebp - 0x19], 0
mov byte [ebp - 4], 5
lea edx, [ebp - 0x28]
mov ecx, dword [0x10091584]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
push 0x11dff640
mov dword [0x11dff698], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10035e7d
add esp, 4
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + esi*4]
mov eax, dword [0x11dff650]
cmp eax, dword [ecx + 4]
jle 0x100122b5
push 0x11dff650
call fcn.10035ec7
add esp, 4
cmp dword [0x11dff650], 0xffffffff
jne 0x100122b5
mov dword [ebp - 4], 6
mov ecx, 0xf6
xor edx, edx
mov al, byte [edx + 0x1003e55c]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x28], al
and ecx, 0x800000ff
jns 0x1001227d
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x10
jl 0x10012260
mov byte [ebp - 0x18], 0
mov byte [ebp - 4], 7
lea edx, [ebp - 0x28]
mov ecx, dword [0x10091584]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
push 0x11dff650
mov dword [0x11dff664], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10035e7d
add esp, 4
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + esi*4]
mov eax, dword [0x11dff680]
cmp eax, dword [ecx + 4]
jle 0x10012345
push 0x11dff680
call fcn.10035ec7
add esp, 4
cmp dword [0x11dff680], 0xffffffff
jne 0x10012345
mov dword [ebp - 4], 8
mov ecx, 0x6a
xor edx, edx
nop
mov al, byte [edx + 0x1003e570]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x28], al
and ecx, 0x800000ff
jns 0x1001230d
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x10
jl 0x100122f0
mov byte [ebp - 0x18], 0
mov byte [ebp - 4], 9
lea edx, [ebp - 0x28]
mov ecx, dword [0x10091584]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
push 0x11dff680
mov dword [0x11dff660], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10035e7d
add esp, 4
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + esi*4]
mov eax, dword [0x11dff684]
cmp eax, dword [ecx + 4]
jle 0x100123d5
push 0x11dff684
call fcn.10035ec7
add esp, 4
cmp dword [0x11dff684], 0xffffffff
jne 0x100123d5
mov dword [ebp - 4], 0xa
mov ecx, 0x9b
xor edx, edx
nop
mov al, byte [edx + 0x1003e584]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x30], al
and ecx, 0x800000ff
jns 0x1001239d
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x1a
jl 0x10012380
mov byte [ebp - 0x16], 0
mov byte [ebp - 4], 0xb
lea edx, [ebp - 0x30]
mov ecx, dword [0x10091584]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
push 0x11dff684
mov dword [0x11dff648], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10035e7d
add esp, 4
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + esi*4]
mov eax, dword [0x11dff68c]
cmp eax, dword [ecx + 4]
jle 0x1001247e
push 0x11dff68c
call fcn.10035ec7
add esp, 4
cmp dword [0x11dff68c], 0xffffffff
jne 0x1001247e
mov dword [ebp - 4], 0xc
mov ecx, 0xaf
xor edx, edx
mov al, byte [edx + 0x1003e5a0]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x30], al
and ecx, 0x800000ff
jns 0x10012430
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x1a
jl 0x10012413
mov byte [ebp - 0x16], 0
mov byte [ebp - 4], 0xd
lea edx, [ebp - 0x30]
mov ecx, dword [0x10091584]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
xorps xmm0, xmm0
mov dword [0x11dff654], eax
push 0x11dff68c
movups xmmword [ebp - 0x30], xmm0
mov word [ebp - 0x18], 0
movq qword [ebp - 0x20], xmm0
mov byte [ebp - 0x16], 0
mov dword [ebp - 4], 0xffffffff
call fcn.10035e7d
add esp, 4
mov ecx, dword [0x10091590]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x100915ac]
push eax
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov eax, dword [0x10092884]
cmp eax, 0xffffffff
je 0x100124d4
imul eax, eax, 0x37400
movss xmm0, dword [eax + 0x10fb2cfc]
mov eax, dword [0x1009159c]
divss xmm0, dword [eax + 0x1c]
mov eax, dword [edi + 8]
sub eax, 0x32
addss xmm0, dword [0x10040970]
cvttss2si ecx, xmm0
cmp ecx, eax
jl 0x100124d4
mov dword [edi + 8], ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10035a5e
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret