Function at 0x422ca1
Capabilities:
Resolve function by parsing pe exports
Send data
Send data on socket

Disassembly:
sub esp, 0x190
push ebx
push ebp
push esi
push edi
push 0x407c98
xor ebx, ebx
mov edi, ecx
push ebx
push 0x272
push 0x407cb8
push 0x407cfc
mov dword [esp + 0x60], edi
call fcn.0041a5ac
mov ebp, dword [sym.imp.WS2_32.dll_send]
add esp, 0x14
push ebx
push 0xc
push 0x407d10
push edi
call ebp
cmp eax, 0xc
jne 0x4236c3
push 0x1b7740
push eax
lea edx, [esp + 0x34]
mov ecx, edi
call fcn.0041bce7
test al, al
je 0x4236c3
push 4
pop eax
push eax
push eax
mov edx, 0x407d20
lea ecx, [esp + 0x34]
call fcn.004192f9
test eax, eax
jne 0x4236c3
xor edx, edx
mov byte [esp + 0x33], bl
lea ecx, [esp + 0x34]
mov byte [esp + 0x37], bl
call fcn.00418cd0
movzx eax, al
lea ecx, [esp + 0x30]
shl ax, 8
xor edx, edx
movzx esi, ax
call fcn.00418cd0
movzx eax, al
mov ecx, 0x300
or ax, si
movzx eax, ax
add eax, 0xfffffcfd
cmp ax, cx
ja 0x4236c3
mov dword [esp + 0x3c], ebx
lea eax, [esp + 0x3c]
mov ebx, dword [esp + 0x1a4]
lea edx, [esp + 0x18]
push eax
mov dword [esp + 0x1c], 1
mov ecx, dword [ebx]
call dword [ebx + 4]
mov ecx, dword [esp + 0x18]
xor esi, esi
mov edx, ecx
mov eax, ecx
shr eax, 0x10
and edx, 0xff0000
or edx, eax
mov eax, ecx
and eax, 0xff00
shl ecx, 0x10
or eax, ecx
shr edx, 8
shl eax, 8
push esi
or edx, eax
lea eax, [esp + 0x54]
push 4
push eax
push edi
mov dword [esp + 0x60], edx
call ebp
cmp eax, 4
je 0x422dc9
or eax, 0xffffffff
mov dword [esp + 0x18], eax
jmp 0x422dcd
mov eax, dword [esp + 0x18]
sub eax, esi
je 0x4236b8
sub eax, 1
jne 0x4236c3
push 0x1b7740
push 1
lea edx, [esp + 0x1f]
mov ecx, edi
call fcn.0041bce7
test al, al
je 0x4236c3
cmp byte [esp + 0x17], 0
mov ecx, dword [ebx]
setne dl
call dword [ebx + 8]
test al, al
je 0x4236c3
mov ecx, dword [ebx]
lea eax, [esp + 0x98]
push eax
lea edx, [esp + 0x6c]
mov dword [esp + 0x6c], esi
call dword [ebx + 0xc]
test eax, eax
je 0x4236c3
push ecx
push dword [esp + 0x1ac]
lea edx, [esp + 0xa0]
mov ecx, eax
call fcn.00422a88
mov ebx, eax
test ebx, ebx
je 0x4236c3
mov eax, dword [esp + 0x68]
test eax, eax
je 0x422e5e
cmp byte [eax], 0
je 0x422e5e
inc esi
cmp byte [esi + eax], 0
jne 0x422e57
mov cx, word [ebx + 8]
movzx eax, byte [ebx + 9]
shl cx, 8
or cx, ax
mov word [esp + 0x70], cx
mov cx, word [ebx + 0xa]
movzx eax, byte [ebx + 0xb]
shl cx, 8
or cx, ax
mov eax, esi
bswap eax
push 0x10
mov dword [esp + 0x88], eax
pop eax
push eax
mov dword [esp + 0x8c], eax
lea eax, [ebx + 0x20]
push eax
lea eax, [esp + 0x7c]
mov word [esp + 0x7a], cx
push eax
call fcn.0041863c
mov cx, word [esp + 0x78]
mov eax, dword [esp + 0x78]
shr cx, 8
shl eax, 8
or cx, ax
mov eax, dword [esp + 0x7a]
mov word [esp + 0x78], cx
mov cx, word [esp + 0x7a]
shr cx, 8
shl eax, 8
or cx, ax
mov eax, dword [esp + 0x7c]
mov word [esp + 0x7a], cx
mov cx, word [esp + 0x7c]
shr cx, 8
shl eax, 8
or cx, ax
lea eax, [esp + 0x70]
mov word [esp + 0x7c], cx
xor ecx, ecx
push ecx
push 0x18
push eax
push edi
call ebp
cmp eax, 0x18
jne 0x4236af
test esi, esi
je 0x422f20
mov edx, dword [esp + 0x68]
mov ecx, edi
push esi
call fcn.0041bd49
test al, al
je 0x4236af
xor eax, eax
mov dword [esp + 0x41], 0xffffffff
mov dl, al
mov byte [esp + 0x17], dl
mov byte [esp + 0x40], dl
mov edx, 0xffff
mov dword [esp + 0x3c], edx
mov edx, 0xff
push edx
push eax
lea eax, [esp + 0xa8]
push eax
call fcn.0041869b
push edx
xor edx, edx
lea eax, [esp + 0xa4]
push edx
push eax
call fcn.0041869b
mov ebp, edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ebp
mov esi, dword [esp + 0x1a4]
test ebp, ebp
je 0x42308e
push edx
push edx
push 0x12c
lea ecx, [esp + 0x58]
call fcn.0041c016
cmp eax, 0xffffffff
jne 0x42308a
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x274c
jne 0x423671
cmp dword [esp + 0x1b0], 0
je 0x422fbe
push 0xffffffffffffffff
push dword [esp + 0x1b4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [esi]
call dword [esi + 0x10]
mov edi, dword [esp + 0x4c]
xor edx, edx
imul eax, dword [esp + 0x1c], 9
mov esi, edx
mov ecx, dword [esp + 0x18]
mov ebp, edx
mov dword [esp + 0x50], esi
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x1c]
add esi, ecx
cmp word [esi + 5], dx
jbe 0x423040
cmp word [esi + 7], dx
jbe 0x423040
push esi
mov edx, ebx
mov ecx, edi
call fcn.0042261d
cmp eax, 0xffffffff
je 0x423651
test eax, eax
je 0x423651
cmp eax, 1
jne 0x423036
mov ecx, dword [esp + 0x1c]
lea eax, [ebp + 1]
cmp eax, ecx
jne 0x42307d
mov eax, dword [esp + 0x6c]
dec ecx
sub eax, 9
mov dword [esp + 0x1c], ecx
mov edx, eax
mov dword [esp + 0x6c], eax
lea ecx, [esp + 0x18]
call fcn.00418586
xor edx, edx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x50]
inc ebp
add esi, 9
mov dword [esp + 0x50], esi
cmp ebp, eax
jb 0x422fe2
cmp dword [esp + 0x1b0], 0
je 0x423067
push dword [esp + 0x1b0]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x1c], ebp
mov esi, dword [esp + 0x1a4]
xor edx, edx
jmp 0x422f73
push 9
xor edx, edx
push edx
push esi
call fcn.0041869b
jmp 0x423038
mov edi, dword [esp + 0x4c]
push 0x1b7740
push 1
lea edx, [esp + 0x2b]
mov ecx, edi
call fcn.0041bce7
test al, al
je 0x423671
movzx eax, byte [esp + 0x23]
xor ecx, ecx
sub eax, ecx
je 0x423584
push 2
pop ecx
sub eax, ecx
je 0x423442
sub eax, 1
je 0x423364
sub eax, 1
je 0x423303
sub eax, 1
je 0x423191
sub eax, 1
jne 0x423671
mov esi, 0x1b7740
lea edx, [esp + 0x94]
push esi
push 3
mov ecx, edi
call fcn.0041bce7
test al, al
je 0x423671
push esi
push 4
pop eax
push eax
lea edx, [esp + 0x50]
mov ecx, edi
call fcn.0041bce7
test al, al
je 0x423671
mov ecx, dword [esp + 0x48]
mov edx, ecx
mov eax, ecx
and edx, 0xff0000
shr eax, 0x10
or edx, eax
mov eax, ecx
shl eax, 0x10
and ecx, 0xff00
or eax, ecx
shr edx, 8
shl eax, 8
or edx, eax
mov dword [esp + 0x48], edx
lea ecx, [edx + 1]
call fcn.004185cd
mov esi, eax
test esi, esi
je 0x42366a
push 0x1b7740
push dword [esp + 0x4c]
mov edx, esi
mov ecx, edi
call fcn.0041bce7
test al, al
je 0x423671
mov eax, dword [esp + 0x1a4]
mov edx, dword [esp + 0x48]
push esi
mov ecx, dword [eax]
call dword [eax + 0x1c]
mov ecx, esi
call fcn.00418601
jmp 0x42306f
push 0x1b7740
push 5
lea edx, [esp + 0x2c]
mov ecx, edi
call fcn.0041bce7
test al, al
je 0x423671
mov eax, dword [esp + 0x25]
mov ebp, 0x8000
mov cx, word [esp + 0x25]
shr cx, 8
shl eax, 8
or cx, ax
mov eax, dword [esp + 0x27]
mov word [esp + 0x25], cx
mov cx, word [esp + 0x27]
shr cx, 8
shl eax, 8
or cx, ax
push 0x17
mov word [esp + 0x2b], cx
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov edx, eax
mov eax, dword [esp + 0x3c]
cmp word [esp + 0x25], ax
jne 0x423201
mov ax, word [esp + 0x43]
cmp word [esp + 0x27], ax
je 0x423206
mov ebp, 0x8001
mov ch, byte [esp + 0x24]
mov al, byte [esp + 0x17]
mov cl, ch
and cl, 1
and al, 1
cmp cl, al
je 0x42322a
test cl, cl
je 0x42324d
push 2
pop eax
test edx, edx
push 8
pop esi
cmovne eax, esi
or ebp, eax
push 4
pop esi
mov al, byte [esp + 0x17]
mov cl, ch
and cl, 4
and al, 4
cmp cl, al
je 0x42326a
test cl, cl
je 0x423260
push 8
pop eax
test edx, edx
push 2
pop edx
cmovne eax, edx
jmp 0x423268
push 4
pop esi
test edx, edx
mov eax, esi
cmovne eax, dword [esp + 0x88]
or ebp, eax
jmp 0x42322d
push 0x10
test edx, edx
pop eax
cmovne eax, esi
or ebp, eax
mov al, byte [esp + 0x17]
mov cl, ch
and cl, 2
and al, 2
cmp cl, al
je 0x423286
push 0x40
pop eax
push 0x20
test cl, cl
pop edx
cmovne eax, edx
or ebp, eax
mov esi, ebp
mov al, ch
or esi, 0x800
test ch, 8
push 0x78
cmove esi, ebp
and ch, 0x10
pop edx
xor ebp, ebp
mov byte [esp + 0x17], ch
test al, 8
push 0xffffffffffffff88
pop eax
cmove edx, ebp
test ch, ch
push 5
cmovne edx, eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.0041863c
movzx eax, word [esp + 0x27]
push edx
mov edx, esi
or edx, 0x800
cmp byte [esp + 0x1b], 0
push eax
movzx eax, word [esp + 0x2d]
cmove edx, esi
mov esi, dword [esp + 0x1ac]
push eax
mov ecx, dword [esi]
call dword [esi + 0x18]
movzx eax, word [esp + 0x41]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x40]
mov byte [esp + 0x17], al
jmp 0x423076
push 0x1b7740
push 7
lea edx, [esp + 0x94]
mov ecx, edi
call fcn.0041bce7
test al, al
je 0x423671
cmp byte [esp + 0x8c], 0
mov ecx, dword [esp + 0x8f]
mov edx, ecx
setne al
and edx, 0xff0000
movzx eax, al
push eax
mov eax, ecx
shr eax, 0x10
or edx, eax
mov eax, ecx
shl eax, 0x10
and ecx, 0xff00
or eax, ecx
shr edx, 8
mov ecx, dword [esi]
shl eax, 8
or edx, eax
call dword [esi + 0x14]
jmp 0x423076
push 0x1b7740
push 9
lea edx, [esp + 0x34]
mov ecx, edi
call fcn.0041bce7
test al, al
je 0x423671
mov eax, dword [esp + 0x2d]
mov cx, word [esp + 0x2d]
shr cx, 8
shl eax, 8
or cx, ax
mov eax, dword [esp + 0x2f]
mov word [esp + 0x2d], cx
mov cx, word [esp + 0x2f]
shr cx, 8
shl eax, 8
or cx, ax
mov eax, dword [esp + 0x31]
mov word [esp + 0x2f], cx
mov cx, word [esp + 0x31]
shr cx, 8
shl eax, 8
or cx, ax
mov eax, dword [esp + 0x33]
mov word [esp + 0x31], cx
mov cx, word [esp + 0x33]
shr cx, 8
shl eax, 8
or cx, ax
cmp byte [esp + 0x2c], 0
mov word [esp + 0x33], cx
setne byte [esp + 0x2c]
xor edx, edx
mov esi, edx
test ebp, ebp
je 0x42340a
mov eax, dword [esp + 0x18]
add eax, 7
cmp word [eax - 2], dx
jne 0x423402
cmp word [eax], dx
je 0x42340a
inc esi
add eax, 9
cmp esi, ebp
jb 0x4233f7
cmp esi, ebp
jne 0x423429
inc ebp
lea ecx, [esp + 0x18]
imul edx, ebp, 9
mov dword [esp + 0x1c], ebp
call fcn.00418586
test al, al
je 0x423671
xor edx, edx
push 9
lea eax, [esp + 0x30]
push eax
imul eax, esi, 9
add eax, dword [esp + 0x20]
push eax
call fcn.0041863c
jmp 0x422f6c
xor edx, edx
mov esi, 0x1b7740
push esi
inc edx
mov ecx, edi
call fcn.0041bd19
test al, al
je 0x423671
push esi
push 2
pop eax
push eax
lea edx, [esp + 0x6c]
mov ecx, edi
call fcn.0041bce7
test al, al
je 0x423671
xor eax, eax
mov dword [ebx + 0x4c], eax
movzx eax, word [esp + 0x64]
mov ecx, eax
shl eax, 8
shr ecx, 8
or ecx, eax
mov word [ebx + 0x48], cx
test cx, cx
je 0x423519
movzx esi, cx
lea ecx, [ebx + 0x44]
shl esi, 2
mov edx, esi
call fcn.00418586
test al, al
je 0x423671
mov edx, dword [ebx + 0x44]
mov ecx, edi
push 0x1b7740
push esi
call fcn.0041bce7
test al, al
je 0x423671
xor eax, eax
mov ebp, eax
cmp ax, word [ebx + 0x48]
jae 0x423515
mov edi, dword [ebx + 0x44]
movzx esi, bp
push 5
mov ecx, dword [edi + esi*4]
mov edx, ecx
shl edx, 0x10
mov eax, ecx
and eax, 0xff00
shr ecx, 8
or edx, eax
and ecx, 0xff00
movzx eax, byte [edi + esi*4 + 3]
shl edx, 8
or edx, ecx
or edx, eax
mov dword [edi + esi*4], edx
mov edi, dword [ebx + 0x44]
pop eax
cmp dword [edi + esi*4], eax
jne 0x42350a
mov dword [ebx + 0x4c], eax
inc ebp
cmp bp, word [ebx + 0x48]
jb 0x4234d0
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x1c]
mov edx, dword [ebx + 0x4c]
mov esi, 0xff00
mov ecx, edx
mov eax, edx
and eax, esi
shl ecx, 0x10
or ecx, eax
mov eax, edx
shr eax, 8
shl ecx, 8
and eax, esi
or ecx, eax
movzx eax, byte [ebx + 0x4f]
or ecx, eax
mov dword [ebx + 0x50], ecx
cmp edx, 5
jne 0x423572
mov esi, dword [esp + 0x1a4]
xor edx, edx
cmp dword [ebx + 0x1c], edx
jne 0x422f73
mov ecx, 0x400
call fcn.004185cd
mov dword [ebx + 0x1c], eax
test eax, eax
je 0x423671
jmp 0x423076
mov ecx, dword [ebx + 0x1c]
call fcn.00418601
xor edx, edx
mov dword [ebx + 0x1c], edx
jmp 0x422f6c
push 0x1b7740
push 3
pop edx
mov ecx, edi
call fcn.0041bd19
test al, al
je 0x423671
push 0x1b7740
push 0x10
pop eax
push eax
lea edx, [esp + 0x5c]
mov ecx, edi
call fcn.0041bce7
test al, al
je 0x423671
mov al, byte [esp + 0x54]
cmp al, 0x20
je 0x4235cb
cmp al, 0x10
je 0x4235cb
cmp al, 8
jne 0x423671
mov dl, byte [esp + 0x57]
test dl, dl
je 0x423671
mov eax, dword [esp + 0x58]
mov cx, word [esp + 0x58]
shr cx, 8
shl eax, 8
or cx, ax
mov eax, dword [esp + 0x5a]
mov word [esp + 0x58], cx
mov cx, word [esp + 0x5a]
shl eax, 8
shr cx, 8
or cx, ax
mov eax, dword [esp + 0x5c]
mov word [esp + 0x5a], cx
mov cx, word [esp + 0x5c]
shl eax, 8
shr cx, 8
or cx, ax
test dl, dl
push 0x10
pop eax
push eax
lea eax, [esp + 0x58]
mov word [esp + 0x60], cx
push eax
setne byte [esp + 0x5f]
lea eax, [ebx + 0x31]
cmp byte [esp + 0x5e], 0
push eax
setne byte [esp + 0x62]
call fcn.0041863c
mov al, byte [esp + 0x54]
shr al, 3
mov byte [ebx + 0x41], al
jmp 0x423076
cmp dword [esp + 0x1b0], 0
je 0x423671
push dword [esp + 0x1b0]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
jmp 0x423671
xor ecx, ecx
call fcn.00418601
push 0x407d28
xor ebp, ebp
push ebp
push 0x3c6
push 0x407cb8
push 0x407cfc
call fcn.0041a5ac
add esp, 0x14
mov ecx, ebx
call fcn.00422c16
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4236c3
push eax
push ebp
push dword [0x42ac50]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x4236c3
mov ecx, ebx
call fcn.00422c16
jmp 0x4236c3
mov edx, dword [esp + 0x3c]
mov ecx, edi
call fcn.00422c4d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x190
ret 0x14