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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5419a6
mov eax, dword fs:[0]
push eax
sub esp, 0xd0
mov eax, dword [0x593dc0]
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 eax, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0xbc], ebx
mov esi, ecx
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0x8c], ebx
push 0x400
lea edi, [ebp - 0x88]
mov dword [ebp - 4], 1
call fcn.00403240
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 4], 2
mov edi, dword [ebp - 0x88]
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x8c], 4
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], eax
mov word [ebp - 0x18], cx
mov dword [ebp - 0x1c], 0x640069
mov word [ebp - 0x3c], cx
mov dword [ebp - 0x44], 0x61006e
mov dword [ebp - 0x40], 0x65006d
mov dword [ebp - 0x38], 0x32002e
mov dword [ebp - 0x34], 0x3f0004
mov dword [ebp - 0x30], 0x28003e
mov dword [ebp - 0x2c], 0x40038
mov dword [ebp - 0x28], 0x3a002b
mov dword [ebp - 0x24], 0x3e003c
mov word [ebp - 0x20], ax
lea esp, [esp]
xor word [ebp + eax*2 - 0x38], 0x5b
inc eax
cmp eax, 0xc
jb 0x412230
mov eax, dword [esi + 0x184]
xor ecx, ecx
mov word [ebp - 0x48], cx
mov dword [ebp - 0x58], 0x650073
mov dword [ebp - 0x54], 0x65006c
mov dword [ebp - 0x50], 0x740063
mov dword [ebp - 0x4c], 0x640065
mov esi, dword [eax]
mov dword [ebp - 0xb8], eax
cmp esi, eax
je 0x412393
xor eax, eax
mov dword [ebp - 0x5c], 3
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
push edi
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 3
mov edx, dword [esi + 0x10]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.004033b0
mov edx, dword [esi + 0x14]
push edi
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x44]
call fcn.004033b0
mov edx, dword [esi + 0x18]
push edi
lea ecx, [ebp - 0x68]
push ecx
lea ecx, [ebp - 0x38]
call fcn.004033b0
movzx edx, byte [esi + 0x24]
push edi
push edx
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x58]
call fcn.00413270
mov ecx, dword [ebp - 0x90]
cmp dword [ebp - 0x94], ecx
jb 0x41230f
cmp ecx, ebx
jne 0x4122e5
mov ebx, 0x10
jmp 0x4122ec
lea ebx, [ecx + ecx]
cmp ebx, ecx
jbe 0x41230d
mov edx, ebx
shl edx, 4
push edx
mov edx, dword [ebp - 0x98]
shl ecx, 4
push edi
call fcn.00404740
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x90], ebx
xor ebx, ebx
mov ecx, dword [ebp - 0x94]
mov eax, ecx
inc ecx
mov dword [ebp - 0x94], ecx
mov ecx, dword [ebp - 0x68]
shl eax, 4
add eax, dword [ebp - 0x98]
mov dword [eax], ecx
mov edx, dword [ebp - 0x64]
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0x60]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 0x5c]
mov dword [eax + 0xc], edx
mov byte [ebp - 4], 2
cmp byte [esi + 0x29], 0
mov dword [ebp - 0x5c], ebx
jne 0x412387
mov eax, dword [esi + 8]
cmp byte [eax + 0x29], 0
jne 0x41236c
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x29], 0
jne 0x412387
mov edi, edi
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x29], 0
je 0x412360
jmp 0x412387
mov eax, dword [esi + 4]
cmp byte [eax + 0x29], 0
jne 0x412385
cmp esi, dword [eax + 8]
jne 0x412385
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x29], 0
je 0x412375
mov esi, eax
cmp esi, dword [ebp - 0xb8]
jne 0x412274
push 1
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0xa4], ebx
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x9c], 0x100
call fcn.00415244
add esp, 4
cmp eax, ebx
je 0x4123ce
mov byte [eax], 0
jmp 0x4123d0
xor eax, eax
mov esi, dword [ebp - 0x9c]
push esi
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], eax
call fcn.0051e231
add esi, eax
add esp, 4
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], esi
lea eax, [ebp - 0xb0]
mov byte [ebp - 4], 4
push 0x100
lea edi, [ebp - 0xd4]
mov dword [ebp - 0xd8], eax
call fcn.00403240
lea ecx, [ebp - 0xd8]
push ecx
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 5
call fcn.00403460
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xa8]
mov esi, ecx
lea edx, [ecx + 2]
sub esi, eax
cmp edx, dword [ebp - 0xa0]
jb 0x412482
mov edi, dword [ebp - 0x9c]
add edi, edi
lea ecx, [esi + 2]
cmp edi, ecx
jae 0x412461
mov edi, ecx
push edi
push eax
call fcn.0051e2c5
add esp, 8
mov dword [ebp - 0xa8], eax
lea ecx, [eax + esi]
add eax, edi
mov dword [ebp - 0x9c], edi
mov dword [ebp - 0xa0], eax
mov eax, ecx
add ecx, 2
mov dword [ebp - 0xa4], ecx
xor ecx, ecx
mov word [eax], cx
sub dword [ebp - 0xa4], 2
mov edi, dword [ebp - 0xa8]
shr esi, 1
call fcn.00415eb7
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4124bb
push 0x80004005
call fcn.00402460
cmp edi, ebx
jne 0x4124cd
cmp esi, ebx
je 0x4124cd
push 0x80070057
call fcn.00402460
mov edx, dword [eax]
push 2
mov ecx, eax
mov eax, dword [edx]
push esi
call eax
cmp eax, ebx
jne 0x4124e1
call fcn.004017d0
mov ecx, dword [ebp - 0xb4]
add eax, 0x10
mov dword [ecx], eax
cmp esi, ebx
jl 0x4124c3
cmp esi, dword [eax - 8]
jg 0x4124c3
mov dword [eax - 0xc], esi
mov edx, dword [ecx]
lea eax, [esi + esi]
push eax
xor esi, esi
push edi
mov word [eax + edx], si
mov ecx, dword [ecx]
push eax
push ecx
call fcn.0051dbc1
add esp, 0x10
mov esi, dword [ebp - 0xd0]
cmp esi, ebx
je 0x41254d
cmp dword [esi], ebx
je 0x41253b
nop
mov eax, dword [esi]
cmp eax, dword [esi + 8]
je 0x412539
mov edi, dword [eax + 8]
push eax
call fcn.0051dda7
add esp, 4
mov dword [esi], edi
test edi, edi
jne 0x412520
xor ebx, ebx
mov eax, dword [esi + 0x10]
push eax
call fcn.00415273
push esi
call fcn.00415273
add esp, 8
mov ecx, dword [ebp - 0xa8]
push ecx
call fcn.0051dda7
mov edx, dword [ebp - 0xac]
push edx
call fcn.00415273
mov esi, dword [ebp - 0x84]
add esp, 8
cmp esi, ebx
je 0x4125a1
cmp dword [esi], ebx
je 0x41258f
mov eax, dword [esi]
cmp eax, dword [esi + 8]
je 0x41258f
mov edi, dword [eax + 8]
push eax
call fcn.0051dda7
add esp, 4
mov dword [esi], edi
test edi, edi
jne 0x412576
mov eax, dword [esi + 0x10]
push eax
call fcn.00415273
push esi
call fcn.00415273
add esp, 8
mov eax, dword [ebp - 0xb4]
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.0051d79f
mov esp, ebp
pop ebp
ret 4