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

Disassembly:
sub esp, 0x64
mov eax, 0x198
push ebx
cdq
idiv dword [0x1018c60c]
mov eax, dword [0x1018c608]
push ebp
mov ebp, ecx
push esi
mov cl, byte [0x1018c613]
push edi
mov al, byte [edx + eax]
imul cl
dec cl
mov byte [esp + 0x18], al
mov byte [0x1018c613], cl
mov ecx, ebp
call fcn.10051050
mov ecx, 0x51
mov eax, 2
mov word [esp + 0x2a], cx
mov word [esp + 0x38], cx
mov ecx, 0x52
mov word [esp + 0x32], ax
mov word [esp + 0x3c], ax
mov word [esp + 0x58], ax
mov word [esp + 0x6a], ax
mov al, byte [0x10197abc]
mov word [esp + 0x44], cx
mov word [esp + 0x50], cx
mov ebx, 0x4b
mov esi, 0x50
mov edi, 0x4d
mov edx, 0x47
mov ecx, 0x54
mov word [esp + 0x20], 0x6f
test al, 1
mov word [esp + 0x22], bx
mov word [esp + 0x24], 0x41
mov word [esp + 0x26], si
mov word [esp + 0x28], di
mov word [esp + 0x2c], di
mov word [esp + 0x2e], 0x44
mov word [esp + 0x30], 0x56
mov word [esp + 0x34], 0x60
mov word [esp + 0x36], 0x43
mov word [esp + 0x3a], dx
mov word [esp + 0x3e], 0x61
mov word [esp + 0x40], si
mov word [esp + 0x42], 0x5b
mov word [esp + 0x46], 0x56
mov word [esp + 0x48], di
mov word [esp + 0x4a], 0x45
mov word [esp + 0x4c], si
mov word [esp + 0x4e], 0x43
mov word [esp + 0x52], 0x4a
mov word [esp + 0x54], bx
mov word [esp + 0x56], 0x41
mov word [esp + 0x5a], 0x72
mov word [esp + 0x5c], si
mov word [esp + 0x5e], di
mov word [esp + 0x60], cx
mov word [esp + 0x62], bx
mov word [esp + 0x64], 0x46
mov word [esp + 0x66], dx
mov word [esp + 0x68], si
mov word [esp + 0x6c], cx
mov word [esp + 0x6e], 0x13
mov word [esp + 0x70], 0xc
mov word [esp + 0x72], 0x12
jne 0x1005075b
or al, 1
push 0x56
mov byte [0x10197abc], al
call fcn.1013c2df
add esp, 4
mov dword [0x10197ac0], eax
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
push 0x22
mov ax, word [esp + ecx + 0x24]
mov ecx, 0x10197ac0
and eax, 0xffff
push eax
call fcn.100a8ee0
mov ecx, dword [0x10197ac0]
mov edx, eax
mov eax, dword [esp + 0x10]
add edx, 0x22
mov ax, word [esp + eax + 0x20]
xor edx, eax
mov eax, dword [esp + 0x10]
mov word [eax + ecx], dx
add eax, 2
cmp eax, 0x54
mov dword [esp + 0x10], eax
jb 0x100506fd
mov edx, dword [0x10197ac0]
push 0x100514a0
mov word [edx + 0x54], 0
call fcn.1013c36b
add esp, 4
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 4]
test eax, eax
jne 0x1005076b
mov eax, 0x1016a1d8
mov edx, dword [0x10197ac0]
push 0
push 1
lea ecx, [ebp + 0x20]
push edx
push eax
push ecx
call fcn.100514b0
add esp, 0x14
test eax, eax
jne 0x10050971
mov eax, 0x104
cdq
idiv dword [0x1018c60c]
mov eax, dword [0x1018c608]
mov cl, byte [edx + eax]
push ecx
push 0xffffffffffffffee
push 0xffffffffffffffd5
call fcn.10051460
add esp, 0xc
call fcn.100517b0
cmp eax, 0x80090016
jne 0x100509ee
mov eax, 2
mov ecx, 0x51
mov word [esp + 0x32], ax
mov word [esp + 0x3c], ax
mov word [esp + 0x58], ax
mov word [esp + 0x6a], ax
mov al, byte [0x10197abc]
mov word [esp + 0x28], di
mov word [esp + 0x2a], cx
mov word [esp + 0x2c], di
mov word [esp + 0x38], cx
mov word [esp + 0x48], di
mov word [esp + 0x5e], di
mov edx, 0x47
mov ecx, 0x52
mov edi, 0x54
test al, 1
mov word [esp + 0x20], 0x6f
mov word [esp + 0x22], bx
mov word [esp + 0x24], 0x41
mov word [esp + 0x26], si
mov word [esp + 0x2e], 0x44
mov word [esp + 0x30], 0x56
mov word [esp + 0x34], 0x60
mov word [esp + 0x36], 0x43
mov word [esp + 0x3a], dx
mov word [esp + 0x3e], 0x61
mov word [esp + 0x40], si
mov word [esp + 0x42], 0x5b
mov word [esp + 0x44], cx
mov word [esp + 0x46], 0x56
mov word [esp + 0x4a], 0x45
mov word [esp + 0x4c], si
mov word [esp + 0x4e], 0x43
mov word [esp + 0x50], cx
mov word [esp + 0x52], 0x4a
mov word [esp + 0x54], bx
mov word [esp + 0x56], 0x41
mov word [esp + 0x5a], 0x72
mov word [esp + 0x5c], si
mov word [esp + 0x60], di
mov word [esp + 0x62], bx
mov word [esp + 0x64], 0x46
mov word [esp + 0x66], dx
mov word [esp + 0x68], si
mov word [esp + 0x6c], di
mov word [esp + 0x6e], 0x13
mov word [esp + 0x70], 0xc
mov word [esp + 0x72], 0x12
jne 0x10050939
mov bl, al
push 0x56
or bl, 1
mov byte [0x10197abc], bl
call fcn.1013c2df
add esp, 4
mov dword [0x10197ac0], eax
xor esi, esi
mov bx, word [esp + esi + 0x20]
push 0x22
mov edx, ebx
mov ecx, 0x10197ac0
and edx, 0xffff
push edx
call fcn.100a8ee0
mov ecx, dword [0x10197ac0]
add eax, 0x22
xor eax, ebx
mov word [esi + ecx], ax
add esi, 2
cmp esi, edi
jb 0x100508f0
mov edx, dword [0x10197ac0]
push 0x100514a0
mov word [edx + 0x54], 0
call fcn.1013c36b
add esp, 4
mov ebx, dword [esp + 0x78]
mov eax, dword [ebx + 4]
test eax, eax
jne 0x10050949
mov eax, 0x1016a1d8
mov ecx, dword [0x10197ac0]
push 8
push 1
push ecx
push eax
lea eax, [ebp + 0x20]
push eax
call fcn.10051a20
add esp, 0x14
test eax, eax
jne 0x10050975
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x64
ret 8
mov ebx, dword [esp + 0x78]
mov edx, dword [ebp + 0x20]
lea esi, [ebp + 0x24]
push esi
push 0
push 0
push 0x8003
push edx
call fcn.10051d20
add esp, 0x14
test eax, eax
jne 0x1005099e
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x64
ret 8
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
test eax, eax
jne 0x100509b1
mov eax, 0x1016a1d8
push 0
push ecx
push eax
mov eax, dword [esi]
push eax
call fcn.10051fd0
add esp, 0x10
test eax, eax
jne 0x100509d0
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x64
ret 8
mov edx, dword [esi]
mov eax, dword [ebp + 0x20]
lea ecx, [ebp + 0x28]
push ecx
push 0
push edx
push 0x6602
push eax
call fcn.10052260
add esp, 0x14
test eax, eax
jne 0x100509fa
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x64
ret 8
mov eax, dword [ebx + 8]
mov edi, dword [0x1016a210]
mov esi, eax
cmp edi, esi
jae 0x10050a0b
mov esi, edi
cmp ebp, ebx
jne 0x10050a70
cmp dword [ebp + 8], esi
jae 0x10050a19
call fcn.10130893
mov ecx, ebp
call fcn.1000ccd0
mov eax, dword [ebp + 8]
sub eax, esi
cmp eax, edi
jae 0x10050a2b
mov edi, eax
test edi, edi
jbe 0x10050a63
mov ecx, dword [ebp + 4]
sub eax, edi
lea edx, [edi + esi]
push eax
lea eax, [ecx + edx*2]
lea ecx, [ecx + esi*2]
push eax
push ecx
call fcn.10007ec0
mov esi, dword [ebp + 8]
add esp, 0xc
sub esi, edi
mov ecx, ebp
push 0
push esi
call fcn.1000c010
test al, al
je 0x10050a63
push esi
mov ecx, ebp
call fcn.1000bff0
push 0
push 0
mov ecx, ebp
call fcn.10025280
jmp 0x10050aec
test esi, esi
jbe 0x10050ab8
cmp esi, eax
jne 0x10050ab8
mov eax, dword [ebx + 4]
test eax, eax
jne 0x10050a84
mov eax, 0x1016a1d8
cmp byte [eax - 1], 0xfe
jae 0x10050ab8
push 1
mov ecx, ebp
call fcn.1000bc70
mov eax, dword [ebx + 4]
test eax, eax
jne 0x10050a9f
mov eax, 0x1016a1d8
mov dword [ebp + 4], eax
mov edx, dword [ebx + 8]
mov dword [ebp + 8], edx
mov ecx, dword [ebx + 0xc]
mov dword [ebp + 0xc], ecx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x10050aec
push 1
push esi
mov ecx, ebp
call fcn.1000c010
test al, al
je 0x10050aec
mov eax, dword [ebx + 4]
test eax, eax
jne 0x10050ad2
mov eax, 0x1016a1d8
mov edx, dword [ebp + 4]
push esi
push eax
push edx
call fcn.100017d0
mov eax, dword [ebp + 4]
mov dword [ebp + 8], esi
add esp, 0xc
mov word [eax + esi*2], 0
mov cl, byte [esp + 0x18]
mov ebx, dword [esp + 0x7c]
mov edi, dword [0x1016a210]
mov byte [0x1018c617], cl
mov eax, dword [ebx + 8]
add ebp, 0x10
mov esi, eax
cmp edi, esi
jae 0x10050b0e
mov esi, edi
cmp ebp, ebx
jne 0x10050b84
cmp dword [ebp + 8], esi
jae 0x10050b1c
call fcn.10130893
mov ecx, ebp
call fcn.1000ccd0
mov eax, dword [ebp + 8]
sub eax, esi
cmp eax, edi
jae 0x10050b2e
mov edi, eax
test edi, edi
jbe 0x10050b66
mov ecx, dword [ebp + 4]
sub eax, edi
lea edx, [edi + esi]
push eax
lea eax, [ecx + edx*2]
lea ecx, [ecx + esi*2]
push eax
push ecx
call fcn.10007ec0
mov esi, dword [ebp + 8]
add esp, 0xc
sub esi, edi
mov ecx, ebp
push 0
push esi
call fcn.1000c010
test al, al
je 0x10050b66
push esi
mov ecx, ebp
call fcn.1000bff0
push 0
push 0
mov ecx, ebp
call fcn.10025280
pop edi
pop esi
pop ebp
mov byte [0x1018c612], 0xf8
mov al, 1
pop ebx
add esp, 0x64
ret 8
test esi, esi
jbe 0x10050bdd
cmp esi, eax
jne 0x10050bdd
mov eax, dword [ebx + 4]
test eax, eax
jne 0x10050b98
mov eax, 0x1016a1d8
cmp byte [eax - 1], 0xfe
jae 0x10050bdd
push 1
mov ecx, ebp
call fcn.1000bc70
mov eax, dword [ebx + 4]
test eax, eax
jne 0x10050bb3
mov eax, 0x1016a1d8
mov dword [ebp + 4], eax
mov edx, dword [ebx + 8]
mov dword [ebp + 8], edx
mov ecx, dword [ebx + 0xc]
mov dword [ebp + 0xc], ecx
mov cl, byte [eax - 1]
inc cl
pop edi
pop esi
mov byte [eax - 1], cl
pop ebp
mov byte [0x1018c612], 0xf8
mov al, 1
pop ebx
add esp, 0x64
ret 8
push 1
push esi
mov ecx, ebp
call fcn.1000c010
test al, al
je 0x10050c1b
mov ecx, dword [ebx + 4]
test ecx, ecx
jne 0x10050bf7
mov ecx, 0x1016a1d8
mov eax, dword [ebp + 4]
test esi, esi
jbe 0x10050c0f
mov edx, esi
mov di, word [ecx]
add ecx, 2
mov word [eax], di
add eax, 2
dec edx
jne 0x10050c00
mov edx, dword [ebp + 4]
mov dword [ebp + 8], esi
mov word [edx + esi*2], 0
pop edi
pop esi
pop ebp
mov byte [0x1018c612], 0xf8
mov al, 1
pop ebx
add esp, 0x64
ret 8