Function at 0x50dd30
Capabilities:
Encode data using xor
Get hostname

Disassembly:
sub esp, 0xb0
mov eax, dword [0x586220]
xor eax, esp
mov dword [esp + 0xac], eax
push ebx
push ebp
mov ebp, dword [esp + 0xbc]
xor ebx, ebx
push esi
push edi
xor edi, edi
mov dword [esp + 0x30], ebp
push 0xff
mov dword [esp + 0x2c], edi
xor esi, esi
mov dword [esp + 0x24], edi
call fcn.0050cec0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
je 0x50e38c
movzx eax, word [ebp + 2]
movzx ecx, byte [ebp + 0x11]
and eax, 1
mov dword [esp + 0x14], eax
movzx eax, byte [ebp + 0x10]
shl ecx, 8
add ecx, eax
push 0x94
mov dword [esp + 0x28], ecx
call fcn.0050cec0
mov edi, eax
add esp, 4
test edi, edi
je 0x50e38c
lea eax, [esp + 0x28]
push eax
push 0x1c
push 1
call fcn.0050cfb0
cmp dword [esp + 0x28], ebx
jne 0x50ddd1
push edi
call fcn.00534ada
add esp, 4
xor edi, edi
jmp 0x50e38c
push 0x94
mov dword [0x584d18], eax
push 0
push edi
mov dword [eax], 4
mov dword [eax + 0x18], edi
call fcn.00535f30
mov dword [edi + 0x20], 0xffffffff
add esp, 0xc
mov dword [0x584cfc], 4
movzx eax, word [ebp + 0x20]
mov dword [edi + 0x34], eax
push dword [ebp + 0x1c]
push ebp
call fcn.00511a60
push dword [ebp + 0x14]
mov dword [esp + 0x14], eax
push ebp
call fcn.00511a60
mov esi, eax
cmp dword [esp + 0x10], ebx
jne 0x50dec7
test esi, esi
je 0x50e388
push 0x105
call fcn.0050cec0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je 0x50e37a
push dword [esp + 0x14]
mov dword [esp + 0x24], 1
push 0x200
push esi
call fcn.005118d0
mov dword [esp + 0x1c], eax
test eax, eax
je 0x50e388
cmp dword [esp + 0x14], ebx
je 0x50de97
push eax
call fcn.0050cec0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x50e388
push dword [esp + 0x14]
push esi
push dword [esp + 0x24]
push ebx
call fcn.00511880
mov esi, ebx
push 0x41f174
push dword [esp + 0x14]
call dword [0x57e2f4]
push 0x105
push dword [esp + 0x1c]
push esi
push 0xa
call fcn.0050d520
add esp, 0x18
test ebx, ebx
je 0x50dec7
push ebx
call fcn.00534ada
add esp, 4
movzx eax, word [ebp + 0x12]
mov dword [esp + 0x1c], eax
cmp eax, 0xfffe
jne 0x50df0c
test esi, esi
jne 0x50dee9
mov dword [0x584cfc], 4
jmp 0x50e388
push esi
push 8
call fcn.0050d410
test eax, eax
jne 0x50df04
mov dword [0x584cfc], 0x29
jmp 0x50e388
dec eax
movzx eax, ax
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x10]
xor ebx, ebx
cmp dword [esp + 0x20], ebx
sete bl
and ebx, dword [esp + 0x14]
push ebx
push 0x105
push esi
call fcn.005118d0
mov dword [esp + 0x14], eax
test eax, eax
je 0x50e38c
push eax
call fcn.0050cec0
add esp, 4
mov dword [edi + 0x1c], eax
test eax, eax
je 0x50e38c
push ebx
push esi
push dword [esp + 0x1c]
push eax
call fcn.00511880
cmp dword [esp + 0x20], 0
je 0x50df6d
push esi
call fcn.00534ada
add esp, 4
mov dword [esp + 0x20], 0
mov eax, dword [ebp + 0x24]
test eax, eax
je 0x50e36e
push eax
push ebp
call fcn.00511a60
movdqu xmm0, xmmword [eax]
movdqu xmmword [edi + 0x74], xmm0
movdqu xmm0, xmmword [eax + 0x10]
lea eax, [esp + 0x7c]
push eax
push edi
movdqu xmmword [edi + 0x84], xmm0
call fcn.0050f020
test eax, eax
je 0x50e38c
movzx ecx, byte [edi + 0x18]
movzx eax, byte [edi + 0x19]
shl ecx, 8
add ecx, eax
cmp ecx, 0x120
je 0x50dfc5
cmp ecx, 0x200
jne 0x50dfcb
cmp dword [esp + 0x24], ecx
jbe 0x50dfda
mov dword [0x584cfc], 0xd
jmp 0x50e38c
movzx eax, word [ebp + 0x22]
test ax, ax
je 0x50e092
mov ebx, eax
shl ebx, 4
sub ebx, eax
movzx eax, word [ebp + 0x20]
add ebx, ebx
add eax, eax
lea ecx, [ebx + ebx]
cmp ecx, eax
jae 0x50e004
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
lea eax, [esp + 0x34]
push eax
call dword [0x57e29c]
lea eax, [esp + 0x34]
push eax
call fcn.0050d6c0
movzx ecx, word [esp + 0x3a]
mov esi, eax
push ecx
movzx ecx, word [esp + 0x3a]
push ecx
movzx ecx, word [esp + 0x3c]
push ecx
call fcn.00512bd0
mov ecx, dword [edi + 0x40]
imul eax, eax, 0xa8c0
add eax, esi
mov dword [esp + 0x24], eax
mov eax, ecx
and eax, 0x1f
push eax
mov eax, ecx
shr ecx, 9
shr eax, 5
and ecx, 0x7f
and eax, 0xf
add ecx, 0x7bc
push eax
push ecx
call fcn.00512bd0
mov ecx, dword [esp + 0x24]
imul eax, eax, 0xa8c0
add eax, dword [edi + 0x44]
cmp eax, ecx
jbe 0x50e077
sub eax, ecx
jmp 0x50e07b
sub ecx, eax
mov eax, ecx
mov esi, dword [esp + 0x10]
cmp eax, ebx
jbe 0x50e092
mov dword [0x584cfc], 0x63
jmp 0x50e38c
movzx eax, word [esp + 0x86]
add eax, 0x20
test dword [esp + 0xc8], 0x100000
mov dword [edi + 0x58], eax
je 0x50e0c5
mov dword [edi], 0xffffffff
mov dword [edi + 0x5c], eax
mov dword [0x584cfc], 0
jmp 0x50e38c
push dword [edi + 8]
movzx eax, word [esp + 0x8a]
or esi, 0xffffffff
push dword [esp + 0x1c]
add eax, 0x20
mov dword [esp + 0x1c], 0
push eax
push edi
xor ebx, ebx
call fcn.0050d940
test eax, eax
je 0x50e388
mov edx, dword [edi + 8]
xor eax, eax
test edx, edx
jle 0x50e135
mov edx, dword [esp + 0x1c]
xor ebp, ebp
mov ecx, dword [esp + 0x18]
mov cl, byte [eax + ecx]
cmp cl, 0xff
jne 0x50e11e
test esi, esi
jns 0x50e11b
cmp edx, 0xffff
cmove esi, eax
inc ebp
jmp 0x50e124
cmp cl, 0xfe
je 0x50e124
inc ebx
inc eax
cmp eax, dword [edi + 8]
jl 0x50e102
mov edx, dword [edi + 8]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
lea eax, [ebx + ecx]
cmp eax, dword [edi + 4]
ja 0x50e37e
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
cmp eax, 0xffff
je 0x50e171
cmp eax, edx
jae 0x50e171
mov dl, byte [eax + ebx]
cmp dl, 0xfe
je 0x50e171
mov esi, eax
cmp dl, 0xff
je 0x50e171
test byte [ebp], 1
je 0x50e171
mov byte [eax + ebx], 0xff
cmp esi, 0xffffffff
je 0x50e362
cmp byte [esi + ebx], 0xff
jne 0x50e362
movzx eax, si
mov dword [edi], eax
movzx eax, cx
dec eax
mov dword [edi + 0xc], eax
movzx eax, word [esp + 0x8c]
mov dword [edi + 0x10], eax
mov eax, dword [edi + 0x58]
add eax, esi
mov dword [edi + 0x5c], eax
movzx eax, word [esp + 0x8c]
movzx ecx, word [esp + 0x8a]
add ecx, eax
movzx eax, word [esp + 0x88]
imul ecx, esi
push 0x1c
add ecx, eax
movzx eax, word [esp + 0x8a]
add eax, 0x20
add ecx, eax
mov dword [edi + 0x60], ecx
movzx eax, word [esp + 0x8e]
mov dword [edi + 0x64], eax
lea eax, [esp + 0x5c]
push eax
lea eax, [ecx + 0x14]
push eax
push edi
call fcn.0050d940
test eax, eax
je 0x50e388
cmp word [esp + 0x58], 0
je 0x50e242
mov eax, dword [esp + 0x58]
lea edx, [esp + 0x5c]
add eax, dword [esp + 0x5a]
mov esi, 0x18
movzx eax, ax
xor byte [edx], al
lea edx, [edx + 1]
mov cx, ax
add eax, eax
shr cx, 0xf
add cx, ax
movzx eax, cx
mov cx, ax
add eax, eax
shr cx, 0xf
add cx, ax
movzx eax, cx
dec esi
jne 0x50e212
cmp dword [esp + 0x70], esi
jne 0x50e37e
movzx eax, word [esp + 0x5c]
inc eax
push 0x38
mov dword [edi + 0x54], eax
lea eax, [esp + 0x48]
push 0
push eax
call fcn.00535f30
mov eax, dword [esp + 0xa6]
add esp, 0xc
mov ecx, dword [esp + 0x98]
mov word [esp + 0x56], ax
mov word [esp + 0x5a], ax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x48]
mov word [esp + 0x58], cx
push eax
mov word [esp + 0x60], cx
mov dword [esp + 0x38], 0x10
call dword [0x57e244]
mov ax, word [edi + 0x54]
lea edx, [esp + 0x5c]
mov word [esp + 0x5c], ax
mov esi, 0x18
mov eax, dword [esp + 0x98]
add eax, dword [esp + 0x9a]
movzx eax, ax
lea esp, [esp]
xor byte [edx], al
lea edx, [edx + 1]
mov cx, ax
add eax, eax
shr cx, 0xf
add cx, ax
movzx eax, cx
mov cx, ax
add eax, eax
shr cx, 0xf
add cx, ax
movzx eax, cx
dec esi
jne 0x50e2c0
push 0x38
lea eax, [esp + 0x48]
push eax
push dword [edi + 0x60]
push edi
call fcn.0050f190
test eax, eax
je 0x50e388
mov al, byte [edi + 0x50]
push 1
mov byte [esp + 0x33], al
lea eax, [esp + 0x33]
push eax
push dword [edi + 0x5c]
push edi
call fcn.0050f190
test eax, eax
je 0x50e388
mov dword [edi + 0x14], esi
movzx eax, word [esp + 0x98]
mov dword [edi + 0x38], eax
movzx eax, word [esp + 0x9a]
mov dword [edi + 0x3c], eax
lea eax, [esp + 0x34]
push eax
call dword [0x57e29c]
lea eax, [esp + 0x34]
push eax
call fcn.0050d690
movzx eax, ax
mov dword [edi + 0x48], eax
lea eax, [esp + 0x34]
push eax
call fcn.0050d6c0
mov dword [edi + 0x4c], eax
mov dword [0x584cfc], esi
jmp 0x50e388
mov dword [0x584cfc], 0x66
jmp 0x50e388
mov dword [0x584cfc], 4
jmp 0x50e38c
mov esi, eax
jmp 0x50e38c
mov dword [0x584cfc], 0x65
mov esi, dword [esp + 0x10]
push dword [esp + 0x18]
call fcn.00534ada
add esp, 4
cmp dword [esp + 0x20], 0
je 0x50e3a8
push esi
call fcn.00534ada
add esp, 4
test edi, edi
je 0x50e3ca
cmp dword [edi + 0x24], 0
je 0x50e3ca
push 0
push 0x24
push 0
push 0x3c
push dword [edi + 0x20]
call dword [0x57e1a0]
mov dword [edi + 0x24], 0
cmp dword [0x584cfc], 0
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebp
pop ebx
je 0x50e3f0
test eax, eax
je 0x50e3ee
push eax
call fcn.0050e500
push dword [esp + 0x18]
call fcn.0050d1a0
xor eax, eax
mov ecx, dword [esp + 0xac]
xor ecx, esp
call fcn.00535482
add esp, 0xb0
ret 8