Function at 0x4086c0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x900
cmp eax, 3
push ebx
push ebp
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
push esi
push edi
jne 0x408a62
mov ecx, dword [0x41bcf4]
mov di, word [0x4186a6]
mov bl, byte [0x4186a4]
mov dl, byte [0x4186a0]
cmp ecx, 1
jne 0x408774
mov eax, dword [0x418ce4]
cmp eax, 0xc
jb 0x4088bf
mov cl, dl
cmp cl, 7
jne 0x408d26
mov ecx, dword [0x4186a8]
mov byte [0x4186a4], 2
mov dword [0x417500], ecx
mov cl, byte [0x4174fc]
test cl, cl
jne 0x408742
cmp eax, 0x10
jb 0x408742
mov edx, dword [0x4186ac]
mov dword [0x4174fc], edx
push 5
call fcn.004036d0
push eax
lea eax, [esp + 0x18]
push 0x414620
push eax
call ebp
lea ecx, [esp + 0x20]
push 0
push ecx
call fcn.004038a0
mov eax, 2
add esp, 0x18
mov dword [0x41bcf4], eax
jmp 0x408a6f
cmp ecx, 2
jne 0x408874
mov eax, dword [0x418ce4]
cmp eax, 0x10
jb 0x4088bf
cmp di, 0x314
ja 0x4088bf
xor esi, esi
mov si, di
add esi, 0x10
cmp eax, esi
jl 0x4088bf
cmp dl, 7
jne 0x4088bf
cmp bl, 4
jne 0x4088bf
mov eax, dword [0x4174f8]
mov esi, eax
shl esi, 0x1e
shr eax, 2
add esi, eax
mov eax, dword [0x4186a8]
cmp esi, eax
jne 0x4088bf
mov dl, byte [0x4186a5]
xor esi, esi
mov dword [0x41bcf4], esi
mov byte [0x41240a], dl
call fcn.004091d0
mov eax, dword [0x4174f8]
mov ecx, eax
mov dword [0x41b29d], eax
shr ecx, 0x10
xor ecx, eax
mov ax, word [0x4186a6]
cmp ax, 0x20
mov word [0x41869c], cx
jb 0x408850
cmp ax, si
jbe 0x408843
mov al, byte [esi + 0x4186b0]
mov edx, esi
and edx, 7
mov cl, 8
sub cl, dl
mov bl, al
shr bl, cl
mov ecx, edx
xor edx, edx
shl al, cl
add bl, al
mov byte [esi + 0x4186b0], bl
mov dx, word [0x4186a6]
inc esi
cmp esi, edx
jl 0x408816
push 0x4186b0
call fcn.00408d40
add esp, 4
call fcn.00406a20
push 3
call fcn.0040a500
add esp, 4
mov dword [0x41bc50], 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x900
ret
test ecx, ecx
jne 0x4088bf
mov eax, dword [0x41bc50]
test eax, eax
je 0x4088bf
mov eax, dword [0x412020]
cmp eax, 3
jl 0x4088bf
cmp eax, 0x64
jge 0x4088bf
cmp dl, 7
jne 0x4088bf
cmp bl, 6
jne 0x4088bf
mov ax, word [0x4186a6]
cmp ax, word [0x41b2c0]
jne 0x408d26
pop edi
pop esi
pop ebp
mov byte [0x41bce2], 0x14
pop ebx
add esp, 0x900
ret
mov eax, dword [0x41bc4c]
xor ebp, ebp
cmp eax, ebp
jne 0x408a15
cmp dl, 7
jne 0x408a15
cmp bl, 6
jne 0x408a15
mov eax, dword [0x41bc40]
mov esi, 0xa
cmp eax, ebp
je 0x4089ea
mov dword [0x41bc40], ebp
call fcn.0040e9d0
push 1
push 0x11
mov byte [0x41205e], 1
mov byte [0x41bc78], 0xff
mov dword [0x41b504], esi
mov dword [0x41b624], ebp
call fcn.004036d0
add esp, 4
push eax
call fcn.004038a0
add esp, 8
call fcn.004091d0
mov ecx, dword [0x41b62c]
push ebp
push 0x12f
push ecx
call dword [sym.imp.USER32.dll_EnableMenuItem]
push 0x4a
call fcn.004036d0
push eax
call fcn.00403ee0
add esp, 8
mov dword [0x41b308], ebp
push ebp
call dword [sym.imp.USER32.dll_MessageBeep]
mov al, byte [0x41a56c]
test al, 1
mov byte [0x41bc9b], al
jne 0x408984
push 0x41b4ac
call fcn.00401c70
add esp, 4
mov word [0x41869c], ax
jmp 0x408992
mov dx, word [0x41b29d]
mov word [0x41869c], dx
test byte [0x41b2e1], 4
je 0x4089a8
mov eax, dword [0x41b648]
push ebp
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
call fcn.0040b9a0
xor ecx, ecx
push ebp
mov dword [0x4192a4], ecx
mov dword [0x4192a8], ecx
mov dword [0x4192ac], ecx
mov dword [0x4192b0], ecx
mov dword [0x4192b4], ecx
call fcn.00403700
push ebp
call fcn.00406960
push 3
call fcn.0040a500
mov di, word [0x4186a6]
add esp, 0xc
cmp dword [0x41b504], esi
jl 0x408d26
cmp di, word [0x41b2c0]
jne 0x408d26
pop edi
pop esi
pop ebp
mov byte [0x41bce2], 0x14
pop ebx
add esp, 0x900
ret
cmp ecx, 2
jne 0x408d26
cmp dl, 7
jne 0x408d26
cmp bl, 8
jne 0x408d26
xor edx, edx
lea eax, [esp + 0x10]
mov dl, byte [0x4186a5]
push edx
push str.Login_Error_lu
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea ecx, [esp + 0x1c]
push ebp
push ecx
call fcn.004038a0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x900
ret
mov eax, dword [0x41bcf4]
test eax, eax
je 0x408d26
dec eax
mov dword [0x41bcfc], 4
je 0x408cd3
dec eax
jne 0x408d26
mov edi, 0x41b538
or ecx, 0xffffffff
xor eax, eax
mov esi, 0x41b538
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x130]
mov byte [esp + 0x115], cl
mov ecx, dword [esp + 0x115]
and ecx, 0xff
mov byte [esp + 0x110], 7
mov edx, ecx
mov byte [esp + 0x111], 0
shr ecx, 2
mov byte [esp + 0x114], 3
push eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x32
mov edi, 0x41ad98
rep stosd dword es:[edi], eax
call fcn.00403520
mov eax, dword [esp + 0x119]
mov ecx, 0x32
and eax, 0xff
mov esi, 0x41ad98
add esp, 4
lea edi, [esp + eax + 0x130]
rep movsd dword es:[edi], dword [esi]
movzx cx, byte [esp + 0x115]
mov ax, word [0x416fe2]
mov edx, dword [0x416fde]
add ecx, 0xe8
mov word [esp + 0x11a], ax
mov word [esp + 0x112], cx
mov ecx, dword [0x4174fc]
mov dword [esp + 0x11c], ecx
mov ecx, dword [0x4174f4]
xor eax, eax
mov dword [esp + 0x116], edx
test ecx, ecx
mov dword [esp + 0x120], eax
je 0x408b6e
mov eax, 1
mov dword [esp + 0x120], eax
mov ecx, dword [0x41bc80]
test ecx, ecx
mov ecx, dword [0x41bc38]
je 0x408b8f
test ch, 4
je 0x408b85
or al, 2
or ah, 2
mov dword [esp + 0x120], eax
test cl, 2
je 0x408bb3
mov dl, byte [0x41b2e1]
and edx, 0x60
shl edx, 5
shr ecx, 1
or eax, edx
and ecx, 0x1000
or eax, ecx
mov dword [esp + 0x120], eax
push 9
call fcn.0040a500
add esp, 4
test al, al
je 0x408bd2
mov eax, dword [esp + 0x120]
or ah, 0x22
mov dword [esp + 0x120], eax
mov ecx, dword [esp + 0x112]
mov eax, dword [0x417500]
and ecx, 0xffff
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], 0x1312fc7
mov dword [esp + 0x12c], 0x7e
lea edx, [esp + ecx + 0x110]
mov dword [edx], 0
mov eax, dword [esp + 0x112]
and eax, 0xffff
add eax, 3
cdq
and edx, 3
add eax, edx
sar eax, 2
shl eax, 2
mov word [esp + 0x112], ax
mov esi, dword [esp + 0x112]
and esi, 0xffff
xor eax, eax
mov ecx, esi
shr ecx, 2
test ecx, ecx
jle 0x408c5a
lea edx, [esp + 0x110]
mov edi, dword [edx]
add edx, 4
xor eax, edi
dec ecx
jne 0x408c50
imul eax, eax, 0x12c4b7e
mov dword [esp + 0x128], eax
mov dword [0x4174f8], eax
mov al, byte [0x4174fc]
mov dword [esp + 0x12c], 0
test al, al
jne 0x408cb1
push 0x4174fc
call fcn.00403ed0
push eax
lea eax, [esp + 0x18]
push str.Login_Error__read_souip_error__s_
push eax
call ebp
lea ecx, [esp + 0x20]
push 0
push ecx
call fcn.004038a0
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x900
ret
mov eax, dword [0x41b594]
lea edx, [esp + 0x110]
push esi
push edx
push eax
call fcn.00406620
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x900
ret
mov edx, dword [0x41b594]
lea ecx, [esp + 0x110]
push 8
push ecx
push edx
mov byte [esp + 0x11c], 7
mov byte [esp + 0x11d], 1
mov word [esp + 0x11e], 8
mov byte [esp + 0x120], 1
mov byte [esp + 0x121], 0
mov byte [esp + 0x122], 0
mov byte [esp + 0x123], 0
call fcn.00406620
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x900
ret