Function at 0x405e36
Capabilities:
Packed with generic packer

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
push edi
push 1
push 0
mov edi, ecx
mov dword [ebp - 0x10], edx
push 0
push edi
mov dword [ebp - 8], edi
mov esi, 0x427800
call dword [0x44221c]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0xc], eax
cmp ebx, 0x1fff
jb 0x405e6e
mov ebx, 0x1fff
push 0x4261a4
call dword [0x442318]
mov ecx, dword [ebp + 0xc]
push 0
push ecx
push ebx
push 0x427800
push edi
call dword [0x442210]
push 0x4261a4
mov edi, eax
call dword [0x442300]
test edi, edi
je 0x406b89
mov eax, dword [ebp + 0xc]
mov edi, dword [eax]
test edi, edi
je 0x406b89
mov ecx, edi
mov dword [ebp - 4], ecx
jle 0x405ee6
nop
cmp ecx, 3
jl 0x405ecd
mov al, byte [esi]
cmp al, 0xa
je 0x41dbfb
cmp al, 0xd
je 0x405f62
movzx eax, byte [esi]
cmp byte [eax + 0x4267e0], 0
jne 0x41dc0a
dec ecx
inc esi
mov dword [ebp - 4], ecx
test ecx, ecx
jg 0x405eb6
mov ecx, dword [0x426120]
call fcn.00405f23
test eax, eax
je 0x406b94
mov eax, 1
push ebx
push dword [ebp - 0x10]
push edi
push 0x427800
push eax
push ecx
call dword [0x442270]
mov ecx, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov dword [ecx], eax
mov esp, ebp
pop ebp
ret 8
cmp byte [esi + 1], 0xa
jne 0x405ecd
mov eax, dword [ebp - 0xc]
mov edi, esi
sub edi, 0x427800
mov byte [esi + 2], 0
push 0
add edi, 2
push 0
add eax, edi
push eax
push dword [ebp - 8]
call dword [0x44221c]
jmp 0x405ee6
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 8
xor eax, eax
jmp 0x405efe
add al, byte [eax]
or al, byte [eax - 0x16]
inc ecx
add byte [edx], al
add byte [ebx], cl
inc esp
jae 0x41dc7d
imul ebp, dword [esi + 0x61], 0x6e6f6974
outsb dx, byte [esi]
popal
je 0x41dc77
outsd dx, dword [esi]
outsb dx, byte [esi]
add al, byte [eax]
add dh, byte [edx + esi]
inc eax
add byte [eax + eax], cl
add eax, 0x65747942
jae 0x41dc22
add byte [eax + 0x34], al
xor al, byte [eax]
or byte [eax], al
add dword [ecx], eax
add al, byte [eax]
add al, byte [eax]
mov dword [eax], eax
and ah, bl
add byte gs:[edi], al
xor al, 0x32
inc eax
add byte [eax], cl
add byte [ecx], al
add dword [edx], eax
add byte [edx], al
add byte [ecx + 0x65dc2000], cl
add byte [edi], al
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
jbe 0x41dc9f
jb 0x41dcb0
add eax, dword [eax]
xor al, 0x32
inc eax
add byte [eax + eax], bl
pop es
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
or al, byte [eax - 0x16]
inc ecx
add byte [ecx], al
add byte [esi], al
push ebx
outsd dx, dword [esi]
jne 0x41dcd1
arpl word [ebp + 2], sp
add byte [edx], cl
inc eax
ljmp 0x440b
add byte [esi], dl
mov ah, 0x10
inc eax
add byte [eax], bl
add byte [0x65747942], al
sbb byte [eax], al
add eax, 0x65747942
jae 0x41dc88
add byte [eax], al
pushfd
adc byte [eax], al
adc byte [eax], al
or dl, byte [ebx + 0x74]
popal
jb 0x41dd08
dec ecx
outsb dx, byte [esi]
js 0x41dc9c
add byte [eax], al
pushfd
adc byte [eax], al
or al, 0
add byte [eax + eax], cl
add eax, 0x6e756f43
je 0x41dcab
add byte [eax + 0x34], al
xor al, byte [eax]
or byte [eax], al
add dword [ecx], eax
add al, byte [eax]
add al, byte [eax]
mov dword [eax], eax
and ah, bl
add byte gs:[edi], al
xor al, 0x32
inc eax
add byte [eax], cl
add byte [ecx], al
add dword [edx], eax
add byte [edx], al
add byte [ecx + 0x65dc2000], cl
add byte [edi], al
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
jbe 0x41dd28
jb 0x41dd39
add eax, dword [eax]
xor al, 0x32
inc eax
add byte [eax], bl
add byte [edi], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx + edx*2], al
add byte [eax], al
add byte [eax], al
add al, 0x53
insb byte es:[edi], dx
add al, byte [eax]
or al, byte [eax - 0x16]
inc ecx
add byte [ecx], al
add byte [esi], al
push ebx
outsd dx, dword [esi]
jne 0x41dd5a
arpl word [ebp + 2], sp
add byte [edx], cl
inc eax
ljmp 0x440b
add eax, 0x65747942
jae 0x41dd11
add byte [eax], al
pushfd
adc byte [eax], al
adc byte [eax], al
or dl, byte [ebx + 0x74]
popal
jb 0x41dd91
dec ecx
outsb dx, byte [esi]
js 0x41dd25
add byte [eax], al
pushfd
adc byte [eax], al
or al, 0
add byte [eax + eax], cl
add eax, 0x6e756f43
je 0x41dd34
add byte [eax + 0x34], al
xor al, byte [eax]
or byte [eax], al
xor al, 0x32
inc eax
add byte [eax], cl
add byte [ecx], al
add dword [edx], eax
add byte [edx], al
add byte [0x4290bc00], ch
or byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add al, 0x53
ljmp 0x4109