Function at 0x622e2e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x64c
mov eax, dword [ebp + 8]
and dword [ebp - 8], 0
push ebx
mov ebx, ecx
push esi
push edi
and byte [ebx], 0
test eax, eax
je 0x622e6e
cmp byte [eax], 0
je 0x622e6e
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
and word [ebx + 0x104], 0
lea eax, [ebx + 0x104]
push 0x208
push eax
call fcn.006235d3
push 0x1016df4
push 1
mov ecx, ebx
call fcn.0062322e
push 0x1016df0
push 1
mov ecx, ebx
call fcn.0062322e
push 0x1016ddc
push 1
mov ecx, ebx
call fcn.0062322e
and byte [ebp - 0xe], 0
xor eax, eax
mov cl, byte [eax + 0x10043c1]
xor cl, 0xfa
mov byte [ebp + eax - 0xf], cl
lea ecx, [eax + 0x25]
dec eax
test ecx, ecx
jne 0x622eb7
lea eax, [ebp - 0x34]
mov edi, 0x1016dd4
push eax
mov esi, accept
push edi
push esi
call fcn.006234cc
test eax, eax
jne 0x622eed
push 0x1016da4
push eax
jmp 0x622ef4
push 0x1016d64
push 0xffffffffffffffff
mov ecx, ebx
call fcn.006232b5
push 0x1016d3c
push edi
push esi
call fcn.006234cc
test eax, eax
jne 0x622f13
push 0x1016d0c
push eax
jmp 0x622f1a
push 0x1016ccc
push 0xffffffffffffffff
mov ecx, ebx
call fcn.006232b5
lea eax, [ebp - 0xc]
xor esi, esi
push eax
push 0xf003f
push esi
push 0x1016cb4
push reloc.WSOCK32.dll_bind
call dword [0x1001098]
cmp eax, esi
jne 0x622f66
push 0x1016ca8
push dword [ebp - 0xc]
call dword [0x1001094]
push 0x1016c90
push 1
mov ecx, ebx
call fcn.0062322e
push dword [ebp - 0xc]
call dword [0x1001000]
push 0x1016c7c
push 1
mov ecx, ebx
call fcn.0062322e
cmp word [ebx + 0x104], si
lea eax, [ebx + 0x104]
mov dword [ebp + 8], esi
je 0x623078
push eax
lea eax, [ebp - 0x23c]
push 0x1016c58
push eax
call fcn.00623835
add esp, 0xc
lea eax, [ebp - 0x23c]
mov ecx, ebx
push eax
push 1
call fcn.006232b5
mov eax, dword [0x10043c4]
cmp word [eax], si
je 0x62308d
mov esi, 0x10043c4
mov edi, esi
lea eax, [ebx + 0x104]
push eax
lea eax, [ebp - 0x444]
push eax
call fcn.006238ce
pop ecx
lea eax, [ebp - 0x444]
pop ecx
push dword [edi]
push eax
call fcn.0062359c
lea eax, [ebp - 0x444]
push eax
call fcn.00623638
test eax, eax
je 0x623064
push 1
lea eax, [ebp - 0x444]
pop edi
push eax
mov dword [ebp + 8], edi
call fcn.00623706
test eax, eax
je 0x623032
push 0x1016c48
lea eax, [ebp - 0x23c]
push dword [esi]
push 0x1016c2c
push eax
call fcn.00623835
add esp, 0x10
lea eax, [ebp - 0x23c]
push eax
push edi
jmp 0x62305d
call dword [0x10011fc]
push eax
push 0x1016c20
push dword [esi]
lea eax, [ebp - 0x23c]
push 0x1016bf8
push eax
call fcn.00623835
add esp, 0x14
lea eax, [ebp - 0x23c]
push eax
push 0xffffffffffffffff
mov ecx, ebx
call fcn.006232b5
mov eax, dword [esi + 4]
add esi, 4
mov edi, esi
cmp word [eax], 0
jne 0x622fc4
jmp 0x623086
push 0x1016b90
push 0xffffffffffffffff
mov ecx, ebx
call fcn.006232b5
xor esi, esi
cmp dword [ebp + 8], esi
jne 0x62309b
push 0x1016b60
push 1
mov ecx, ebx
call fcn.006232b5
push 0x1016b4c
push 1
mov ecx, ebx
call fcn.0062322e
mov dword [ebp - 4], esi
and dword [ebp + 8], 0
push 2
pop edi
cmp dword [ebp - 4], 0
mov eax, 0x1016b30
jne 0x6230c3
mov eax, 0x1016b14
push edi
push eax
lea eax, [ebp - 0x64c]
push eax
call fcn.00623835
lea eax, [ebx + 0x104]
push eax
lea eax, [ebp - 0x444]
push eax
call fcn.006238ce
add esp, 0x14
lea eax, [ebp - 0x64c]
push eax
lea eax, [ebp - 0x444]
push eax
call fcn.0062359c
lea eax, [ebp - 0x444]
push eax
call fcn.00623638
mov esi, eax
test esi, esi
je 0x623185
lea eax, [ebp - 0x444]
mov dword [ebp + 8], 1
push eax
call fcn.00623706
test eax, eax
je 0x62314e
lea eax, [ebp - 0x64c]
push 0x1016c48
push eax
lea eax, [ebp - 0x23c]
push 0x1016c2c
push eax
call fcn.00623835
add esp, 0x10
lea eax, [ebp - 0x23c]
push eax
push 1
jmp 0x62317e
call dword [0x10011fc]
push eax
lea eax, [ebp - 0x64c]
push 0x1016c20
push eax
lea eax, [ebp - 0x23c]
push 0x1016bf8
push eax
call fcn.00623835
add esp, 0x14
lea eax, [ebp - 0x23c]
push eax
push 0xffffffffffffffff
mov ecx, ebx
call fcn.006232b5
inc edi
test esi, esi
jne 0x6230b3
cmp dword [ebp + 8], esi
jne 0x6231c7
cmp dword [ebp - 4], esi
mov eax, 0x1016b0c
jne 0x6231a2
mov eax, 0x1016b04
push eax
lea eax, [ebp - 0x23c]
push 0x1016acc
push eax
call fcn.00623835
add esp, 0xc
lea eax, [ebp - 0x23c]
mov ecx, ebx
push eax
push 1
call fcn.006232b5
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x6230ac
push 0x1016ab0
push 1
mov ecx, ebx
call fcn.0062322e
push 0x1016aa0
mov ecx, ebx
call fcn.00623304
test eax, eax
jge 0x6231f5
mov dword [ebp - 8], eax
push 0x1016a90
mov ecx, ebx
call fcn.00623304
test eax, eax
jge 0x623208
mov dword [ebp - 8], eax
push 0x1016df0
push 1
mov ecx, ebx
call fcn.0062322e
push 0x1016a6c
push 1
mov ecx, ebx
call fcn.0062322e
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
leave
ret 4