Function at 0x420f40
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1c8
mov dword [ebp - 0x160], ecx
lea eax, [ebp - 0x18]
mov dword [eax - 4], esp
mov dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x423e10
mov ecx, dword fs:[0]
mov dword [eax], ecx
mov dword fs:[0], eax
xor ecx, ecx
mov dword [ebp - 0x13c], ecx
mov dword [eax + 8], ecx
push 0x30
call fcn.005db3dd
add esp, 4
mov esi, eax
mov eax, dword [0x612c68]
mov dword [esi + 0x10], eax
movups xmm0, xmmword [0x612c58]
movups xmmword [esi], xmm0
movupd xmm0, xmmword [0x612c6c]
movupd xmmword [esi + 0x14], xmm0
mov eax, dword [0x612c7c]
mov dword [esi + 0x24], eax
xor edi, edi
inc edi
mov dword [esi + 0x28], edi
mov dword [esi + 0x2c], 0
push 0x40
call fcn.005fe07f
add esp, 4
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x140], 0x10
mov dword [eax], esi
mov dword [ebp - 0x144], edi
xorpd xmm0, xmm0
movsd xmm4, qword [0x612e20]
movsd xmm5, qword [0x612e28]
movsd xmm6, qword [0x612408]
movsd xmm7, qword [0x612e30]
xorpd xmm3, xmm3
movapd xmm1, xmm3
mulsd xmm1, qword [0x612e08]
mulsd xmm1, xmm3
movapd xmm2, xmm3
mulsd xmm2, xmm3
subsd xmm1, xmm2
movapd xmm2, xmm3
mulsd xmm2, qword [0x612e10]
mulsd xmm2, xmm3
addsd xmm2, qword [0x612e18]
divsd xmm1, xmm2
addsd xmm1, xmm0
movapd xmm2, xmm3
mulsd xmm2, xmm4
addsd xmm2, xmm1
movapd xmm0, xmm5
cmpltsd xmm0, xmm1
andpd xmm2, xmm0
andnpd xmm0, xmm1
orpd xmm0, xmm2
addsd xmm3, xmm6
ucomisd xmm7, xmm3
ja 0x42100a
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x4210aa
sahf
and edx, dword [ebp - 0x66d764d2]
sub byte [edx + 0x27932d9a], bl
pushfd
and byte [edi - 0x61db6dd4], bl
dec edx
xor eax, 0x74567354
pop edi
sub dword [esi], ebp
dec ebp
jle 0x421107
jp 0x4210ed
sub dword [ecx + eax*2], esi
inc edx
sub al, 0x33
jmp 0x421692
lea edx, [0x42107b]
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [ebp + eax - 0x138], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x4210c2
lea eax, [0x421091]
mov dword [ebp - 0x28], eax
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
sal dl, 1
subps xmm2, xmm1
cvttsd2si eax, xmm2
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
enter 0xffffffffffffe8c1, 0x18
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x20], ecx
shr ecx, 0x10
mov dword [ebp - 0x34], ecx
mov edi, 0xff
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0x30], edx
xor edx, edx
inc edx
cmp edi, 2
jb 0x421135
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, edi
jb 0x42112e
mov dword [ebp - 0x24], edi
mov edi, 0xc
cmp ecx, 3
ja case.default.0x421142
jmp dword [ecx*4 + 0x612f38]
movzx eax, bl
add eax, ebp
add eax, 0xfffffec8
mov ebx, dword [ebp - 0x20]
jmp 0x421174
movzx eax, bl
add eax, ebp
add eax, 0xfffffec8
mov ebx, dword [ebp - 0x34]
jmp 0x421174
movzx eax, bl
add eax, ebp
add eax, 0xfffffec8
mov ebx, dword [ebp - 0x2c]
jmp 0x421199
movzx eax, bl
add eax, ebp
add eax, 0xfffffec8
mov ebx, dword [ebp - 0x20]
mov bl, bh
jmp 0x421199
movzx eax, bl
mov bl, byte [ebp + eax - 0x138]
mov eax, dword [ebp - 0x28]
add eax, ecx
add eax, 0xfffffffc
add bl, byte [eax]
inc ecx
movzx eax, bl
add bl, 0x18
cmp ecx, 0x17
movzx ebx, bl
cmovbe ebx, eax
mov eax, 0
cmova ecx, eax
movzx esi, bl
mov eax, edx
and eax, esi
dec edi
je 0x4211c8
cmp eax, dword [ebp - 0x24]
ja 0x42113d
jmp 0x4211cf
xor edx, edx
div dword [ebp - 0x24]
mov eax, edx
mov edi, dword [ebp - 0x24]
cmp edi, eax
mov edx, dword [ebp - 0x30]
je 0x421206
mov dl, byte [ebp + edi - 0x138]
xor dl, byte [ebp + eax - 0x138]
mov byte [ebp + edi - 0x138], dl
xor dl, byte [ebp + eax - 0x138]
mov byte [ebp + eax - 0x138], dl
xor byte [ebp + edi - 0x138], dl
mov edx, dword [ebp - 0x30]
dec edi
jne 0x421123
movzx ebx, byte [ebp - 0x137]
mov cl, byte [ebp - 0x133]
movzx eax, byte [ebp + esi - 0x138]
mov dword [ebp - 0x24], eax
mov ah, byte [edx]
mov ch, byte [ebp + ebx - 0x138]
add ch, byte [ebp - 0x135]
mov al, byte [edx + 1]
mov byte [ebp - 0x34], al
movzx edi, ch
mov al, byte [ebp + edi - 0x138]
mov dword [ebp - 0x2c], edi
movzx edx, byte [ebp - 0x131]
mov dword [ebp - 0x28], edx
mov esi, dword [ebp - 0x24]
movzx edx, byte [ebp + esi - 0x138]
mov dword [ebp - 0x20], edx
mov byte [ebp + esi - 0x138], al
mov edx, dword [ebp - 0x28]
mov dh, byte [ebp + edx - 0x138]
mov byte [ebp + edi - 0x138], dh
mov dh, bl
inc dh
movzx esi, dh
mov dh, byte [ebp + esi - 0x138]
mov edi, dword [ebp - 0x28]
mov byte [ebp + edi - 0x138], dh
mov edx, dword [ebp - 0x20]
mov byte [ebp + esi - 0x138], dl
movzx esi, byte [ebp + edi - 0x138]
mov edi, dword [ebp - 0x24]
movzx edi, byte [ebp + edi - 0x138]
add edi, esi
add cl, byte [ebp + edx - 0x138]
mov byte [ebp - 0x24], cl
movzx esi, cl
movzx esi, byte [ebp + esi - 0x138]
add esi, edi
mov dword [ebp - 0x28], esi
mov al, byte [ebp - 0x34]
add al, 0x6f
shl ah, 4
or ah, al
mov esi, dword [ebp - 0x2c]
movzx edi, byte [ebp + esi - 0x138]
add edi, edx
mov esi, 0xff
and edi, esi
mov dh, byte [ebp + edi - 0x138]
xor dh, ah
mov edi, dword [ebp - 0x28]
and edi, esi
movzx edi, byte [ebp + edi - 0x138]
xor dh, byte [ebp + edi - 0x138]
add bl, 3
xor edi, edi
mov dword [ebp - 0x2c], ebx
add ch, byte [ebp - 0x20]
mov byte [ebp - 0x28], ch
movzx eax, ah
mov dword [ebp - 0x20], eax
mov ebx, dword [ebp - 0x30]
mov ah, byte [ebx + edi*2 + 2]
mov al, byte [ebx + edi*2 + 3]
mov byte [ebp - 0x34], al
movzx esi, ch
mov dl, byte [ebp + esi - 0x138]
mov dword [ebp - 0x38], esi
mov ecx, dword [ebp - 0x20]
movzx ebx, byte [ebp + ecx - 0x138]
mov byte [ebp + ecx - 0x138], dl
movzx edx, dh
mov cl, byte [ebp + edx - 0x138]
mov byte [ebp + esi - 0x138], cl
mov ecx, dword [ebp - 0x2c]
dec cl
movzx ecx, cl
mov al, byte [ebp + ecx - 0x138]
mov byte [ebp + edx - 0x138], al
mov byte [ebp + ecx - 0x138], bl
mov esi, ebx
movzx ecx, byte [ebp + edx - 0x138]
mov edx, dword [ebp - 0x20]
movzx edx, byte [ebp + edx - 0x138]
add edx, ecx
mov al, byte [ebp - 0x24]
add al, byte [ebp + ebx - 0x138]
mov byte [ebp - 0x24], al
movzx ecx, al
movzx ecx, byte [ebp + ecx - 0x138]
add ecx, edx
mov al, byte [ebp - 0x34]
add al, 0x6f
shl ah, 4
or ah, al
mov edx, dword [ebp - 0x38]
movzx edx, byte [ebp + edx - 0x138]
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x20], esi
add edx, esi
mov esi, 0xff
and edx, esi
mov dh, byte [ebp + edx - 0x138]
xor dh, ah
and ecx, esi
movzx ecx, byte [ebp + ecx - 0x138]
xor dh, byte [ebp + ecx - 0x138]
movsx ecx, dh
mov word [ebp + edi*2 - 0x17a], cx
mov ch, byte [ebp - 0x28]
inc edi
inc bl
cmp edi, 3
jne 0x421308
mov dword [ebp - 0x2c], 0
mov al, bl
mov byte [ebp - 0x34], bl
add ch, byte [ebp - 0x20]
mov byte [ebp - 0x28], ch
movzx esi, ah
mov edi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x2c]
mov ah, byte [edi + ebx*2 + 8]
mov al, byte [edi + ebx*2 + 9]
mov byte [ebp - 0x20], al
movzx ebx, byte [ebp + esi - 0x138]
movzx edi, ch
mov al, byte [ebp + edi - 0x138]
mov dword [ebp - 0x38], edi
mov byte [ebp + esi - 0x138], al
movzx edx, dh
mov al, byte [ebp + edx - 0x138]
mov byte [ebp + edi - 0x138], al
mov al, byte [ebp - 0x34]
dec al
movzx ecx, al
mov al, byte [ebp + ecx - 0x138]
mov byte [ebp + edx - 0x138], al
mov byte [ebp + ecx - 0x138], bl
movzx ecx, byte [ebp + edx - 0x138]
movzx edi, byte [ebp + esi - 0x138]
add edi, ecx
mov al, byte [ebp - 0x24]
add al, byte [ebp + ebx - 0x138]
mov byte [ebp - 0x24], al
movzx ecx, al
mov al, byte [ebp - 0x34]
movzx ecx, byte [ebp + ecx - 0x138]
add ecx, edi
mov dl, byte [ebp - 0x20]
add dl, 0x6f
shl ah, 4
or ah, dl
mov edx, dword [ebp - 0x38]
movzx edx, byte [ebp + edx - 0x138]
mov dword [ebp - 0x20], ebx
add edx, ebx
mov edi, 0xff
and edx, edi
mov dh, byte [ebp + edx - 0x138]
xor dh, ah
and ecx, edi
movzx ecx, byte [ebp + ecx - 0x138]
xor dh, byte [ebp + ecx - 0x138]
movsx ecx, dh
mov esi, dword [ebp - 0x2c]
mov word [ebp + esi*2 - 0x174], cx
mov ch, byte [ebp - 0x28]
mov ebx, eax
inc bl
inc esi
mov dword [ebp - 0x2c], esi
cmp esi, 5
jne 0x421402
add ch, byte [ebp - 0x20]
mov byte [ebp - 0x28], ch
mov dword [ebp - 0x2c], ebx
movzx edi, ah
mov dword [ebp - 0x20], edi
mov esi, dword [ebp - 0x30]
mov ah, byte [esi + 0x12]
mov dl, byte [esi + 0x13]
movzx esi, byte [ebp + edi - 0x138]
mov dword [ebp - 0x38], esi
movzx esi, ch
mov cl, byte [ebp + esi - 0x138]
mov byte [ebp + edi - 0x138], cl
movzx ebx, dh
mov dh, byte [ebp + ebx - 0x138]
mov byte [ebp + esi - 0x138], dh
movzx edi, al
mov al, byte [ebp + edi - 0x138]
mov byte [ebp + ebx - 0x138], al
mov ecx, dword [ebp - 0x38]
mov byte [ebp + edi - 0x138], cl
add dl, 0x6f
shl ah, 4
or ah, dl
movzx edx, byte [ebp + esi - 0x138]
add edx, ecx
mov esi, 0xff
and edx, esi
movzx edi, ah
xor ah, byte [ebp + edx - 0x138]
mov al, byte [ebp - 0x24]
add al, byte [ebp + ecx - 0x138]
mov byte [ebp - 0x24], al
mov esi, ecx
movzx ecx, byte [ebp + ebx - 0x138]
mov edx, dword [ebp - 0x20]
movzx edx, byte [ebp + edx - 0x138]
add edx, ecx
movzx ecx, al
movzx ecx, byte [ebp + ecx - 0x138]
add ecx, edx
mov edx, 0xff
and ecx, edx
movzx ecx, byte [ebp + ecx - 0x138]
xor ah, byte [ebp + ecx - 0x138]
movsx ecx, ah
mov word [ebp - 0x16a], cx
mov dl, byte [ebp - 0x28]
mov ecx, esi
add dl, cl
mov ecx, dword [ebp - 0x30]
mov al, byte [ecx + 0x14]
mov cl, byte [ecx + 0x15]
mov byte [ebp - 0x20], cl
movzx ebx, dl
mov cl, byte [ebp + ebx - 0x138]
movzx edx, byte [ebp + edi - 0x138]
mov byte [ebp + edi - 0x138], cl
movzx esi, ah
mov ah, byte [ebp + esi - 0x138]
mov byte [ebp + ebx - 0x138], ah
movzx ecx, byte [ebp - 0x2c]
mov ah, byte [ebp + ecx - 0x138]
mov byte [ebp + esi - 0x138], ah
mov byte [ebp + ecx - 0x138], dl
mov ah, byte [ebp - 0x24]
add ah, byte [ebp + edx - 0x138]
movzx ecx, byte [ebp + ebx - 0x138]
add ecx, edx
mov dl, byte [ebp - 0x20]
add dl, 0x6f
shl al, 4
or al, dl
mov ebx, 0xff
and ecx, ebx
xor al, byte [ebp + ecx - 0x138]
movzx ecx, ah
movzx edx, byte [ebp + esi - 0x138]
movzx esi, byte [ebp + edi - 0x138]
add esi, edx
movzx ecx, byte [ebp + ecx - 0x138]
add ecx, esi
and ecx, ebx
movzx ecx, byte [ebp + ecx - 0x138]
xor al, byte [ebp + ecx - 0x138]
movsx eax, al
mov word [ebp - 0x168], ax
mov word [ebp - 0x166], 0
xor eax, eax
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x148], 7
mov word [ebp - 0x15c], 0
lea edi, [ebp - 0x17a]
push edi
call fcn.005ff144
add esp, 4
mov esi, eax
cmp eax, 7
jbe 0x4216f3
cmp esi, 0x7fffffff
jae 0x422109
mov ecx, esi
or ecx, 7
cmp ecx, 0x7ffffffe
mov dword [ebp - 0x24], esi
jbe 0x421717
mov dword [ebp - 0x20], connect
mov eax, 0xfffffffe
jmp 0x42173a
lea eax, [ebp - 0x15c]
mov dword [eax + 0x10], esi
mov ecx, esi
add ecx, esi
push ecx
push edi
push eax
call fcn.005e2280
add esp, 0xc
mov word [ebp + esi*2 - 0x15c], 0
jmp 0x42178d
cmp ecx, 0xa
mov edx, 0xa
cmova edx, ecx
lea eax, [edx + edx]
add eax, 2
mov dword [ebp - 0x10], 0
cmp edx, 0x7ff
jb 0x42174c
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x10], 0
push eax
call fcn.00401ee4
add esp, 4
jmp 0x421758
mov dword [ebp - 0x20], edx
push eax
call fcn.005db3dd
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x14c], edi
mov dword [ebp - 0x148], eax
mov eax, edi
add eax, edi
push eax
lea eax, [ebp - 0x17a]
push eax
push esi
call fcn.005e2280
add esp, 0xc
mov word [esi + edi*2], 0
mov dword [ebp - 0x15c], esi
xorpd xmm4, xmm4
movsd xmm5, qword [0x612e50]
movsd xmm6, qword [0x612e58]
movsd xmm7, qword [0x612228]
movsd xmm2, qword [0x612e60]
xorpd xmm0, xmm0
movapd xmm1, xmm4
mulsd xmm1, qword [0x612e38]
mulsd xmm1, xmm4
movapd xmm3, xmm4
mulsd xmm3, xmm4
subsd xmm1, xmm3
movapd xmm3, xmm4
mulsd xmm3, qword [0x612e40]
mulsd xmm3, xmm4
addsd xmm3, qword [0x612e48]
divsd xmm1, xmm3
addsd xmm1, xmm0
movapd xmm3, xmm4
mulsd xmm3, xmm5
addsd xmm3, xmm1
movapd xmm0, xmm6
cmpltsd xmm0, xmm1
andpd xmm3, xmm0
andnpd xmm0, xmm1
orpd xmm0, xmm3
addsd xmm4, xmm7
ucomisd xmm2, xmm4
ja 0x4217b5
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x4218a0
dec ebx
xor eax, dword [ecx + 0x35]
inc ebp
insb byte es:[edi], dx
jp 0x421887
sub byte [edi + 0x58], al
xor eax, 0x292a5e24
cmp eax, 0x6747387a
xor eax, 0x595e7a50
xor byte [edx - 0x72527c4c], cl
mov al, 0x83
mov cl, 0x8f
cmpsb byte [esi], byte es:[edi]
test byte [eax - 0x52725177], ch
mov byte [eax - 0x587b5272], dh
xchg byte [edi - 0x4f754f7b], ah
mov fs, word [ebp - 0x4c755376]
lea ebp, [edx - 0x517b4c7f]
xor dword [ecx - 0x54735277], 0xb181aa88
invalid
sub dword [ebp + ecx*4 - 0x7d507255], 0x85b489ab
scasb al, byte es:[edi]
sub byte [eax - 0x54745578], 0x80
mov dl, 0xe9
pop dword [edi]
add byte [eax], al
lea eax, [0x421841]
mov dword [ebp - 0x34], eax
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [ebp + eax - 0x138], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x4218bb
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x421826]
mov dword [ebp - 0x28], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x20], ecx
shr ecx, 0x10
mov dword [ebp - 0x30], ecx
mov esi, 0xff
xor ecx, ecx
xor ebx, ebx
xor edx, edx
inc edx
cmp esi, 2
jb 0x42192b
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, esi
jb 0x421924
mov dword [ebp - 0x24], esi
mov esi, 0xc
cmp ecx, 3
ja case.default.0x421938
jmp dword [ecx*4 + 0x612f48]
movzx eax, bl
add eax, ebp
add eax, 0xfffffec8
mov ebx, dword [ebp - 0x20]
jmp 0x42196a
movzx eax, bl
add eax, ebp
add eax, 0xfffffec8
mov ebx, dword [ebp - 0x30]
jmp 0x42196a
movzx eax, bl
add eax, ebp
add eax, 0xfffffec8
mov ebx, dword [ebp - 0x2c]
jmp 0x42198f
movzx eax, bl
add eax, ebp
add eax, 0xfffffec8
mov ebx, dword [ebp - 0x20]
mov bl, bh
jmp 0x42198f
movzx eax, bl
mov bl, byte [ebp + eax - 0x138]
mov eax, dword [ebp - 0x28]
add eax, ecx
add eax, 0xfffffffc
add bl, byte [eax]
inc ecx
movzx eax, bl
add bl, 0x1f
cmp ecx, 0x1e
movzx ebx, bl
cmovbe ebx, eax
mov eax, 0
cmova ecx, eax
movzx edi, bl
mov eax, edx
and eax, edi
dec esi
je 0x4219be
cmp eax, dword [ebp - 0x24]
ja 0x421933
jmp 0x4219c5
xor edx, edx
div dword [ebp - 0x24]
mov eax, edx
mov esi, dword [ebp - 0x24]
cmp esi, eax
je 0x4219f6
mov dl, byte [ebp + esi - 0x138]
xor dl, byte [ebp + eax - 0x138]
mov byte [ebp + esi - 0x138], dl
xor dl, byte [ebp + eax - 0x138]
mov byte [ebp + eax - 0x138], dl
xor byte [ebp + esi - 0x138], dl
dec esi
jne 0x421919
movzx eax, byte [ebp - 0x137]
mov dword [ebp - 0x30], eax
mov ecx, eax
mov al, byte [ebp - 0x133]
mov byte [ebp - 0x24], al
movzx eax, byte [ebp + edi - 0x138]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x34]
mov al, byte [edx]
mov bl, byte [ebp + ecx - 0x138]
add bl, byte [ebp - 0x135]
mov byte [ebp - 0x20], bl
mov ah, byte [edx + 1]
movzx esi, bl
mov dl, byte [ebp + esi - 0x138]
mov byte [ebp - 0x28], dl
movzx edi, byte [ebp - 0x131]
mov edx, dword [ebp - 0x2c]
movzx ebx, byte [ebp + edx - 0x138]
mov cl, byte [ebp - 0x28]
mov byte [ebp + edx - 0x138], cl
mov dl, byte [ebp + edi - 0x138]
mov byte [ebp + esi - 0x138], dl
mov ecx, dword [ebp - 0x30]
mov edx, ecx
inc dl
movzx edx, dl
mov cl, byte [ebp + edx - 0x138]
mov byte [ebp + edi - 0x138], cl
mov byte [ebp + edx - 0x138], bl
add ah, 0x5b
shl al, 4
or al, ah
movzx ecx, byte [ebp + esi - 0x138]
add ecx, ebx
mov esi, ebx
mov edx, 0xff
and ecx, edx
mov ebx, 0xff
movzx edx, al
mov dword [ebp - 0x28], edx
xor al, byte [ebp + ecx - 0x138]
movzx ecx, byte [ebp + edi - 0x138]
mov edx, dword [ebp - 0x2c]
movzx edx, byte [ebp + edx - 0x138]
add edx, ecx
mov cl, byte [ebp - 0x24]
add cl, byte [ebp + esi - 0x138]
mov byte [ebp - 0x24], cl
movzx ecx, cl
movzx ecx, byte [ebp + ecx - 0x138]
add ecx, edx
and ecx, ebx
movzx ecx, byte [ebp + ecx - 0x138]
xor al, byte [ebp + ecx - 0x138]
mov bl, byte [ebp - 0x20]
mov ecx, esi
add bl, cl
mov byte [ebp - 0x20], bl
mov edx, dword [ebp - 0x34]
mov cl, byte [edx + 2]
mov ah, byte [edx + 3]
movzx edi, bl
mov ch, byte [ebp + edi - 0x138]
mov edx, dword [ebp - 0x28]
movzx esi, byte [ebp + edx - 0x138]
mov dword [ebp - 0x38], esi
mov byte [ebp + edx - 0x138], ch
movzx ebx, al
mov al, byte [ebp + ebx - 0x138]
mov byte [ebp + edi - 0x138], al
mov edx, dword [ebp - 0x30]
mov al, dl
add al, 2
movzx esi, al
mov al, byte [ebp + esi - 0x138]
mov byte [ebp + ebx - 0x138], al
mov edx, dword [ebp - 0x38]
mov byte [ebp + esi - 0x138], dl
add ah, 0x5b
shl cl, 4
or cl, ah
movzx eax, byte [ebp + edi - 0x138]
add eax, edx
mov esi, edx
mov edi, 0xff
and eax, edi
movzx edx, cl
mov dword [ebp - 0x2c], edx
xor cl, byte [ebp + eax - 0x138]
movzx eax, byte [ebp + ebx - 0x138]
mov edx, dword [ebp - 0x28]
movzx edx, byte [ebp + edx - 0x138]
add edx, eax
mov al, byte [ebp - 0x24]
add al, byte [ebp + esi - 0x138]
mov byte [ebp - 0x24], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x138]
add eax, edx
and eax, edi
movzx eax, byte [ebp + eax - 0x138]
xor cl, byte [ebp + eax - 0x138]
movsx eax, cl
mov word [ebp - 0x1d4], ax
mov eax, esi
mov dl, byte [ebp - 0x20]
add dl, al
mov eax, dword [ebp - 0x34]
mov dh, byte [eax + 4]
mov al, byte [eax + 5]
mov byte [ebp - 0x28], al
mov byte [ebp - 0x20], dl
movzx eax, dl
mov dword [ebp - 0x38], eax
mov ch, byte [ebp + eax - 0x138]
mov esi, dword [ebp - 0x2c]
movzx ebx, byte [ebp + esi - 0x138]
mov byte [ebp + esi - 0x138], ch
movzx edi, cl
mov dl, byte [ebp + edi - 0x138]
mov byte [ebp + eax - 0x138], dl
mov eax, dword [ebp - 0x30]
mov dl, al
add dl, 3
movzx ecx, dl
mov dl, byte [ebp + ecx - 0x138]
mov byte [ebp + edi - 0x138], dl
mov byte [ebp + ecx - 0x138], bl
mov dl, byte [ebp - 0x24]
add dl, byte [ebp + ebx - 0x138]
movzx ecx, byte [ebp + edi - 0x138]
movzx edi, byte [ebp + esi - 0x138]
add edi, ecx
mov byte [ebp - 0x24], dl
movzx ecx, dl
movzx ecx, byte [ebp + ecx - 0x138]
add ecx, edi
mov dl, byte [ebp - 0x28]
add dl, 0x5b
shl dh, 4
or dh, dl
mov esi, dword [ebp - 0x38]
movzx edi, byte [ebp + esi - 0x138]
mov dword [ebp - 0x28], ebx
add edi, ebx
mov ebx, 0xff
and edi, ebx
mov dl, byte [ebp + edi - 0x138]
xor dl, dh
and ecx, ebx
movzx ecx, byte [ebp + ecx - 0x138]
xor dl, byte [ebp + ecx - 0x138]
movsx ecx, dl
mov word [ebp - 0x1d2], cx
add al, 5
xor ebx, ebx
mov byte [ebp - 0x2c], al
mov al, byte [ebp - 0x20]
add al, byte [ebp - 0x28]
movzx esi, dh
mov ecx, dword [ebp - 0x34]
mov dh, byte [ecx + ebx*2 + 6]
mov cl, byte [ecx + ebx*2 + 7]
mov byte [ebp - 0x30], cl
movzx ecx, byte [ebp + esi - 0x138]
mov dword [ebp - 0x28], ecx
mov byte [ebp - 0x20], al
movzx edi, al
mov dword [ebp - 0x38], edi
mov ch, byte [ebp + edi - 0x138]
mov byte [ebp + esi - 0x138], ch
movzx eax, dl
mov dl, byte [ebp + eax - 0x138]
mov byte [ebp + edi - 0x138], dl
mov dl, byte [ebp - 0x2c]
dec dl
movzx edi, dl
mov dl, byte [ebp + edi - 0x138]
mov byte [ebp + eax - 0x138], dl
mov ecx, dword [ebp - 0x28]
mov byte [ebp + edi - 0x138], cl
movzx eax, byte [ebp + eax - 0x138]
movzx edi, byte [ebp + esi - 0x138]
mov esi, ecx
add edi, eax
mov al, byte [ebp - 0x24]
add al, byte [ebp + ecx - 0x138]
mov byte [ebp - 0x24], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x138]
add eax, edi
mov cl, byte [ebp - 0x30]
add cl, 0x5b
shl dh, 4
or dh, cl
mov ecx, dword [ebp - 0x38]
movzx ecx, byte [ebp + ecx - 0x138]
add ecx, esi
mov edi, 0xff
and ecx, edi
mov dl, byte [ebp + ecx - 0x138]
mov ch, byte [ebp - 0x2c]
xor dl, dh
and eax, edi
movzx eax, byte [ebp + eax - 0x138]
xor dl, byte [ebp + eax - 0x138]
movsx eax, dl
mov word [ebp + ebx*2 - 0x1d0], ax
mov al, ch
inc al
inc ebx
cmp ebx, 0x13
jne 0x421cab
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x34]
mov cl, byte [eax + 0x2c]
mov ah, byte [eax + 0x2d]
movzx esi, dh
mov dword [ebp - 0x38], esi
mov al, byte [ebp - 0x20]
add al, byte [ebp - 0x28]
movzx ebx, byte [ebp + esi - 0x138]
mov byte [ebp - 0x20], al
movzx edi, al
mov dh, byte [ebp + edi - 0x138]
mov byte [ebp + esi - 0x138], dh
movzx esi, dl
mov dl, byte [ebp + esi - 0x138]
mov byte [ebp + edi - 0x138], dl
movzx edx, ch
mov ch, byte [ebp + edx - 0x138]
mov byte [ebp + esi - 0x138], ch
mov byte [ebp + edx - 0x138], bl
add ah, 0x5b
shl cl, 4
or cl, ah
mov al, byte [ebp - 0x24]
add al, byte [ebp + ebx - 0x138]
movzx edx, byte [ebp + edi - 0x138]
add edx, ebx
movzx esi, byte [ebp + esi - 0x138]
mov edi, dword [ebp - 0x38]
movzx edi, byte [ebp + edi - 0x138]
add edi, esi
mov dword [ebp - 0x28], edi
mov byte [ebp - 0x24], al
movzx esi, al
movzx edi, byte [ebp + esi - 0x138]
add edi, dword [ebp - 0x28]
mov eax, 0xff
and edx, eax
mov dl, byte [ebp + edx - 0x138]
xor dl, cl
and edi, eax
movzx edi, byte [ebp + edi - 0x138]
xor dl, byte [ebp + edi - 0x138]
movsx edi, dl
mov word [ebp - 0x1aa], di
xor esi, esi
mov al, byte [ebp - 0x20]
add al, bl
movzx edi, cl
mov ebx, dword [ebp - 0x34]
mov cl, byte [ebx + esi*2 + 0x2e]
mov ah, byte [ebx + esi*2 + 0x2f]
mov byte [ebp - 0x2c], ah
mov ebx, edi
mov dword [ebp - 0x164], edi
movzx edi, byte [ebp + edi - 0x138]
mov dword [ebp - 0x28], edi
mov byte [ebp - 0x20], al
movzx edi, al
mov dword [ebp - 0x38], edi
mov dh, byte [ebp + edi - 0x138]
mov byte [ebp + ebx - 0x138], dh
movzx edx, dl
mov al, byte [ebp + edx - 0x138]
mov byte [ebp + edi - 0x138], al
mov ebx, dword [ebp - 0x30]
movzx edi, bl
mov ch, byte [ebp + edi - 0x138]
mov byte [ebp + edx - 0x138], ch
mov eax, dword [ebp - 0x28]
mov byte [ebp + edi - 0x138], al
mov ch, byte [ebp - 0x24]
add ch, byte [ebp + eax - 0x138]
mov edi, eax
movzx eax, byte [ebp + edx - 0x138]
mov edx, dword [ebp - 0x164]
movzx edx, byte [ebp + edx - 0x138]
add edx, eax
mov byte [ebp - 0x24], ch
movzx eax, ch
movzx eax, byte [ebp + eax - 0x138]
add eax, edx
mov dl, byte [ebp - 0x2c]
add dl, 0x5b
shl cl, 4
or cl, dl
mov edx, dword [ebp - 0x38]
movzx edx, byte [ebp + edx - 0x138]
add edx, edi
mov edi, 0xff
and edx, edi
mov edi, 0xff
mov dl, byte [ebp + edx - 0x138]
xor dl, cl
and eax, edi
movzx eax, byte [ebp + eax - 0x138]
xor dl, byte [ebp + eax - 0x138]
movsx eax, dl
mov word [ebp + esi*2 - 0x1a8], ax
inc esi
inc bl
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebp - 0x28]
cmp esi, 0x15
jne 0x421e6a
mov al, byte [ebp - 0x20]
add al, bl
movzx esi, cl
mov dword [ebp - 0x20], esi
mov ecx, dword [ebp - 0x34]
mov dh, byte [ecx + 0x58]
mov cl, byte [ecx + 0x59]
movzx edi, al
mov ch, byte [ebp + edi - 0x138]
movzx eax, byte [ebp + esi - 0x138]
mov byte [ebp + esi - 0x138], ch
movzx esi, dl
mov dl, byte [ebp + esi - 0x138]
mov byte [ebp + edi - 0x138], dl
movzx ebx, byte [ebp - 0x30]
mov dl, byte [ebp + ebx - 0x138]
mov byte [ebp + esi - 0x138], dl
mov byte [ebp + ebx - 0x138], al
add cl, 0x5b
shl dh, 4
or dh, cl
mov dl, byte [ebp - 0x24]
add dl, byte [ebp + eax - 0x138]
movzx ecx, byte [ebp + edi - 0x138]
add ecx, eax
mov eax, 0xff
and ecx, eax
xor dh, byte [ebp + ecx - 0x138]
movzx ecx, byte [ebp + esi - 0x138]
mov esi, dword [ebp - 0x20]
movzx esi, byte [ebp + esi - 0x138]
add esi, ecx
movzx ecx, dl
movzx ecx, byte [ebp + ecx - 0x138]
add ecx, esi
and ecx, eax
movzx eax, byte [ebp + ecx - 0x138]
xor dh, byte [ebp + eax - 0x138]
movsx eax, dh
mov word [ebp - 0x17e], ax
mov word [ebp - 0x17c], 0
mov dword [ebp - 0x10], 1
lea eax, [ebp - 0x15c]
xor edx, edx
lea esi, [ebp - 0x144]
lea edi, [ebp - 0x1d4]
mov ecx, dword [ebp - 0x160]
push eax
push edx
push edx
push esi
push 0x100
push edi
push reloc.WSOCK32.dll_bind
call fcn.004221a0
mov ecx, dword [ebp - 0x144]
test ecx, ecx
je 0x4220a3
xor esi, esi
mov edi, dword [ebp - 0x13c]
xor ebx, ebx
mov dword [ebp - 0x24], ecx
mov eax, dword [edi + esi*4]
cmp dword [eax + 0x2c], 0
movzx ebx, bl
mov ecx, 1
cmovne ebx, ecx
push eax
call fcn.005db40d
mov ecx, dword [ebp - 0x24]
add esp, 4
inc esi
cmp ecx, esi
jne 0x42207b
and bl, 1
jmp 0x4220ab
mov edi, dword [ebp - 0x13c]
xor ebx, ebx
push edi
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x148]
cmp ecx, 8
jb 0x4220f3
mov eax, dword [ebp - 0x15c]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x4220e9
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x422115
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, ebx
add esp, 0x1c8
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0x10], 0
call fcn.00401eda
call fcn.005f5844
push ebp
sub esp, 0x1c
add ebp, 0xc
mov ecx, dword [ebp - 0x148]
cmp ecx, 8
jb 0x422160
mov eax, dword [ebp - 0x15c]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x422156
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x422182
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x148], 7
mov word [ebp - 0x15c], 0
add esp, 0x1c
pop ebp
ret
call fcn.005f5844
nop
push ebp
sub esp, 0x1c
add ebp, 0xc
push dword [ebp - 0x13c]
call fcn.005fd8d5
add esp, 0x20
pop ebp
ret