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

Disassembly:
push esi
mov esi, ecx
call fcn.1000410c
movzx eax, al
dec eax
cmp eax, 0x11
ja case.0x10004144.3
jmp dword [eax*4 + 0x1000428b]
mov eax, dword [0x10047000]
test eax, eax
je case.0x10004144.3
mov ecx, dword [eax + 0x24]
test ecx, ecx
je case.0x10004144.3
push esi
call fcn.100112dd
pop esi
ret
mov ecx, esi
pop esi
jmp 0x100042d3
mov eax, dword [0x10047000]
test eax, eax
je case.0x10004144.3
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je case.0x10004144.3
push esi
call fcn.10017491
pop esi
ret
mov eax, dword [0x10047000]
test eax, eax
je case.0x10004144.3
mov ecx, dword [eax + 0x40]
test ecx, ecx
je case.0x10004144.3
push esi
call fcn.1001a6e8
pop esi
ret
mov eax, dword [0x10047000]
test eax, eax
je case.0x10004144.3
mov ecx, dword [eax + 0x50]
test ecx, ecx
je case.0x10004144.3
push esi
call fcn.1002260f
pop esi
ret
mov eax, dword [0x10047000]
test eax, eax
je case.0x10004144.3
mov ecx, dword [eax + 0x44]
test ecx, ecx
je case.0x10004144.3
push esi
call fcn.1001d56a
pop esi
ret
mov eax, dword [0x10047000]
test eax, eax
je case.0x10004144.3
mov ecx, dword [eax + 0x48]
test ecx, ecx
je case.0x10004144.3
push esi
call fcn.1001ec75
pop esi
ret
mov eax, dword [0x10047000]
test eax, eax
je case.0x10004144.3
mov ecx, dword [eax + 0x4c]
test ecx, ecx
je case.0x10004144.3
push esi
call fcn.10020ff6
pop esi
ret
mov eax, dword [0x10047000]
test eax, eax
je case.0x10004144.3
mov ecx, dword [eax + 0x58]
test ecx, ecx
je case.0x10004144.3
push esi
call fcn.1002785d
pop esi
ret
mov eax, dword [0x10047000]
test eax, eax
je case.0x10004144.3
mov ecx, dword [eax + 0x38]
test ecx, ecx
je case.0x10004144.3
push esi
call fcn.10013b4b
pop esi
ret
mov ecx, esi
pop esi
jmp 0x100045a4
mov ecx, esi
pop esi
jmp 0x1000463f
mov ecx, esi
pop esi
jmp 0x10004774
mov ecx, esi
pop esi
jmp 0x100047dc
cmp dword [0x10046ff8], 0
je case.0x10004144.3
push esi
call fcn.1000ba33
pop esi
ret
push 0xa4
mov eax, 0x10035efe
call fcn.100354fd
mov esi, ecx
call fcn.1000410c
mov ecx, esi
mov bl, al
call fcn.10003f82
mov ecx, esi
mov edi, eax
call fcn.10003f82
mov esi, eax
cmp bl, 1
je 0x10004315
cmp bl, 2
je 0x10004315
mov edx, dword [0x10047000]
mov ecx, dword [0x10046ff8]
jmp 0x1000433f
mov edx, dword [0x10047000]
test edx, edx
je 0x10004332
mov ecx, dword [edx + 0x58]
test ecx, ecx
je 0x10004332
push esi
call fcn.100295ba
mov edx, dword [0x10047000]
mov ecx, dword [0x10046ff8]
test ecx, ecx
je 0x1000433f
mov dword [ecx + 0x4c], esi
cmp bl, 3
je 0x10004349
cmp bl, 4
jne 0x10004369
test edx, edx
je 0x10004362
cmp dword [edx + 0x58], 0
je 0x10004362
mov ecx, dword [edx + 0x58]
push esi
call fcn.10029619
mov ecx, dword [0x10046ff8]
test ecx, ecx
je 0x10004369
mov dword [ecx + 0x50], esi
movzx eax, bl
sub eax, 1
je 0x10004515
sub eax, 1
je 0x100044ab
sub eax, 1
je 0x1000442a
sub eax, 1
jne 0x1000459e
movaps xmm0, xmmword [0x1003fb10]
xor ebx, ebx
push edi
movups xmmword [ebp - 0x48], xmm0
mov dword [ebp - 0x38], 0x593b6f7d
mov edx, ebx
mov dword [ebp - 0x34], 0x757a777a
mov dword [ebp - 0x30], 0x357e78
mov cl, byte [ebp - 0x48]
xor byte [ebp + edx - 0x47], cl
inc edx
cmp edx, 0x1a
jb 0x100043b5
sub esp, 0x18
mov byte [ebp - 0x2d], bl
lea eax, [ebp - 0x47]
mov ecx, esp
push eax
call fcn.10002845
lea eax, [ebp - 0xb0]
push eax
call fcn.10004ac0
add esp, 0x20
mov dword [ebp - 4], 6
cmp dword [eax + 0x14], 0x10
jb 0x100043f1
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x98]
call fcn.10002845
mov edx, 0xffff3b3b
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x98]
call fcn.10004612
push ebx
push 1
lea ecx, [ebp - 0x98]
call fcn.100026f1
lea ecx, [ebp - 0xb0]
jmp 0x10004596
movaps xmm0, xmmword [0x1003f000]
xor ebx, ebx
movups xmmword [ebp - 0x68], xmm0
mov edx, ebx
movaps xmm0, xmmword [0x1003eed0]
push edi
movups xmmword [ebp - 0x58], xmm0
mov cl, byte [ebp - 0x68]
xor byte [ebp + edx - 0x67], cl
inc edx
cmp edx, 0x1e
jb 0x10004445
sub esp, 0x18
mov byte [ebp - 0x49], bl
lea eax, [ebp - 0x67]
mov ecx, esp
push eax
call fcn.10002845
lea eax, [ebp - 0x80]
push eax
call fcn.10004ac0
add esp, 0x20
mov dword [ebp - 4], 4
cmp dword [eax + 0x14], 0x10
jb 0x1000447e
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x28]
call fcn.10002845
mov edx, 0xff6565ff
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x28]
call fcn.10004612
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.100026f1
lea ecx, [ebp - 0x80]
jmp 0x10004596
movaps xmm0, xmmword [0x1003f8f0]
xor ebx, ebx
push edi
movups xmmword [ebp - 0x24], xmm0
mov dword [ebp - 0x14], 0x100b193b
mov edx, ebx
mov word [ebp - 0x10], 0x56
mov cl, byte [ebp - 0x24]
xor byte [ebp + edx - 0x23], cl
inc edx
cmp edx, 0x14
jb 0x100044c8
sub esp, 0x18
mov byte [ebp - 0xf], bl
lea eax, [ebp - 0x23]
mov ecx, esp
push eax
call fcn.10002845
lea eax, [ebp - 0x60]
push eax
call fcn.10004ac0
add esp, 0x20
mov dword [ebp - 4], 2
cmp dword [eax + 0x14], 0x10
jb 0x10004501
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x80]
call fcn.10002845
mov byte [ebp - 4], 3
mov edx, 0xffff3b3b
jmp 0x10004580
movaps xmm0, xmmword [str.Ie______il_i]
xor ebx, ebx
push edi
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0x693d212e
mov edx, ebx
mov dword [ebp - 0x14], 0x213a280a
mov word [ebp - 0x10], 0x67
mov cl, byte [ebp - 0x28]
xor byte [ebp + edx - 0x27], cl
inc edx
cmp edx, 0x18
jb 0x10004539
sub esp, 0x18
mov byte [ebp - 0xf], bl
lea eax, [ebp - 0x27]
mov ecx, esp
push eax
call fcn.10002845
lea eax, [ebp - 0x60]
push eax
call fcn.10004ac0
add esp, 0x20
mov dword [ebp - 4], ebx
cmp dword [eax + 0x14], 0x10
jb 0x1000456e
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x80]
call fcn.10002845
mov byte [ebp - 4], 1
mov edx, 0xff6565ff
lea ecx, [ebp - 0x80]
call fcn.10004612
push ebx
push 1
lea ecx, [ebp - 0x80]
call fcn.100026f1
lea ecx, [ebp - 0x60]
push ebx
push 1
call fcn.100026f1
call fcn.100354c6
ret
push 0x34
mov eax, 0x10035f2c
call fcn.10035531
xor ebx, ebx
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], ebx
mov byte [ebp - 0x28], bl
lea eax, [ebp - 0x28]
mov dword [ebp - 4], ebx
push eax
call fcn.10004033
mov ecx, eax
call fcn.10003f82
cmp dword [ebp - 0x14], 0x10
lea ecx, [ebp - 0x28]
mov esi, eax
cmovae ecx, dword [ebp - 0x28]
push ecx
lea ecx, [ebp - 0x40]
call fcn.10002845
mov edx, esi
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x40]
call fcn.10004612
push ebx
push 1
lea ecx, [ebp - 0x40]
call fcn.100026f1
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.100026f1
call fcn.100354db
ret
push 0x64
mov eax, 0x10035f71
call fcn.10035531
push 0xf
xor ebx, ebx
pop eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], ebx
mov byte [ebp - 0x40], bl
mov dword [ebp - 4], ebx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], ebx
mov byte [ebp - 0x28], bl
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.10004033
mov ecx, eax
call fcn.10004033
cmp dword [ebp - 0x30], ebx
je 0x1000468b
cmp dword [ebp - 0x30], 0xff
ja 0x100046f5
cmp dword [ebp - 0x18], 0
je 0x10004697
cmp dword [ebp - 0x18], 0x1e
ja 0x100046f5
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x70]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.10002845
mov byte [ebp - 4], 2
lea eax, [ebp - 0x40]
cmp dword [ebp - 0x2c], 0x10
lea ecx, [ebp - 0x58]
cmovae eax, dword [ebp - 0x40]
push eax
call fcn.10002845
push ebx
push ecx
mov byte [ebp - 4], 3
lea eax, [ebp - 0x70]
and dword [esp], 0
push ebx
push ebx
push ebx
push eax
lea eax, [ebp - 0x58]
push eax
push eax
call dword [0x1003dcd4]
push ebx
push 1
lea ecx, [ebp - 0x58]
call fcn.100026f1
push ebx
push 1
lea ecx, [ebp - 0x70]
call fcn.100026f1
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.100026f1
push ebx
push 1
lea ecx, [ebp - 0x40]
call fcn.100026f1
call fcn.100354db
ret
push 0x1c
mov eax, 0x10035fc1
call fcn.10035531
mov ebx, ecx
xor eax, eax
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x28], al
mov dword [ebp - 4], eax
lea eax, [ebp - 0x28]
push eax
call fcn.10004033
cmp dword [ebp - 0x18], 0
je 0x100047ca
mov ecx, ebx
call fcn.10003f82
mov ecx, ebx
mov edi, eax
call fcn.10003f82
mov ecx, ebx
mov esi, eax
call fcn.10003f82
push eax
push esi
mov edx, edi
lea ecx, [ebp - 0x28]
call fcn.10004711
pop ecx
pop ecx
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.100026f1
call fcn.100354db
ret
push 0x34
mov eax, 0x10036022
call fcn.10035531
mov esi, ecx
mov dword [ebp - 0x18], 0xf
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x1c], eax
mov byte [ebp - 0x2c], al
call fcn.1000410c
mov ecx, esi
mov bl, al
call fcn.10003f82
movzx ecx, bl
mov edi, eax
sub ecx, 1
je 0x1000499d
sub ecx, 1
je 0x10004987
sub ecx, 1
je 0x1000487f
sub ecx, 1
jne 0x10004aae
mov edx, edi
call fcn.1000382e
test eax, eax
je 0x10004aae
mov ecx, eax
call fcn.10003fa7
mov edx, edi
mov ecx, 0x1004b414
call fcn.100037c2
mov ecx, edi
call fcn.1000555c
mov esi, eax
test esi, esi
je 0x10004aae
push 4
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10004aae
mov ecx, esi
call fcn.1000bb3e
jmp 0x10004aae
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.10004033
mov esi, eax
mov ecx, esi
call fcn.1000410c
mov bl, al
mov ecx, esi
mov byte [ebp - 0x38], bl
call fcn.1000410c
mov bh, al
mov ecx, esi
mov byte [ebp - 0x34], bh
call fcn.1000410c
mov edx, edi
mov byte [ebp - 0x30], al
call fcn.1000382e
cmp dword [ebp - 0x1c], 0
mov esi, eax
je 0x10004aae
test esi, esi
jne 0x10004963
push 0x1c
call fcn.10034446
mov esi, eax
pop ecx
mov dword [ebp - 0x3c], esi
push dword [ebp - 0x30]
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 3
push dword [ebp - 0x34]
push dword [ebp - 0x38]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.10002347
mov ecx, esi
call fcn.10003fc5
push 0x1c
mov ebx, eax
mov byte [ebp - 4], 0
call fcn.10034446
mov esi, eax
pop ecx
mov dword [ebp - 0x40], esi
push dword [ebp - 0x30]
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 4
push dword [ebp - 0x34]
push dword [ebp - 0x38]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.10002347
mov ecx, esi
call fcn.10003fc5
push eax
mov edx, edi
mov byte [ebp - 4], 0
call fcn.10003884
test al, al
jne 0x10004851
test ebx, ebx
je 0x10004851
push 0
push 1
mov ecx, ebx
call fcn.100026f1
push 0x1c
push ebx
call fcn.10034479
pop ecx
pop ecx
jmp 0x10004851
lea eax, [ebp - 0x2c]
cmp esi, eax
je 0x10004976
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.100024d0
mov al, byte [ebp - 0x30]
mov byte [esi + 0x18], bl
mov byte [esi + 0x19], bh
mov byte [esi + 0x1a], al
jmp 0x10004851
mov edx, edi
call fcn.1000382e
test eax, eax
je 0x10004aae
mov ecx, eax
jmp 0x10004a9d
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.10004033
mov esi, eax
mov ecx, esi
call fcn.1000410c
mov bl, al
mov ecx, esi
mov byte [ebp - 0x38], bl
call fcn.1000410c
mov bh, al
mov ecx, esi
mov byte [ebp - 0x34], bh
call fcn.1000410c
mov edx, edi
mov byte [ebp - 0x30], al
call fcn.1000382e
cmp dword [ebp - 0x1c], 0
mov esi, eax
je 0x10004a97
test esi, esi
jne 0x10004a76
push 0x1c
call fcn.10034446
mov esi, eax
pop ecx
mov dword [ebp - 0x40], esi
push dword [ebp - 0x30]
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 1
push dword [ebp - 0x34]
push dword [ebp - 0x38]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.10002347
mov ecx, esi
call fcn.10003fc5
push 0x1c
mov ebx, eax
mov byte [ebp - 4], 0
call fcn.10034446
mov esi, eax
pop ecx
mov dword [ebp - 0x40], esi
push dword [ebp - 0x30]
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 2
push dword [ebp - 0x34]
push dword [ebp - 0x38]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.10002347
mov ecx, esi
call fcn.10003fc5
push eax
mov edx, edi
mov byte [ebp - 4], 0
call fcn.10003884
test al, al
jne 0x10004aae
test ebx, ebx
je 0x10004aae
push 0
push 1
mov ecx, ebx
call fcn.100026f1
push 0x1c
push ebx
call fcn.10034479
pop ecx
pop ecx
jmp 0x10004aae
lea eax, [ebp - 0x2c]
cmp esi, eax
je 0x10004a89
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.100024d0
mov al, byte [ebp - 0x30]
mov byte [esi + 0x18], bl
mov byte [esi + 0x19], bh
mov byte [esi + 0x1a], al
jmp 0x10004aae
test esi, esi
je 0x10004aae
mov ecx, esi
call fcn.10003fa7
mov edx, edi
mov ecx, 0x1004b414
call fcn.100037c2
push 0
push 1
lea ecx, [ebp - 0x2c]
call fcn.100026f1
call fcn.100354db
ret