Function at 0x407ec0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x541a96
mov eax, dword fs:[0]
push eax
sub esp, 0xb8
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 esi, esi
mov dword [ebp - 0xa8], esi
mov dword [ebp - 0xa4], eax
mov ebx, ecx
mov dword [ebp - 0x78], esi
push 0x400
lea edi, [ebp - 0x74]
mov dword [ebp - 4], 1
call fcn.00403240
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x58], esi
mov dword [ebp - 4], 2
mov esi, dword [ebx]
mov ebx, dword [ebx + 4]
mov edi, dword [ebp - 0x74]
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x78], 4
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
mov word [ebp - 0x18], cx
mov dword [ebp - 0x1c], 0x640069
mov word [ebp - 0x20], cx
mov dword [ebp - 0x30], 0x6d0063
mov dword [ebp - 0x2c], 0x5f0064
mov dword [ebp - 0x28], 0x720061
mov dword [ebp - 0x24], 0x730067
mov word [ebp - 0x34], cx
mov dword [ebp - 0x44], 0x780065
mov dword [ebp - 0x40], 0x5f0065
mov dword [ebp - 0x3c], 0x69006c
mov dword [ebp - 0x38], 0x6b006e
mov dword [ebp - 0xa0], ebx
cmp esi, ebx
je 0x40805e
lea ecx, [ecx]
xor eax, eax
mov dword [ebp - 0x48], 3
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
push edi
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 3
mov edx, dword [esi + 0xc]
push ecx
lea ecx, [ebp - 0x44]
call fcn.004033b0
mov edx, dword [esi]
push edi
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp - 0x1c]
call fcn.004033b0
mov edx, dword [esi + 0x10]
push edi
lea ecx, [ebp - 0x54]
push ecx
lea ecx, [ebp - 0x30]
call fcn.004033b0
mov ecx, dword [ebp - 0x7c]
cmp dword [ebp - 0x80], ecx
jb 0x40801b
test ecx, ecx
jne 0x407ff6
lea ebx, [ecx + 0x10]
jmp 0x407ffd
lea ebx, [ecx + ecx]
cmp ebx, ecx
jbe 0x40801b
mov edx, ebx
shl edx, 4
push edx
mov edx, dword [ebp - 0x84]
shl ecx, 4
push edi
call fcn.00404740
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x7c], ebx
mov ecx, dword [ebp - 0x80]
mov eax, ecx
inc ecx
mov dword [ebp - 0x80], ecx
mov ecx, dword [ebp - 0x54]
shl eax, 4
add eax, dword [ebp - 0x84]
add esi, 0x18
mov dword [eax], ecx
mov edx, dword [ebp - 0x50]
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0x4c]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 0x48]
mov dword [eax + 0xc], edx
mov dword [ebp - 0x48], 0
mov byte [ebp - 4], 2
cmp esi, dword [ebp - 0xa0]
jne 0x407fa0
xor ebx, ebx
push 1
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], 0x100
call fcn.00415244
add esp, 4
cmp eax, ebx
je 0x40809a
mov byte [eax], bl
jmp 0x40809c
xor eax, eax
mov esi, dword [ebp - 0x88]
push esi
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x98], eax
call fcn.0051e231
add esi, eax
add esp, 4
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], esi
lea eax, [ebp - 0x9c]
mov byte [ebp - 4], 4
push 0x100
lea edi, [ebp - 0xc0]
mov dword [ebp - 0xc4], eax
call fcn.00403240
lea ecx, [ebp - 0xc4]
push ecx
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 5
call fcn.00403460
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x94]
mov esi, ecx
lea edx, [ecx + 2]
sub esi, eax
cmp edx, dword [ebp - 0x8c]
jb 0x40814e
mov edi, dword [ebp - 0x88]
add edi, edi
lea ecx, [esi + 2]
cmp edi, ecx
jae 0x40812d
mov edi, ecx
push edi
push eax
call fcn.0051e2c5
add esp, 8
mov dword [ebp - 0x94], eax
lea ecx, [eax + esi]
add eax, edi
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x8c], eax
mov eax, ecx
add ecx, 2
mov dword [ebp - 0x90], ecx
xor ecx, ecx
mov word [eax], cx
sub dword [ebp - 0x90], 2
mov edi, dword [ebp - 0x94]
shr esi, 1
call fcn.00415eb7
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x408187
push 0x80004005
call fcn.00402460
cmp edi, ebx
jne 0x408199
cmp esi, ebx
je 0x408199
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 0x4081ad
call fcn.004017d0
mov ebx, dword [ebp - 0xa4]
add eax, 0x10
mov dword [ebx], eax
test esi, esi
js 0x40818f
cmp esi, dword [eax - 8]
jg 0x40818f
mov dword [eax - 0xc], esi
mov ecx, dword [ebx]
lea eax, [esi + esi]
push eax
xor edx, edx
push edi
mov word [eax + ecx], dx
mov ecx, dword [ebx]
push eax
push ecx
call fcn.0051dbc1
add esp, 0x10
mov esi, dword [ebp - 0xbc]
test esi, esi
je 0x408225
cmp dword [esi], 0
je 0x408213
lea eax, [esi + 8]
mov dword [ebp - 0xa0], eax
mov eax, dword [esi]
mov ecx, dword [ebp - 0xa0]
cmp eax, dword [ecx]
je 0x408213
mov edi, dword [eax + 8]
push eax
call fcn.0051dda7
add esp, 4
mov dword [esi], edi
test edi, edi
jne 0x4081f5
mov edx, dword [esi + 0x10]
push edx
call fcn.00415273
push esi
call fcn.00415273
add esp, 8
mov eax, dword [ebp - 0x94]
push eax
call fcn.0051dda7
mov ecx, dword [ebp - 0x98]
push ecx
call fcn.00415273
mov esi, dword [ebp - 0x70]
add esp, 8
test esi, esi
je 0x408281
cmp dword [esi], 0
je 0x40826f
lea esp, [esp]
mov eax, dword [esi]
cmp eax, dword [esi + 8]
je 0x408269
mov edi, dword [eax + 8]
push eax
call fcn.0051dda7
add esp, 4
mov dword [esi], edi
test edi, edi
jne 0x408250
mov ebx, dword [ebp - 0xa4]
mov edx, dword [esi + 0x10]
push edx
call fcn.00415273
push esi
call fcn.00415273
add esp, 8
mov eax, ebx
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