Function at 0x4058fb
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8ec
push ebx
push esi
push edi
xor esi, esi
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x4ea]
cmp dword [ebp + 8], esi
mov word [ebp - 0x4ec], si
mov dword [ebp - 8], esi
rep stosd dword es:[edi], eax
mov dword [ebp - 0xc], esi
mov dword [ebp - 4], esi
stosw word es:[edi], ax
je 0x405bb5
mov ebx, 0x2c8
lea eax, [ebp - 0x2e4]
push ebx
push dword [ebp + 0x10]
push eax
call fcn.0040cff0
add esp, 0xc
cmp byte [ebp + 0x14], 0
je 0x40598b
lea eax, [ebp - 0x4ec]
push 0x104
push eax
call fcn.004054b7
pop ecx
test al, al
pop ecx
je 0x405bb5
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x4ec]
push eax
push dword [ebp + 0xc]
call fcn.00406736
add esp, 0xc
test eax, eax
jne 0x4059cc
jmp 0x405bb5
mov eax, dword [ebp - 0x2e4]
lea esi, [eax + 0x400]
push esi
call fcn.0040d969
test eax, eax
pop ecx
mov dword [ebp - 4], eax
je 0x405bb5
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x20], esi
push ecx
push eax
push dword [ebp - 0x2e4]
push dword [ebp + 0xc]
call fcn.00406885
add esp, 0x10
test eax, eax
je 0x405bb5
xor esi, esi
push 0x422b40
mov byte [ebp - 0x1b], 0x65
push dword [ebp + 8]
mov byte [ebp - 0x1c], 0x25
mov byte [ebp - 0x1a], 0x52
mov byte [ebp - 0x18], 0x74
mov byte [ebp - 0x19], 0x40
mov byte [ebp - 0x17], 0x6f
mov byte [ebp - 0x16], 0x50
mov byte [ebp - 0x15], 0x6d
mov byte [ebp - 0x13], 0x3c
mov byte [ebp - 0x14], 0x7c
mov byte [ebp - 0x12], 0x23
mov byte [ebp - 0x11], 0x59
mov byte [ebp - 0xf], 0x73
mov byte [ebp - 0x10], 0x4b
mov byte [ebp - 0xe], 0x24
mov byte [ebp - 0xd], 0x5e
call fcn.0040dc24
mov edi, eax
pop ecx
cmp edi, esi
pop ecx
mov dword [ebp + 0xc], edi
je 0x405bb5
push 2
push esi
push edi
call fcn.0040e2ab
add esp, 0xc
cmp byte [ebp + 0x14], 0
je 0x405a6c
lea eax, [ebp - 0x4ec]
push 0x422b30
push eax
call fcn.0040dc24
pop ecx
cmp eax, esi
pop ecx
mov dword [ebp - 8], eax
jne 0x405a5f
push edi
call fcn.0040da3d
jmp 0x405bb4
push esi
push esi
push eax
call fcn.0040e2ab
add esp, 0xc
jmp 0x405a72
mov eax, dword [ebp - 4]
mov dword [ebp - 0xc], eax
mov esi, dword [ebp - 0x20]
test esi, esi
mov dword [ebp + 0x14], esi
jle 0x405b2c
mov edi, 0x400
jmp 0x405a8a
mov esi, dword [ebp + 0x14]
mov eax, dword [ebp - 8]
test eax, eax
je 0x405ab8
test byte [eax + 0xc], 0x10
jne 0x405b2c
cmp esi, edi
jl 0x405aa1
mov esi, edi
push eax
push esi
lea eax, [ebp - 0x8ec]
push 1
push eax
call fcn.0040e364
add esp, 0x10
mov esi, eax
jmp 0x405adc
cmp esi, edi
mov eax, esi
jl 0x405ac0
mov eax, edi
push eax
lea eax, [ebp - 0x8ec]
push dword [ebp - 0xc]
push eax
call fcn.0040cff0
add esp, 0xc
cmp esi, edi
jl 0x405ad9
mov esi, edi
add dword [ebp - 0xc], esi
mov eax, dword [ebp - 0x48]
cmp eax, 0x20
jle 0x405ae7
push 0x20
pop eax
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x8ec]
push esi
push eax
call fcn.00405569
lea eax, [ebp - 0x8ec]
push esi
push eax
call fcn.00405594
push dword [ebp + 0xc]
lea eax, [ebp - 0x8ec]
push esi
push 1
push eax
call fcn.0040daba
add esp, 0x28
cmp eax, esi
jne 0x405b8e
sub dword [ebp + 0x14], eax
cmp dword [ebp + 0x14], 0
jg 0x405a87
lea eax, [ebp - 0x1c]
push 0x10
push eax
lea eax, [ebp - 0x2e4]
push ebx
push eax
call fcn.00405569
lea eax, [ebp - 0x2e4]
push ebx
push eax
call fcn.00405594
push dword [ebp + 0xc]
lea eax, [ebp - 0x2e4]
push ebx
push 1
push eax
call fcn.0040daba
push dword [ebp + 0xc]
call fcn.0040da3d
add esp, 0x2c
cmp dword [ebp - 8], 0
je 0x405b78
push dword [ebp - 8]
call fcn.0040da3d
pop ecx
cmp dword [ebp - 4], 0
je 0x405b87
push dword [ebp - 4]
call fcn.0040d9f5
pop ecx
mov al, 1
pop edi
pop esi
pop ebx
leave
ret
push dword [ebp + 0xc]
call fcn.0040da3d
cmp dword [ebp - 8], 0
pop ecx
je 0x405ba6
push dword [ebp - 8]
call fcn.0040da3d
pop ecx
cmp dword [ebp - 4], 0
je 0x405bb5
push dword [ebp - 4]
call fcn.0040d9f5
pop ecx
xor al, al
jmp 0x405b89