Function at 0x51e395
Capabilities:
Encode data using xor

Disassembly:
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x51e359
push ebx
push eax
call fcn.0053e9f6
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x51e347
call fcn.0053e9f6
add esp, 4
pop ebx
call fcn.0053e9f6
add esp, 4
mov ebx, dword [ebp - 0x10]
test ebx, ebx
je 0x51e381
push ebx
call fcn.0053e9f6
add esp, 4
mov ebx, dword [ebp - 0x14]
test ebx, ebx
je 0x51e391
push ebx
call fcn.0053e9f6
add esp, 4
mov esp, ebp
pop ebp
ret
push ebp
mov ebp, esp
sub esp, 0x18
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
stc
jb 0x51e3b7
mov esp, 0xe8be01eb
cwde
invalid
jmp 0x51e3ba
call fcn.00457157
mov dword [ebp - 0x10], eax
jmp 0x51e3c5
jmp 0x51e3c8
clc
jae 0x51e3cc
jns 0x51e358
mov eax, dword [ebp - 0x10]
push eax
stc
jb 0x51e3d4
inc ebp
invalid
mov al, 0x8b
pop ebp
cld
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x51e3e4
push ebx
call fcn.0053e9f6
add esp, 4
pop eax
mov dword [ebp - 4], eax
jmp 0x51e3eb
push 0
mov ebx, 0x540380
call fcn.0053ea0e
add esp, 4
mov dword [ebp - 0x10], eax
jmp 0x51e403
jmp 0x51e406
jmp 0x51e409
push 0x600ad5
jmp 0x51e411
push dword [ebp - 4]
clc
jae 0x51e418
punpckhbw mm1, mm6
or ah, byte [eax]
push 0x600ace
jmp 0x51e420
push dword [ebp - 0x10]
mov ecx, 4
call fcn.00401296
add esp, 0x10
mov dword [ebp - 0x14], eax
mov ebx, dword [ebp - 0x10]
test ebx, ebx
je 0x51e443
push ebx
call fcn.0053e9f6
add esp, 4
stc
jb 0x51e447
jns 0x51e433
jmp 0x51e44a
add dword [ebx + 0x30168], eax
sub byte [edx], 0xeb
add dword [edi], ecx
push 0x80000301
push 0
jmp 0x51e454
push 1
push 0
push 0
push 0
push getpeername
push 0
jmp 0x51e469
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x51e475
mov eax, 0x5dc73b
push eax
push 3
mov ebx, 0x542e80
call fcn.0053ea0e
add esp, 0x28
mov dword [ebp - 0x18], eax
mov ebx, dword [ebp - 0x14]
test ebx, ebx
je 0x51e49b
push ebx
call fcn.0053e9f6
add esp, 4
stc
jb 0x51e49f
jp 0x51e48b
jmp 0x51e4a2
add dword [ecx - 0x74f0fe15], ecx
jmp 0x51e4a5
mov eax, dword [ebp - 0x18]
mov dword [ebp - 8], eax
jmp 0x51e4ae
inc ebp
call 0xec4a2a35
add dword [ebx - 0x17f0fe15], edi
jns 0x51e4a6
jmp 0x51e4b1
call fcn.0040d72f
mov dword [ebp - 0x10], eax
call 0x51e4be
add dword [esp], 6
ret
out dx, al
dec dword [ecx + 0xe8f045]
add byte [eax], al
add byte [ebx - 0x3cf9dbfc], al
mov gs, ebx
add dword [edi], ecx
push 0x80000101
push 0
jmp 0x51e4d1
push 9
push 1
mov ebx, 0x540950
add byte [eax + 1], ch
add byte [eax], al
add byte [ebx + 0x540950], bh
call fcn.0053ea0e
add esp, 0x10
mov dword [ebp - 0x14], eax
jmp 0x51e4ee
jmp 0x51e4f1
stc
jb 0x51e4f5
mov ecx, dword [ebx + 0x33ff085d]
mov ebx, dword [ebp + 8]
push dword [ebx]
or bh, bh
xor edi, ecx
stc
jb 0x51e4fe
cmp edi, 0x1ebec75
test edi, edi
jne 0x51e4f7
push dword [ebp - 0x14]
jmp 0x51e504
push dword [ebp - 0x10]
mov ecx, 3
call fcn.00401296
add esp, 0xc
mov dword [ebp - 0x18], eax
mov ebx, dword [ebp - 0x10]
test ebx, ebx
je 0x51e527
push ebx
call fcn.0053e9f6
add esp, 4
mov ebx, dword [ebp - 0x14]
test ebx, ebx
je 0x51e537
push ebx
call fcn.0053e9f6
add esp, 4
jmp 0x51e53a
stc
jb 0x51e53e
jne 0x51e537
clc
jae 0x51e542
or dword [ebx - 0x14af17bb], 1
jne 0x51e4d5
mov eax, dword [ebp - 0x18]
push eax
jmp 0x51e549
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x51e559
pop ebp
hlt
push ebx
call fcn.0053e9f6
add esp, 4
pop eax
mov dword [ebp - 0xc], eax
jmp 0x51e560
psubw mm6, qword [edx + 1]
stc
jb 0x51e564
mov bl, 0x83
jge 0x51e55f
cmp dword [ebp - 8], 0
jne 0x51e7d4
add byte [edi], cl
test dword [esi + 2], esp
add byte [eax], al
add al, byte [eax]
add cl, bh
stc
jb 0x51e572
jns 0x51e5db
push 0
add byte [eax], al
add byte [eax], al
mov ebx, 0x540380
call fcn.0053ea0e
add esp, 4
add al, ch
lea eax, [edx + eax]
add byte [ebx + 0x458904c4], al
invalid
mov dword [ebp - 0x10], eax
clc
jae 0x51e58b
jne 0x51e584
clc
jae 0x51e58f
jg 0x51e57b
jmp 0x51e592
add dword [edi + 0x600ad568], eax
add bl, ch
add dword [edi + edi*8 + 0x75], edi
push 0x600ad5
jmp 0x51e59a
push dword [ebp - 4]
cld
jmp 0x51e5a0
punpckhbw mm1, mm6
or ah, byte [eax]
push 0x600ace
clc
jae 0x51e5a9
jle 0x51e5a9
push dword [ebp - 0x10]
jne 0x51e59c
mov ecx, 4
call fcn.00401296
add esp, 0x10
mov dword [ebp - 0x14], eax
mov ebx, dword [ebp - 0x10]
test ebx, ebx
je 0x51e5cc
push ebx
call fcn.0053e9f6
add esp, 4
clc
jae 0x51e5d0
jnp 0x51e5c9
clc
jae 0x51e5d4
jae 0x51e63d
push getpeername
push 0
add al, 0
add byte [eax + 0x1eb006a], al
jg 0x51e56a
jmp 0x51e5de
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x51e5ea
inc ebp
hlt
mov eax, 0x5dc73b
push eax
push 1
mov ebx, 0x541750
call fcn.0053ea0e
add esp, 0x10
mov dword [ebp - 0x18], eax
clc
jae 0x51e604
invalid
clc
jae 0x51e608
punpckhbw mm0, qword [0x6a800000]
add al, bh
push reloc.WS2_32.dll_getpeername
push 0
clc
jae 0x51e613
jnp 0x51e59f
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x51e61f
inc ebp
call 0x5c7a69f
mov eax, 0x5ff019
push eax
push getpeername
push 0
call 0x51e62c
add dword [esp], 6
ret
add byte [eax + 0x68], dl
add al, byte [eax]
add byte [eax], al
mov ebx, 0x542b70
call fcn.0053ea0e
add esp, 0x1c
mov ebx, dword [ebp - 0x14]
test ebx, ebx
je 0x51e661
push ebx
call fcn.0053e9f6
add esp, 4
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x51e671
push ebx
call fcn.0053e9f6
add esp, 4
jmp 0x51e674
push 0
mov ebx, 0x540380
call fcn.0053ea0e
add esp, 4
mov dword [ebp - 0x10], eax
jmp 0x51e68c
jmp 0x51e68f
clc
jae 0x51e693
mov edi, 0x600ad568
add bl, ch
add dword [edi - 0x14038a01], eax
add dword [ecx + 0x600ace68], esi
add bl, ch
add dword [edi], ecx
push 0x600ad5
jmp 0x51e69b
push dword [ebp - 4]
jmp 0x51e6a1
push 0x600ace
jmp 0x51e6a9
push dword [ebp - 0x10]
mov ecx, 4
call fcn.00401296
add esp, 0x10
mov dword [ebp - 0x14], eax
mov ebx, dword [ebp - 0x10]
test ebx, ebx
je 0x51e6cc
push ebx
call fcn.0053e9f6
add esp, 4
jmp 0x51e6cf
jmp 0x51e6d2
push 0x80000301
push 0
clc
jae 0x51e6dd
js 0x51e746
push 1
add dword [eax], eax
add byte [eax], al
push 0
push 0
push 0
push getpeername
push 0
clc
jae 0x51e6f3
mov esp, 0x85ec458b
sal byte [ebp + 5], 0xb8
cmp eax, edi
pop ebp
add byte [eax + 0x68], dl
add eax, dword [eax]
add byte [eax], al
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x51e6ff
mov eax, 0x5dc73b
push eax
push 3
mov ebx, 0x542e80
call fcn.0053ea0e
add esp, 0x28
mov dword [ebp - 0x18], eax
mov ebx, dword [ebp - 0x14]
test ebx, ebx
je 0x51e725
push ebx
call fcn.0053e9f6
add esp, 4
stc
jb 0x51e729
mov al, ch
add byte [eax], al
add byte [eax], al
call 0x51e72e
add dword [esp], 6
ret
add eax, dword [eax]
sub byte [edx], 0xe8
add byte [eax], al
add byte [eax], al
add dword [esp], 6
ret
add byte [eax], al
add al, bh
clc
jae 0x51e7d8
jge 0x51e7d1
clc
jae 0x51e7dc
punpckhbw mm0, qword [ecx]
add eax, dword [eax]
sub byte [edx], 0xeb
add dword [edx + 0x68], esi
add byte [eax + 1], ch
add eax, dword [eax]
sub byte [edx], 0xeb
add dword [ebp + 0x268], eax
add byte [eax + 1], ch
add eax, dword [eax]
sub byte [edx], 0xf9
push 0x80000301
push 0
jmp 0x51e7e6
push 0
push 0x80000301
push 0
jmp 0x51e7f5
push 2
push 0x80000301
push 0
stc
jb 0x51e805
ud0
push dword [ebp - 8]
push 3
mov ebx, 0x542f90
call fcn.0053ea0e
add esp, 0x28
jmp 0x51e81d
clc
jae 0x51e821
punpckhbw mm0, qword [eax + eax]
add byte [eax + 0x1eb006a], al
jnp 0xc0d7dc75
push getpeername
push 0
jmp 0x51e82b
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x51e837
mov eax, 0x5dc73b
push eax
push 0x80000301
push 0
clc
add al, bh
jae 0x51e843
test edi, edi
jne 0x51e83e
push dword [ebp - 8]
push 2
mov ebx, 0x543160
call fcn.0053ea0e
add esp, 0x1c
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x51e868
push ebx
call fcn.0053e9f6
add esp, 4
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x51e878
push ebx
call fcn.0053e9f6
add esp, 4
mov esp, ebp
pop ebp
ret 4