Function at 0x478590
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x88
push ebx
push ebp
push esi
mov ebx, ecx
push edi
mov ecx, 0xf
xor eax, eax
lea edi, [esp + 0x59]
mov byte [esp + 0x58], 0
mov dword [esp + 0x10], 1
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x58]
push eax
push 0x252a
call fcn.00487160
mov ecx, eax
call fcn.004839e0
push eax
mov ecx, ebx
call fcn.004793a0
test eax, eax
jge 0x4785ec
lea ecx, [esp + 0x58]
push ecx
call fcn.00487160
mov ecx, eax
call fcn.00485010
lea edx, [esp + 0x58]
push 0x40
push edx
call fcn.00471b50
mov ecx, 7
xor eax, eax
lea edi, [esp + 0x41]
mov byte [esp + 0x40], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x40]
push eax
call fcn.00479420
mov edi, dword [ebx + 0x2f90]
add esp, 0xc
mov dword [esp + 0x14], eax
push 1
push 0x23ee
call fcn.00487160
mov ecx, eax
call fcn.00483920
test eax, eax
je 0x478642
mov edi, 0x50
jmp 0x47864e
cmp edi, 0xa0
jae 0x4787b6
lea ecx, [edi + edi*8]
lea edx, [edi + ecx*2]
lea ebp, [ebx + edx*4 + 0xc]
lea ecx, [ebp - 4]
call fcn.00477a30
test eax, eax
je 0x478697
mov esi, ebp
lea eax, [esp + 0x58]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x47868e
test cl, cl
je 0x47868a
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x47868e
add eax, 2
add esi, 2
test cl, cl
jne 0x47866a
xor eax, eax
jmp 0x478693
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4786a8
inc edi
add ebp, 0x4c
cmp edi, 0xa0
jb 0x478658
jmp 0x4787b6
mov ecx, ebx
call fcn.004790a0
mov dword [esp + 0x10], eax
lea eax, [edi + edi*8]
lea edx, [esp + 0x38]
lea ecx, [edi + eax*2]
mov eax, dword [esp + 0x14]
push edx
push eax
lea esi, [ebx + ecx*4]
lea ebp, [esi + 8]
mov ecx, ebp
call fcn.00477c10
test eax, eax
jne 0x4786f8
mov edi, dword [esp + 0x10]
test edi, edi
je 0x4786eb
mov ecx, 0x675aa8
call fcn.004a1700
test dword [edi + 0x28], eax
jne 0x4786f8
mov dword [esp + 0x10], 2
jmp 0x4787b6
mov ecx, 8
xor eax, eax
lea edi, [esi + 0xc]
lea edx, [esi + 0x38]
rep stosd dword es:[edi], eax
xor edi, edi
xor ecx, ecx
mov dword [esi + 0x2c], edi
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], edi
mov eax, dword [ebp]
and al, 0xfe
mov dword [ebp], eax
mov dword [edx], ecx
mov dword [edx + 4], ecx
mov dword [edx + 8], ecx
mov dword [edx + 0xc], ecx
mov byte [esi + 0x50], cl
mov ecx, ebx
call fcn.00478f70
mov esi, dword [ebx + 0x2f8c]
mov eax, 0x65
mov word [esp + 0x1a], ax
mov word [esp + 0x1e], ax
mov word [esp + 0x22], ax
mov word [esp + 0x2a], ax
lea eax, [esp + 0x18]
dec esi
push 0xf
push eax
mov ecx, ebx
mov dword [ebx + 0x2f8c], esi
mov word [esp + 0x20], 0x44
mov word [esp + 0x24], 0x6c
mov word [esp + 0x28], 0x74
mov word [esp + 0x2c], 0x20
mov word [esp + 0x2e], 0x75
mov word [esp + 0x30], 0x73
mov word [esp + 0x34], 0x72
mov word [esp + 0x36], 0x69
mov word [esp + 0x38], 0x6e
mov word [esp + 0x3a], 0x66
mov word [esp + 0x3c], 0x6f
call fcn.00479100
mov dword [esp + 0x10], edi
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], 0
push ecx
push 0x251e
call fcn.00487160
mov ecx, eax
call fcn.00483bc0
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret