Function at 0x406890
Capabilities:
Contain obfuscated stackstrings
Receive data
Receive data on socket

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x535abf
push eax
mov eax, 0x30cc
mov dword fs:[0], esp
call fcn.004ee1a0
mov eax, dword [esp + 0x30e0]
push ebx
push ebp
push esi
xor esi, esi
push edi
cmp eax, esi
jne 0x4068c7
xor al, al
jmp 0x4070f1
mov edi, dword [esp + 0x30ec]
mov ebx, dword [sym.imp.WSOCK32.dll_recv]
mov byte [esp + 0x1b], 0
mov dword [esp + 0x10], esi
mov eax, 0x1000
push 0
sub eax, esi
lea ecx, [esp + esi + 0xd8]
push eax
push ecx
push edi
call ebx
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x406914
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
cmp eax, 0x2733
mov dword [esp + 0x10], eax
jne 0x4068c0
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x40691a
test ebp, ebp
jle 0x40691a
add esi, ebp
cmp esi, 0x1000
jge 0x40692b
cmp ebp, 0xffffffff
je 0x406930
test ebp, ebp
jg 0x4068dd
cmp ebp, 0xffffffff
jne 0x40693a
cmp dword [esp + 0x10], 0x2733
je 0x4068dd
test esi, esi
jle 0x4070ed
lea edx, [esp + 0xd4]
push str._r_n_r_n
push edx
call fcn.004ee070
add esp, 8
test eax, eax
je 0x4070c1
lea ecx, [esp + 0xd4]
mov edx, 0x1000
sub eax, ecx
add eax, 4
mov edi, eax
sub edx, edi
cmp edx, 8
jbe 0x4070c1
mov edx, dword [esp + edi + 0xd8]
mov ecx, dword [esp + edi + 0xd4]
lea eax, [esp + edi + 0xd4]
mov dword [esp + 0x50], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x52]
mov dword [esp + 0x4c], ecx
push eax
call dword [sym.imp.WSOCK32.dll_ntohs]
mov bx, ax
mov word [esp + 0x52], bx
mov ecx, dword [esp + 0x50]
push ecx
call dword [sym.imp.WSOCK32.dll_ntohs]
test bx, bx
jge 0x4069cf
cmp ax, 0x1389
jne 0x4070dc
movsx eax, bx
mov dword [esp + 0x14], eax
add eax, 0x18
shr eax, 6
inc eax
shl eax, 6
push eax
call fcn.0050d138
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
je 0x4070ed
mov eax, esi
xor ebx, ebx
sub eax, edi
test eax, eax
jle 0x406a19
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov ecx, eax
mov ebx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test ebp, ebp
jle 0x406ab8
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x30ec]
push 0
lea eax, [esp + 0xd8]
push 0x1000
push eax
push ecx
call dword [sym.imp.WSOCK32.dll_recv]
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x406a6f
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
mov esi, eax
cmp esi, 0x2733
mov dword [esp + 0x10], esi
jne 0x4070dc
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x406a93
mov edx, dword [esp + 0x1c]
mov ecx, ebp
mov eax, ecx
lea esi, [esp + 0xd4]
lea edi, [edx + ebx]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
add ebx, ebp
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add ecx, 0x10
cmp ebx, ecx
jge 0x406aa7
cmp ebp, 0xffffffff
je 0x406aac
test ebp, ebp
jg 0x406a29
cmp ebp, 0xffffffff
jne 0x406ab8
cmp esi, 0x2733
je 0x406a29
cmp dword [esp + 0x14], ebx
jg 0x4070dc
lea ecx, [esp + 0x68]
call fcn.00401000
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
lea edx, [esp + 0x58]
lea eax, [esp + 0x24]
push edx
push 8
push eax
push esi
push edi
lea ecx, [esp + 0x40]
push 9
push ecx
lea ecx, [esp + 0x84]
mov dword [esp + 0x3100], 0
mov byte [esp + 0x48], 0x79
mov byte [esp + 0x49], 0x5c
mov byte [esp + 0x4a], 0x41
mov byte [esp + 0x4b], 0x45
mov byte [esp + 0x4c], 0x5e
mov byte [esp + 0x4d], 0xe3
mov byte [esp + 0x4e], 0x48
mov byte [esp + 0x4f], 0xc3
mov byte [esp + 0x50], 0xad
mov byte [esp + 0x40], 0x9c
mov byte [esp + 0x41], 0x87
mov byte [esp + 0x42], 0x68
mov byte [esp + 0x43], 0x11
mov byte [esp + 0x44], 0xda
mov byte [esp + 0x45], 0x37
mov byte [esp + 0x46], 0x44
mov byte [esp + 0x47], 0xc0
call fcn.00401e80
add edi, esi
mov ecx, 4
lea esi, [esp + 0x58]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
jne 0x4070c8
mov ecx, dword [esp + 0x30f0]
push edx
call fcn.00464940
cmp ebx, 0xc
jbe 0x4070a0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x18]
add ecx, 0xfffffff8
push edx
lea edx, [esp + 0x14]
push edx
lea edx, [esp + 0xdc]
add eax, 8
push edx
push ecx
push eax
mov dword [esp + 0x24], 0x1000
mov dword [esp + 0x4c], ecx
call fcn.004067b0
mov ebp, eax
add esp, 0x14
test ebp, ebp
mov dword [esp + 0x20], ebp
jl 0x4070c8
mov ax, word [esp + 0x18]
cmp ax, 0x5a
je 0x406bda
cmp ax, 0x5b
jne 0x4070c8
jmp 0x406bf0
mov eax, dword [esp + 0xd4]
push eax
call dword [sym.imp.WSOCK32.dll_ntohl]
test eax, eax
jne 0x4070c8
test ebp, ebp
mov dword [esp + 0x14], 0
jle 0x4070c8
mov eax, dword [esp + 0x38]
cmp ebp, eax
jge 0x406dda
cmp dword [esp + 0x14], 4
jge 0x406de5
lea ecx, [esp + 0x18]
lea edx, [esp + 0x10]
push ecx
push edx
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0xdc]
sub eax, ebp
push ecx
push eax
lea eax, [edx + 8]
add eax, ebp
mov dword [esp + 0x20], 0x1000
push eax
call fcn.004067b0
mov ebx, eax
add esp, 0x14
test ebx, ebx
mov dword [esp + 0x3c], ebx
jle 0x406dda
mov ax, word [esp + 0x18]
cmp ax, 4
jne 0x406c7f
mov ecx, dword [esp + 0xd4]
push ecx
call dword [sym.imp.WSOCK32.dll_ntohl]
mov edx, dword [esp + 0x30f0]
mov dword [edx + 0x118], eax
jmp 0x406dc3
cmp ax, 3
jne 0x406cee
movsx eax, byte [esp + 0xd4]
mov esi, dword [esp + 0x30f0]
mov ecx, 0x20
cdq
mov dword [esi + 0x120], eax
mov dword [esi + 0x124], edx
mov eax, dword [esi + 0x120]
call fcn.004ee1d0
mov dword [esi + 0x120], eax
mov eax, dword [esp + 0xd5]
push eax
mov dword [esi + 0x124], edx
call dword [sym.imp.WSOCK32.dll_ntohl]
mov edx, dword [esi + 0x120]
xor ecx, ecx
or edx, eax
mov dword [esi + 0x120], edx
mov eax, dword [esi + 0x124]
or eax, ecx
mov dword [esi + 0x124], eax
jmp 0x406dc3
cmp ax, 7
jne 0x406d37
mov eax, dword [esp + 0x30f0]
mov edx, dword [esp + 0xd4]
lea ecx, [eax + 0x128]
mov dword [eax + 0x158], 1
mov dword [ecx], edx
mov edx, dword [esp + 0xd8]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xdc]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xe0]
mov dword [ecx + 0xc], edx
jmp 0x406dc3
cmp ax, 8
jne 0x406db9
mov eax, dword [esp + 0x10]
mov esi, 0
cdq
and edx, 0xf
add eax, edx
mov edi, eax
mov eax, dword [esp + 0x30f0]
sar edi, 4
mov dword [eax + 0x138], edi
je 0x406dc3
lea ebp, [esp + 0xd4]
push 0x20
call fcn.0050d138
add esp, 4
test eax, eax
je 0x4070c8
mov edx, ebp
lea ecx, [eax + 0x10]
push eax
mov eax, dword [esp + 0x30f4]
mov ebx, dword [edx]
mov dword [ecx], ebx
mov ebx, dword [edx + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [edx + 8]
mov dword [ecx + 8], ebx
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
lea ecx, [eax + 0x13c]
call fcn.0050a08e
inc esi
add ebp, 0x10
cmp esi, edi
jb 0x406d67
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x3c]
jmp 0x406dc3
cmp ax, 0x5b
je 0x4070c8
mov ecx, dword [esp + 0x14]
add ebp, ebx
inc ecx
mov dword [esp + 0x20], ebp
test ebp, ebp
mov dword [esp + 0x14], ecx
jg 0x406c00
cmp dword [esp + 0x14], 4
jl 0x4070c8
xor esi, esi
xor edi, edi
test ebp, ebp
mov dword [esp + 0x14], esi
jle 0x4070a0
cmp ebp, dword [esp + 0x38]
jge 0x40709c
cmp esi, 4
jge 0x40709c
lea ecx, [esp + 0x18]
lea edx, [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0x24]
lea eax, [esp + 0xdc]
sub ecx, ebp
push eax
lea eax, [edx + 8]
add eax, ebp
push ecx
push eax
mov dword [esp + 0x24], 0x1000
call fcn.004067b0
mov ebx, eax
add esp, 0x14
test ebx, ebx
mov dword [esp + 0x40], ebx
jle 0x40709c
test edi, edi
jne 0x406e88
push 0x18
call fcn.0050d138
add esp, 4
test eax, eax
je 0x406e6f
mov ecx, dword [0x591288]
mov dword [eax + 4], ecx
mov edx, dword [0x591288]
mov dword [eax + 8], edx
jmp 0x406e71
xor eax, eax
xor ecx, ecx
mov edi, eax
cmp eax, ecx
je 0x40709c
mov dword [eax + 0x10], ecx
mov dword [eax], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x14], ecx
mov ax, word [esp + 0x18]
cmp ax, 5
jne 0x406ea8
mov eax, dword [esp + 0xd4]
push eax
call dword [sym.imp.WSOCK32.dll_ntohl]
mov dword [edi], eax
jmp 0x407033
cmp ax, 1
jne 0x406fbe
mov esi, dword [esp + 0x10]
cmp esi, 0x1000
jle 0x406ec3
mov esi, 0x1000
lea ecx, [esp + 0xd4]
push esi
lea edx, [esp + 0x10d8]
push ecx
push edx
call fcn.004edf70
add esp, 0xc
mov byte [esp + esi + 0x10d4], 0
lea esi, [edi + 4]
lea eax, [esp + 0x10d4]
push eax
mov ecx, esi
call fcn.0050d586
lea ecx, [esp + 0x48]
push 0xb
push ecx
mov ecx, esi
call fcn.00505c45
mov eax, dword [eax]
push str.Flashget:__
push eax
mov byte [esp + 0x30ec], 1
call fcn.004ee0f0
add esp, 8
test eax, eax
je 0x406f50
lea edx, [esp + 0x3c]
push 0xb
push edx
mov ecx, esi
call fcn.00505c45
mov eax, dword [eax]
push str.flashget:__
push eax
call fcn.004ee0f0
add esp, 8
lea ecx, [esp + 0x3c]
test eax, eax
sete bl
call fcn.0050d3fd
test bl, bl
je 0x406f52
mov bl, 1
lea ecx, [esp + 0x48]
mov byte [esp + 0x30e4], 0
call fcn.0050d3fd
test bl, bl
je 0x406fa6
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push esi
call fcn.0050d172
lea eax, [esp + 0x24]
push eax
call fcn.0043e660
add esp, 8
lea ecx, [esp + 0x20]
mov byte [esp + 0x30e4], 2
push ecx
mov ecx, esi
call fcn.0050d536
lea ecx, [esp + 0x20]
mov byte [esp + 0x30e4], 0
call fcn.0050d3fd
mov ecx, esi
call fcn.00506372
mov ecx, esi
call fcn.0050627b
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x14]
jmp 0x407033
cmp ax, 2
jne 0x40701c
mov esi, dword [esp + 0x10]
cmp esi, 0x1000
jle 0x406fd5
mov esi, 0x1000
lea edx, [esp + 0xd4]
push esi
lea eax, [esp + 0x20dc]
push edx
push eax
call fcn.004edf70
add esp, 0xc
mov byte [esp + esi + 0x20d8], 0
lea ecx, [esp + 0x20d8]
lea esi, [edi + 8]
push ecx
mov ecx, esi
call fcn.0050d586
mov ecx, esi
call fcn.00506372
mov ecx, esi
call fcn.0050627b
mov esi, dword [esp + 0x14]
jmp 0x407033
cmp ax, 6
jne 0x407033
mov edx, dword [esp + 0xd4]
push edx
call dword [sym.imp.WSOCK32.dll_ntohl]
mov dword [edi + 0xc], eax
add ebp, ebx
inc esi
mov eax, esi
mov dword [esp + 0x14], esi
and eax, reloc.WSOCK32.dll_closesocket
jns 0x407048
dec eax
or eax, 0xfffffffc
inc eax
jne 0x407094
test edi, edi
je 0x407094
mov ecx, dword [esp + 0x30f0]
push edi
call fcn.00475e60
test eax, eax
jne 0x40708c
mov dword [esp + 0x44], edi
lea ecx, [edi + 8]
mov byte [esp + 0x30e4], 3
call fcn.0050d3fd
lea ecx, [edi + 4]
mov byte [esp + 0x30e4], 0
call fcn.0050d3fd
push edi
call fcn.0050d161
add esp, 4
xor edi, edi
xor esi, esi
mov dword [esp + 0x14], esi
test ebp, ebp
jg 0x406df5
test esi, esi
jne 0x4070c8
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0050d161
add esp, 4
lea ecx, [esp + 0x68]
mov dword [esp + 0x30e4], 0xffffffff
call fcn.00401060
mov byte [esp + 0x1b], 1
jmp 0x4070ed
lea ecx, [esp + 0x68]
mov dword [esp + 0x30e4], 0xffffffff
call fcn.00401060
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4070ed
push eax
call fcn.0050d161
add esp, 4
mov al, byte [esp + 0x1b]
mov ecx, dword [esp + 0x30dc]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x30d8
ret