Function at 0x418530
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x198
mov eax, dword [0x603d70]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push ecx
push eax
push esi
push str.StartProcess
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], ecx
call fcn.00401000
add esp, 0x10
jmp 0x41857d
push esi
call fcn.00418490
add esp, 4
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x144], edx
call dword [0x5a24c4]
mov esi, eax
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4185a0
sub eax, edx
lea ecx, [eax + 1]
cmp byte [ecx + esi], 0
lea eax, [ecx + esi]
je 0x4185cd
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4185b8
sub eax, edi
lea ecx, [ecx + eax + 1]
cmp byte [ecx + esi], dl
lea eax, [ecx + esi]
jne 0x4185b5
lea edi, [ecx + 0x40]
push edi
call fcn.0045e9f9
push edi
mov ebx, eax
push 0
push ebx
mov dword [ebp - 0x140], ebx
call fcn.0055d200
add esp, 0x10
cmp byte [esi], 0
mov edi, ebx
je 0x418658
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4185f6
sub eax, edx
inc eax
mov dword [ebp - 0x12c], eax
cmp eax, 0xc
jbe 0x41861d
push str.TLMULTIWINS
push esi
call fcn.00560c70
add esp, 8
test eax, eax
jne 0x41864d
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x418622
sub eax, edx
push eax
push esi
push edi
call fcn.0055c8f0
mov eax, esi
add esp, 0xc
lea edx, [eax + 1]
jmp 0x418640
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x418640
sub eax, edx
lea edi, [edi + eax + 1]
add esi, dword [ebp - 0x12c]
cmp byte [esi], 0
jne 0x4185f1
mov eax, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x148]
push eax
push ecx
push str.TLMULTIWINS_I64d
sub edi, ebx
lea edx, [ebx + edi]
push 0x40
push edx
call fcn.0055e500
add esp, 0x14
add eax, ebx
mov byte [eax + edi + 1], 0
lea eax, [ebp - 0x24]
push eax
push 0x100
push 0
push 0x8000004
push 0
push 0xffffffffffffffff
mov dword [ebp - 0x24], 0x745f4c54
mov dword [ebp - 0x20], 0x446a7968
mov dword [ebp - 0x1c], 0x617461
call dword [0x5a24d0]
mov esi, eax
mov dword [ebp - 0x14c], esi
jmp 0x4186cb
test esi, esi
jne 0x4186e3
pop edi
lea eax, [esi - 4]
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0055d11a
mov esp, ebp
pop ebp
ret
push 0
push 0
push 0
push 2
push esi
call dword [0x5a24d4]
mov edi, eax
test edi, edi
jne 0x418713
push esi
call dword [0x5a2248]
lea eax, [edi - 5]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0055d11a
mov esp, ebp
pop ebp
ret
jmp 0x418725
xor ebx, ebx
call fcn.0055f9d7
shl eax, 0xf
mov dword [ebp - 0x12c], eax
call fcn.0055f9d7
mov esi, eax
add esi, dword [ebp - 0x12c]
shl esi, 8
call fcn.0055f9d7
xor esi, eax
mov dword [edi + ebx*4], esi
inc ebx
cmp ebx, 0x40
jb 0x418727
mov ecx, dword [ebp - 0x148]
mov eax, dword [ebp - 0x144]
mov dword [edi + 0x94], ecx
mov edx, eax
mov dword [edi + 0xf8], eax
and dword [edi + 0x54], 0xffff7fff
push 0x44
lea eax, [ebp - 0x198]
push 0
push eax
sar edx, 0x1f
call fcn.0055d200
xor eax, eax
push 0x103
push eax
lea ecx, [ebp - 0x127]
push ecx
mov dword [ebp - 0x198], 0x44
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], eax
mov byte [ebp - 0x128], al
call fcn.0055d200
mov eax, dword [ebp - 0x150]
add esp, 0x18
test eax, eax
je 0x4187f9
push eax
push str._thyj_client
push str._s__s
lea edx, [ebp - 0x128]
push 0x104
push edx
call fcn.0055e500
add esp, 0x14
jmp 0x418817
push str._thyj_client
push 0x5a4268
lea eax, [ebp - 0x128]
push 0x104
push eax
call fcn.0055e500
add esp, 0x10
mov eax, dword [ebp - 0x140]
lea ecx, [ebp - 0x13c]
push ecx
lea edx, [ebp - 0x198]
push edx
mov edx, dword [ebp - 0x154]
push 0
push eax
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x128]
push ecx
push edx
call dword [0x5a24c8]
test eax, eax
jne 0x418859
mov esi, dword [0x5a2248]
lea ebx, [eax - 3]
jmp 0x4188ac
mov esi, dword [0x5a2970]
call esi
mov ebx, eax
mov eax, dword [edi + 0x54]
test eax, 0x8000
jne 0x41888e
lea ecx, [ecx]
push 0x64
call dword [0x5a2280]
call esi
sub eax, ebx
cmp eax, 0x4e20
ja 0x41888e
mov ecx, dword [edi + 0x54]
test ecx, 0x8000
je 0x418870
mov edx, dword [ebp - 0x13c]
mov esi, dword [0x5a2248]
push edx
call esi
mov eax, dword [ebp - 0x138]
push eax
call esi
mov ebx, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x140]
push ecx
call fcn.0045e9ee
add esp, 4
push edi
call dword [0x5a24d8]
mov edx, dword [ebp - 0x14c]
push edx
call esi
jmp 0x4188dd
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov eax, ebx
xor ecx, ebp
pop ebx
call fcn.0055d11a
mov esp, ebp
pop ebp
ret