Function at 0x449790
Capabilities:
Encode data using xor

Disassembly:
push 0xffffffffffffffff
push 0x483d58
mov eax, dword fs:[0]
push eax
sub esp, 0x68
mov eax, dword [0x4a0fe0]
xor eax, esp
mov dword [esp + 0x64], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a0fe0]
xor eax, esp
push eax
lea eax, [esp + 0x7c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x9c]
mov edi, dword [esp + 0xa4]
mov edx, dword [esp + 0xac]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x4c], edi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x38], edx
xor ebx, ebx
mov dword [esp + 0x84], ebx
xor ebp, ebp
lea esi, [esp + 0x54]
mov byte [esp + 0x17], 1
mov dword [esp + 0x18], ebp
mov dword [esp + 0x28], ebx
call fcn.004494f0
cmp edi, ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x3c], ebx
je 0x449c8e
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x449c8e
mov dword [edi], ebx
push 0x1c
mov dword [eax], ebx
call fcn.004648f3
mov esi, eax
add esp, 4
cmp esi, ebx
mov dword [esp + 0x30], esi
je 0x449c8e
push 0x495544
lea ecx, [esp + 0x54]
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
call fcn.0044c460
push eax
lea eax, [esp + 0x90]
push eax
lea ecx, [esp + 0x4c]
push ecx
mov byte [esp + 0x90], 1
call fcn.0044c550
add esp, 0xc
push eax
lea ecx, [esp + 0x90]
mov byte [esp + 0x88], 2
call fcn.0044c620
mov byte [esp + 0x84], 1
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4498d4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x84], bl
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4498fb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
movzx ecx, byte [eax + 0x10]
mov edx, dword [eax + 0xc]
push ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
push edx
push ecx
mov ecx, dword [esp + 0x98]
push str.POST
mov ebx, esi
call fcn.0044cc70
test eax, eax
je 0x449930
mov byte [esp + 0x17], 0
jmp 0x449c78
mov edx, dword [esp + 0x90]
mov edi, dword [sym.imp.WS2_32.dll_htonl]
push edx
call edi
mov dword [esp + 0x6b], eax
mov eax, dword [esp + 0x94]
push eax
call edi
mov ecx, dword [esp + 0x98]
push ecx
mov dword [esp + 0x73], eax
call edi
push 4
lea edx, [esp + 0x38]
push edx
push str.AdviceCheckCode
push str.SOFTWAREEPSONMyEpson_Portal
mov dword [esp + 0x83], eax
call fcn.004487d0
add esp, 0x10
test eax, eax
jne 0x4499d5
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x11], 0
jne 0x4499d5
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x20]
push edx
push str.AdvicePostData
push str.SOFTWAREEPSONMyEpson_Portal
call fcn.00448950
add esp, 0x10
test eax, eax
jne 0x4499d5
cmp dword [esp + 0x1c], eax
je 0x4499d5
mov ecx, dword [esp + 0x1c]
push 5
push 0x23
lea eax, [esp + 0x5c]
push eax
push ecx
lea eax, [esp + 0x6c]
call fcn.0044bcc0
test al, al
je 0x4499d5
mov edx, dword [esp + 0x34]
mov dword [esp + 0x5d], edx
jmp 0x4499e8
push 0
call edi
push eax
mov ecx, str.AdviceCheckCode
mov dword [esp + 0x61], eax
call fcn.0044bbf0
mov eax, dword [esp + 0x5d]
push eax
push 0x495544
push str.______s__CheckCode___d_n
call fcn.00401010
mov ecx, dword [esp + 0x69]
push ecx
push 0x495544
push str.__s__CheckCode___d_n
push 2
call fcn.00448d80
add esp, 0x1c
or al, 0xff
lea ecx, [esp + 0x5d]
mov edx, 0x1a
xor al, byte [ecx]
add ecx, 1
sub edx, 1
jne 0x449a20
mov edi, dword [esp + 0xa0]
test edi, edi
mov ebx, dword [esp + 0x24]
mov ecx, ebx
jbe 0x449a4a
mov edx, edi
lea ecx, [ecx]
xor al, byte [ecx]
add ecx, 1
sub edx, 1
jne 0x449a40
push 0
push 0
push 0
push 0
push 0
push 0
push edi
push ebx
mov byte [esp + 0x7c], al
push 1
push esi
mov eax, edi
mov edx, 0x23
lea ecx, [esp + 0x7c]
call fcn.0044d180
add esp, 0x28
test eax, eax
je 0x449a80
mov byte [esp + 0x17], 0
jmp 0x449c37
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x30]
push ecx
push esi
lea ebx, [esp + 0x28]
call fcn.0044d2f0
xor ebx, ebx
cmp eax, ebx
je 0x449b3e
mov ecx, dword [esp + 0x20]
cmp ecx, 0x197
jne 0x449ab7
mov edx, dword [esp + 0x2c]
mov byte [edx + 0x10], 1
cmp dword [esp + 0x3c], ebx
jne 0x449ad4
mov eax, dword [esp + 0x38]
cmp eax, ebx
je 0x449ac7
mov dword [eax], ecx
mov ebp, dword [esp + 0x18]
mov byte [esp + 0x17], bl
jmp 0x449c37
mov eax, dword [esp + 0x24]
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push edi
push eax
push 1
push esi
mov eax, edi
mov edx, 0x23
lea ecx, [esp + 0x7c]
call fcn.0044d180
add esp, 0x28
cmp eax, ebx
je 0x449b07
mov ebp, dword [esp + 0x18]
mov byte [esp + 0x17], bl
jmp 0x449c37
push ebx
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x30]
push edx
push esi
lea ebx, [esp + 0x28]
call fcn.0044d2f0
test eax, eax
je 0x449b3c
mov eax, dword [esp + 0x38]
test eax, eax
je 0x449b2e
mov ecx, dword [esp + 0x20]
mov dword [eax], ecx
mov ebp, dword [esp + 0x18]
mov byte [esp + 0x17], 0
jmp 0x449c37
xor ebx, ebx
mov ebp, dword [esp + 0x18]
cmp ebp, ebx
jne 0x449b4f
mov byte [esp + 0x17], bl
jmp 0x449c37
mov edx, dword [ebp + 4]
mov esi, dword [sym.imp.WS2_32.dll_ntohl]
push edx
call esi
cmp eax, 1
jne 0x449b7a
push 0x495544
push str.__s__status:_NO_DATA_n
push 2
mov byte [esp + 0x23], al
call fcn.00448d80
jmp 0x449c34
mov eax, dword [ebp + 4]
push eax
call esi
test eax, eax
je 0x449bbe
mov ecx, dword [ebp + 4]
push ecx
mov byte [esp + 0x1b], bl
call esi
push eax
push 0x495544
push str.___s__Server_status:_ERROR__d__n
call fcn.00401010
mov edx, dword [ebp + 4]
add esp, 0xc
push edx
call esi
push eax
push 0x495544
push str.__s__Server_status:_ERROR__d__n
push 2
call fcn.00448d80
add esp, 0x10
jmp 0x449c37
push 0x495544
push str.__s__Server_status:_OK_n
push ebx
call fcn.00448d80
mov eax, dword [ebp + 8]
add esp, 0xc
push eax
mov ecx, str.AdviceCheckCode
call fcn.0044bbf0
mov ecx, dword [esp + 0x24]
push ecx
lea edx, [esp + 0x58]
push edx
push str.AdvicePostData
mov eax, edi
mov ecx, 0x23
call fcn.0044bc20
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x40]
add eax, 0xffffffe6
push eax
push 0x42
mov dword [esi], eax
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
cmp eax, ebx
mov ecx, dword [esp + 0x4c]
mov dword [ecx], eax
jne 0x449c27
mov byte [esp + 0x17], bl
jmp 0x449c37
mov edx, dword [esi]
push edx
lea ecx, [ebp + 0x1a]
push ecx
push eax
call fcn.0046ff50
add esp, 0xc
cmp dword [esp + 0x1c], 0
mov edi, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalHandle]
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalFree]
je 0x449c64
mov edx, dword [esp + 0x1c]
push edx
call esi
push eax
call edi
mov eax, dword [esp + 0x1c]
push eax
call esi
push eax
call ebx
test ebp, ebp
je 0x449c74
push ebp
call esi
push eax
call edi
push ebp
call esi
push eax
call ebx
mov esi, dword [esp + 0x30]
call fcn.0044cbf0
mov ecx, dword [esp + 0x30]
push ecx
call fcn.00464923
mov bl, byte [esp + 0x1b]
add esp, 4
mov dword [esp + 0x84], 0xffffffff
mov eax, dword [esp + 0x8c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x449cbc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, bl
mov ecx, dword [esp + 0x7c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.0046d626
add esp, 0x74
ret 0x24