Function at 0x10039940
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100fc530
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
mov eax, dword [0x1014d084]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x44], ebx
cmp dword [0x101526f0], 0
je 0x1003a19a
lea esi, [ebx + 0x15c]
mov dword [ebp - 0x3c], esi
mov ecx, esi
mov dword [ebp - 4], 0
call fcn.10006f50
push dword [ebp - 0x78]
mov edx, dword [esi + 8]
push ecx
mov ecx, dword [esi + 4]
call fcn.1003b7c0
mov eax, dword [esi + 4]
add ebx, 0x14c
mov dword [esi + 8], eax
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, 0x4bda12f7
xor edi, edi
mov dword [ebp - 0x40], ebx
mov ecx, dword [ebx + 8]
sub ecx, dword [ebx + 4]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
test eax, eax
jle 0x10039b10
push edi
mov ecx, ebx
call fcn.1003b1f0
cmp word [eax + 0x64], 0
je 0x10039a5a
cmp byte [0x101527be], 0
mov eax, dword [0x101526f0]
mov dword [ebp - 0x34], eax
je 0x10039a41
mov ecx, 0x10b8134
call fcn.1001aba0
mov esi, eax
test esi, esi
je 0x10039a3e
push 4
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10039a3e
push 4
add esi, 0xc88
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10039a3e
mov ecx, dword [ebp - 0x34]
mov ax, word [esi]
mov word [ecx + 0x48], ax
mov eax, ecx
jmp 0x10039a41
mov eax, dword [ebp - 0x34]
movzx esi, word [eax + 0x48]
mov ecx, ebx
push edi
call fcn.1003b1f0
cmp word [eax + 0x64], si
mov esi, dword [ebp - 0x3c]
jne 0x10039af0
push edi
mov ecx, ebx
call fcn.1003b1f0
cmp word [eax + 0x64], 1
je 0x10039a78
push edi
mov ecx, ebx
call fcn.1003b1f0
cmp word [eax + 0x64], 2
jne 0x10039ae0
cmp byte [0x101527be], 0
mov ebx, dword [0x101526f0]
mov dword [ebp - 0x38], ebx
je 0x10039ac5
mov ecx, 0x10b8134
call fcn.1001aba0
mov esi, eax
test esi, esi
je 0x10039ac5
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
push 4
push esi
call ebx
test eax, eax
jne 0x10039ac2
push 4
add esi, 0x6dc
push esi
call ebx
mov ebx, dword [ebp - 0x38]
test eax, eax
jne 0x10039ac5
mov al, byte [esi]
mov byte [ebx + 0x40], al
jmp 0x10039ac5
mov ebx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x40]
mov bl, byte [ebx + 0x40]
push edi
call fcn.1003b1f0
mov esi, dword [ebp - 0x3c]
movzx ecx, bl
mov ebx, dword [ebp - 0x40]
cmp word [eax + 0x64], cx
jne 0x10039af0
push edi
mov ecx, ebx
call fcn.1003b1f0
push eax
mov ecx, esi
call fcn.1003b090
mov ecx, dword [ebx + 8]
mov eax, 0x4bda12f7
sub ecx, dword [ebx + 4]
inc edi
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jl 0x100399e0
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
jne 0x10039b7f
mov edi, dword [ebp - 0x44]
mov ebx, 4
add edi, 0xc
mov esi, dword [edi]
test esi, esi
je 0x10039b3f
push 4
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10039b3f
push eax
mov ecx, esi
call dword [0x10138480]
add edi, 4
sub ebx, 1
jne 0x10039b23
mov ebx, dword [ebp - 0x44]
mov esi, dword [ebx + 0x134]
mov edi, dword [ebx + 0x144]
test esi, esi
je 0x10039b70
push 4
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10039b70
push edi
mov ecx, esi
call dword [0x101384e8]
mov dword [ebx + 0x148], 1
jmp 0x1003a19a
mov ecx, dword [esi + 8]
sub esp, 8
sub ecx, eax
mov eax, 0x4bda12f7
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1013d870]
mulsd xmm0, qword [0x1013cdd0]
movsd qword [ebp - 0x7c], xmm0
fld qword [ebp - 0x7c]
fstp qword [esp]
call fcn.100bc8a0
fstp qword [ebp - 0x7c]
movsd xmm0, qword [ebp - 0x7c]
movsd qword [esp], xmm0
call fcn.1003bb50
add esp, 8
call fcn.100beeb0
mov edx, dword [ebp - 0x44]
mov dword [edx + 0x148], eax
cmp dword [edx + 0x144], eax
jle 0x10039bf9
mov dword [edx + 0x144], 1
movzx eax, byte [ebp + 8]
lea edi, [edx + 0xc]
shl eax, 2
or ecx, 0xffffffff
mov dword [ebp - 0xa0], eax
lea ebx, [eax - 4]
mov dword [ebp - 0x40], ebx
lea eax, [edx + 8]
inc ecx
add eax, 4
add edi, 0x18
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edi
cmp ecx, 4
jg 0x1003a167
mov ecx, dword [esi + 8]
mov eax, 0x4bda12f7
sub ecx, dword [esi + 4]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
dec eax
add eax, edx
cmp ebx, eax
jle 0x10039c78
mov eax, dword [ebp - 0x38]
mov esi, dword [eax]
test esi, esi
je 0x1003a151
mov edi, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
push 4
push esi
call edi
test eax, eax
jne 0x1003a14b
push eax
mov ecx, esi
call dword [0x10138480]
jmp 0x1003a14b
push ebx
mov ecx, esi
mov dword [ebp - 0x80], 0xffc4fc03
call fcn.1003b1f0
push eax
lea ecx, [ebp - 0x30]
call fcn.100069d0
push ebx
mov ecx, esi
mov dword [ebp - 4], 1
call fcn.1003b1f0
xor esi, esi
cmp byte [eax + 0x69], 2
jne 0x10039d41
movaps xmm0, xmmword [str.jJ1_]
movups xmmword [ebp - 0x5c], xmm0
mov dword [ebp - 0x4c], 0x31e0b19
mov dword [ebp - 0x48], 0x370405
cmp esi, 0x17
jb 0x10039ce0
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.10066030
add esp, 0xc
mov bl, byte [ebp + esi - 0x5b]
xor bl, byte [ebp - 0x5c]
cmp esi, 0x17
jb 0x10039d03
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.10066030
add esp, 0xc
mov byte [ebp + esi - 0x5b], bl
inc esi
cmp esi, 0x16
jb 0x10039cc4
cmp byte [ebp - 0x5b], 0
mov byte [ebp - 0x45], 0
jne 0x10039d1b
xor ecx, ecx
jmp 0x10039d2a
lea ecx, [ebp - 0x5b]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10039d21
sub ecx, edx
push ecx
lea eax, [ebp - 0x5b]
push eax
lea ecx, [ebp - 0x30]
call fcn.1000cbc0
mov ebx, 0xff5cb9fe
jmp 0x10039dd9
mov dword [ebp - 0x70], 0x46483313
mov dword [ebp - 0x6c], 0x6176777d
mov dword [ebp - 0x68], 0x6a726433
mov word [ebp - 0x64], 0x4e
nop dword [eax]
cmp esi, 0xd
jb 0x10039d7c
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.10066030
add esp, 0xc
mov bl, byte [ebp + esi - 0x6f]
xor bl, byte [ebp - 0x70]
cmp esi, 0xd
jb 0x10039d9f
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.10066030
add esp, 0xc
mov byte [ebp + esi - 0x6f], bl
inc esi
cmp esi, 0xc
jb 0x10039d60
cmp byte [ebp - 0x6f], 0
mov byte [ebp - 0x63], 0
jne 0x10039db7
xor ecx, ecx
jmp 0x10039dc9
lea ecx, [ebp - 0x6f]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10039dc0
sub ecx, edx
push ecx
lea eax, [ebp - 0x6f]
push eax
lea ecx, [ebp - 0x30]
call fcn.1000cbc0
mov ebx, dword [ebp - 0x80]
cmp dword [ebp - 0x18], 0x10
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x60]
cmovae eax, dword [ebp - 0x2c]
push eax
call fcn.10007920
mov byte [ebp - 4], 2
mov esi, dword [edi]
mov edi, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test esi, esi
je 0x10039e12
push 4
push esi
call edi
test eax, eax
jne 0x10039e12
lea eax, [ebp - 0x60]
mov ecx, esi
push eax
call dword [0x101384e4]
mov eax, dword [ebp - 0x48]
cmp eax, 0x10
jb 0x10039e29
inc eax
push 1
push eax
push dword [ebp - 0x5c]
call fcn.10007520
add esp, 0xc
mov dword [ebp - 0x48], 0xf
mov dword [ebp - 0x4c], 0
mov byte [ebp - 0x5c], 0
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 3
call fcn.10007000
lea ecx, [ebp - 0x60]
call fcn.10006ea0
mov ecx, dword [ebp - 0x34]
mov byte [ebp - 4], 1
mov esi, dword [ecx]
test esi, esi
je 0x10039e6e
push 4
push esi
call edi
test eax, eax
jne 0x10039e6e
push ebx
mov ecx, esi
call dword [0x101384ec]
mov esi, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x3c]
mov ecx, ebx
push esi
call fcn.1003b1f0
mov ecx, ebx
movzx eax, byte [eax + 0x68]
push eax
push esi
call fcn.1003b1f0
movaps xmm0, xmmword [0x1013ce80]
xor esi, esi
movzx eax, byte [eax + 0x67]
push eax
movups xmmword [ebp - 0xb0], xmm0
nop
cmp esi, 0xf
jb 0x10039ebc
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.10066030
add esp, 0xc
mov bl, byte [ebp + esi - 0xaf]
xor bl, byte [ebp - 0xb0]
cmp esi, 0xf
jb 0x10039ee5
push 0x90
push str.C:Program_Files__x86_Microsoft_Visual_Studio_14.0VCinclude_array
push str.array_subscript_out_of_range
call fcn.10066030
add esp, 0xc
mov byte [ebp + esi - 0xaf], bl
inc esi
cmp esi, 0xe
jb 0x10039ea0
sub esp, 0x1c
mov byte [ebp - 0xa1], 0
lea eax, [ebp - 0xaf]
mov ecx, esp
push eax
call fcn.10007920
lea eax, [ebp - 0x9c]
push eax
call fcn.10006ba0
add esp, 0x28
mov byte [ebp - 4], 4
cmp dword [eax + 0x18], 0x10
jb 0x10039f28
mov eax, dword [eax + 4]
jmp 0x10039f2b
add eax, 4
push eax
lea ecx, [ebp - 0x60]
call fcn.10007920
mov eax, dword [ebp - 0x34]
mov byte [ebp - 4], 5
mov esi, dword [eax - 4]
test esi, esi
je 0x10039f57
push 4
push esi
call edi
test eax, eax
jne 0x10039f57
lea eax, [ebp - 0x60]
mov ecx, esi
push eax
call dword [0x101384e4]
mov eax, dword [ebp - 0x48]
cmp eax, 0x10
jb 0x10039f6e
inc eax
push 1
push eax
push dword [ebp - 0x5c]
call fcn.10007520
add esp, 0xc
mov dword [ebp - 0x48], 0xf
mov dword [ebp - 0x4c], 0
mov byte [ebp - 0x5c], 0
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 6
call fcn.10007000
lea ecx, [ebp - 0x60]
call fcn.10006ea0
mov eax, dword [ebp - 0x84]
cmp eax, 0x10
jb 0x10039fb1
inc eax
push 1
push eax
push dword [ebp - 0x98]
call fcn.10007520
add esp, 0xc
mov dword [ebp - 0x84], 0xf
mov dword [ebp - 0x88], 0
mov byte [ebp - 0x98], 0
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 7
call fcn.10007000
lea ecx, [ebp - 0x9c]
call fcn.10006ea0
mov ebx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
push ebx
mov byte [ebp - 4], 1
call fcn.1003b1f0
lea ecx, [ebp - 0x9c]
mov dx, word [eax + 0x64]
call fcn.100337c0
mov byte [ebp - 4], 8
cmp dword [eax + 0x18], 0x10
jb 0x1003a014
mov eax, dword [eax + 4]
jmp 0x1003a017
add eax, 4
push eax
lea ecx, [ebp - 0x60]
call fcn.10007920
mov eax, dword [ebp - 0x34]
mov byte [ebp - 4], 9
mov esi, dword [eax + 8]
test esi, esi
je 0x1003a043
push 4
push esi
call edi
test eax, eax
jne 0x1003a043
lea eax, [ebp - 0x60]
mov ecx, esi
push eax
call dword [0x101384e4]
mov eax, dword [ebp - 0x48]
cmp eax, 0x10
jb 0x1003a05a
inc eax
push 1
push eax
push dword [ebp - 0x5c]
call fcn.10007520
add esp, 0xc
mov dword [ebp - 0x48], 0xf
mov dword [ebp - 0x4c], 0
mov byte [ebp - 0x5c], 0
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0xa
call fcn.10007000
lea ecx, [ebp - 0x60]
call fcn.10006ea0
mov eax, dword [ebp - 0x84]
cmp eax, 0x10
jb 0x1003a09d
inc eax
push 1
push eax
push dword [ebp - 0x98]
call fcn.10007520
add esp, 0xc
mov dword [ebp - 0x84], 0xf
mov dword [ebp - 0x88], 0
mov byte [ebp - 0x98], 0
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 0xb
call fcn.10007000
lea ecx, [ebp - 0x9c]
call fcn.10006ea0
mov ecx, dword [ebp - 0x3c]
push ebx
mov byte [ebp - 4], 1
call fcn.1003b1f0
mov ecx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x38]
mov eax, dword [eax + 0x1c]
mov dword [ecx - 8], eax
mov esi, dword [esi]
test esi, esi
je 0x1003a104
push 4
push esi
call edi
test eax, eax
jne 0x1003a104
push 1
mov ecx, esi
call dword [0x10138480]
mov eax, dword [ebp - 0x18]
cmp eax, 0x10
jb 0x1003a11b
inc eax
push 1
push eax
push dword [ebp - 0x2c]
call fcn.10007520
add esp, 0xc
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x2c], 0
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], 0xc
call fcn.10007000
lea ecx, [ebp - 0x30]
call fcn.10006ea0
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
mov esi, dword [ebp - 0x3c]
inc ebx
mov ecx, dword [ebp - 0x78]
mov dword [ebp - 0x40], ebx
cmp ebx, dword [ebp - 0xa0]
jl 0x10039c15
mov edx, dword [ebp - 0x44]
mov esi, dword [edx + 0x134]
mov edi, dword [edx + 0x144]
test esi, esi
je 0x1003a193
push 4
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1003a190
push edi
mov ecx, esi
call dword [0x101384e8]
mov edx, dword [ebp - 0x44]
mov ecx, edx
call fcn.10039070
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10075bf0
mov esp, ebp
pop ebp
ret 4