Function at 0x100044fa
Capabilities:
Encode data using xor

Disassembly:
push ebp
sub esp, 0x57c
lea ebp, [esp - 4]
mov eax, dword [0x10016c00]
xor eax, ebp
mov dword [ebp + 0x57c], eax
push 0x2c
mov eax, 0x1001141b
call fcn.100060a1
cmp dword [ebp + 0x58c], 1
mov esi, dword [ebp + 0x588]
mov dword [ebp - 0x2c], esi
jne 0x10004d20
push str.DllMain
call dword [sym.imp.VMProtectSDK32.dll_VMProtectBeginUltra]
push esi
call fcn.1000160e
xor ebx, ebx
push ebx
call fcn.100016a0
pop ecx
pop ecx
mov esi, 0x104
cmp eax, ebx
je 0x10004569
push esi
lea ecx, [ebp + 0x438]
push ecx
push eax
call fcn.100016d4
add esp, 0xc
lea eax, [ebp + 0x438]
push 0x5c
push eax
call fcn.10005bd0
lea ecx, [ebp + 0x438]
sub eax, ecx
push esi
mov edi, eax
lea eax, [ebp + 0x334]
push ebx
push eax
call fcn.10006160
push edi
lea eax, [ebp + 0x438]
push eax
lea eax, [ebp + 0x334]
push eax
call fcn.10005710
lea eax, [ebp + 0x334]
push eax
call fcn.100018f2
mov edi, dword [sym.imp.VMProtectSDK32.dll_VMProtectDecryptStringA]
add esp, 0x24
push str.GetCommandLineW
call edi
push eax
push str.kernel32.dll
call edi
push eax
call fcn.10001381
pop ecx
pop ecx
cmp eax, ebx
jne 0x100045ea
push str.ErrorCode530
call dword [sym.imp.VMProtectSDK32.dll_VMProtectDecryptStringW]
push eax
call fcn.1000224b
pop ecx
jmp 0x10004d20
push 0x1000226d
push eax
call fcn.10002864
mov esi, dword [sym.imp.VMProtectSDK32.dll_VMProtectDecryptStringW]
pop ecx
pop ecx
push ebx
push 0x80
push 3
push ebx
push 1
push 0x80000000
push str.._fix4k
mov dword [0x100190bc], eax
call esi
push eax
call fcn.100014a8
add esp, 0x1c
cmp eax, 0xffffffff
je 0x1000462f
push eax
call fcn.100014f1
jmp 0x10004663
push str.Shcore.dll
call edi
push eax
call fcn.1000122f
pop ecx
mov dword [ebp - 0x18], eax
cmp eax, ebx
je 0x10004664
push str.SetProcessDpiAwareness
call edi
push eax
push dword [ebp - 0x18]
call fcn.10001361
pop ecx
pop ecx
mov dword [0x10019148], eax
cmp eax, ebx
je 0x10004664
push 2
call eax
pop ecx
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp + 0x538]
push eax
push ebx
push 0x1a
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x38], 0x44
call fcn.10001a09
add esp, 0x10
test eax, eax
jne 0x10004694
push str.ErrorCode101
call esi
jmp 0x100045de
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp + 0x538]
push eax
push ebx
call fcn.100019cd
add esp, 0xc
test eax, eax
jne 0x100046b3
push str.ErrorCode102
jmp 0x1000468d
cmp dword [ebp - 0x34], ebx
jne 0x100046bf
push str.ErrorCode103
jmp 0x1000468d
call fcn.10001671
push ebx
push 0x80
push 3
push ebx
push 1
push 0x80000000
push str.._dsetup.dat
mov dword [ebp - 0x34], eax
call esi
push eax
call fcn.100014a8
add esp, 0x1c
mov dword [ebp - 0x10], eax
cmp eax, 0xffffffff
jne 0x100046f6
push str.ErrorCode300
jmp 0x1000468d
lea ecx, [ebp - 0x30]
push ecx
push eax
mov dword [ebp - 0x30], ebx
call fcn.1000178c
push eax
mov dword [ebp - 0x14], eax
call fcn.10005b39
mov esi, eax
push ebx
lea eax, [ebp - 0x30]
push eax
push dword [ebp - 0x14]
push esi
push dword [ebp - 0x10]
call fcn.10001525
push dword [ebp - 0x10]
call fcn.100014f1
mov eax, dword [ebp - 0x14]
add esp, 0x24
cmp eax, dword [ebp - 0x30]
je 0x1000473c
push str.ErrorCode301
jmp 0x100045d8
add eax, 0xffffffec
push eax
push esi
call fcn.10002b22
pop ecx
pop ecx
mov ecx, dword [ebp - 0x14]
mov ecx, dword [esi + ecx - 8]
mov dword [ebp - 0x30], ecx
cmp eax, ecx
je 0x10004760
push str.ErrorCode302
jmp 0x100045d8
lea eax, [esi + 0x20]
mov cl, byte [eax]
xor byte [esi + 0x1c], cl
mov cl, byte [esi + 0x21]
xor byte [esi + 0x1d], cl
mov cl, byte [esi + 0x22]
xor byte [esi + 0x1e], cl
mov cl, byte [esi + 0x23]
xor byte [esi + 0x1f], cl
movzx ecx, word [esi + 0x1c]
mov dword [ebp - 0x10], ecx
movzx ecx, word [esi + 0x1e]
push ecx
push 0x10
push eax
lea ecx, [ebp]
call fcn.10003b41
mov eax, dword [ebp - 0x10]
push 0x30
pop ecx
add eax, 8
mov dword [ebp - 0x18], ecx
cmp eax, ecx
jbe 0x100047bd
lea ecx, [ebp]
call fcn.100021dc
mov ecx, dword [ebp - 0x18]
xor byte [ecx + esi], al
mov eax, dword [ebp - 0x10]
inc ecx
add eax, 8
mov dword [ebp - 0x18], ecx
cmp ecx, eax
jb 0x100047a1
push dword [ebp - 0x10]
push esi
call fcn.10002b22
pop ecx
pop ecx
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + esi]
mov dword [ebp - 0x30], ecx
cmp eax, ecx
je 0x100047df
push str.ErrorCode303
jmp 0x100045d8
lea ecx, [ebp - 0x28]
call fcn.10001136
push dword [ebp - 0x14]
lea ecx, [ebp - 0x28]
push esi
mov dword [ebp - 4], ebx
call fcn.10001011
push 0x30
lea ecx, [ebp - 0x28]
call fcn.10001041
lea ecx, [ebp - 0x28]
call fcn.100011b0
cmp eax, 0xacdc0001
je 0x10004819
push str.ErrorCode304
jmp 0x10004d07
lea ecx, [ebp - 0x28]
call fcn.10001198
movsx esi, al
mov cl, al
and cl, 1
mov eax, esi
shr eax, 1
mov byte [0x10018c98], cl
and al, 1
lea ecx, [ebp - 0x28]
mov byte [0x10018c99], al
call fcn.100011b0
push str.fixup
lea ecx, [ebp - 0x28]
mov dword [0x10016300], eax
call fcn.1000120e
push str.You_must_use_an_updater_to_run_the_game_
lea ecx, [ebp - 0x28]
call fcn.100011e8
lea ecx, [ebp - 0x28]
call fcn.10001056
lea ecx, [ebp - 0x28]
mov word [0x10016304], ax
call fcn.10001056
mov word [0x10016308], ax
mov eax, esi
shr eax, 2
and al, 1
push str.127.0.0.1
lea ecx, [ebp - 0x28]
mov byte [0x10018c9a], al
call fcn.1000120e
lea ecx, [ebp - 0x28]
call fcn.10001056
push str.Lineage_2
lea ecx, [ebp - 0x28]
mov word [0x1001630c], ax
call fcn.100011e8
push str.0000000000000000
lea ecx, [ebp - 0x28]
call fcn.1000120e
mov eax, esi
shr eax, 3
and al, 1
lea ecx, [ebp - 0x28]
mov byte [0x10018c9b], al
call fcn.100011c8
push 0x10018ca8
lea ecx, [ebp - 0x28]
mov dword [0x10018ca0], eax
mov dword [0x10018ca4], edx
call fcn.1000120e
push 0x10018da8
lea ecx, [ebp - 0x28]
call fcn.1000120e
push 0x10018ea8
lea ecx, [ebp - 0x28]
call fcn.1000120e
push 0x10018fa8
lea ecx, [ebp - 0x28]
call fcn.1000120e
lea ecx, [ebp - 0x28]
call fcn.100011b0
lea ecx, [ebp - 0x28]
call fcn.100011b0
mov dword [0x100190a8], eax
cmp eax, ebx
jbe 0x10004972
push eax
call fcn.10005b39
pop ecx
push dword [0x100190a8]
lea ecx, [ebp - 0x28]
push eax
mov dword [0x10018c9c], eax
call fcn.10001167
xor ecx, ecx
cmp dword [0x100190a8], ebx
jbe 0x10004972
mov eax, dword [0x10018c9c]
lea esi, [ecx + eax]
xor edx, edx
mov eax, ecx
div dword [0x10016630]
mov al, byte [edx + 0x10016638]
xor byte [esi], al
inc ecx
cmp ecx, dword [0x100190a8]
jb 0x1000494f
push str.engine.dll
call edi
push eax
call fcn.1000122f
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x18], ecx
mov dword [0x10018890], eax
cmp dword [0x100190c8], ebx
je 0x1000499d
cmp dword [0x100190cc], ebx
jne 0x100049b1
mov dword [0x100190c8], ecx
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax + ecx + 0x1c]
add eax, ecx
mov dword [0x100190cc], eax
cmp dword [0x100190d0], ebx
je 0x100049c5
cmp dword [0x100190d4], ebx
jne 0x10004b34
push ebx
call fcn.100016a0
pop ecx
mov dword [0x100190d0], eax
cmp byte [0x10018c98], bl
je 0x10004b20
push ebx
push 0x80
push 3
push ebx
push 1
push 0x80000000
push str.fixup
call fcn.1000145f
add esp, 0x1c
cmp eax, 0xffffffff
je 0x10004a13
cmp byte [0x10018c99], bl
je 0x10004a13
push eax
call fcn.100014f1
pop ecx
jmp 0x10004b20
mov esi, 0x22c
push esi
lea eax, [ebp + 0x108]
push ebx
push eax
call fcn.10006160
mov dword [ebp + 0x108], esi
call fcn.10001642
push ebx
push 2
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x14], ebx
call fcn.1000184a
mov esi, eax
lea eax, [ebp + 0x108]
push eax
push esi
call fcn.10001882
add esp, 0x1c
jmp 0x10004a6d
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp + 0x110]
je 0x10004a73
lea eax, [ebp + 0x108]
push eax
push esi
call fcn.100018ba
pop ecx
pop ecx
cmp eax, ebx
jne 0x10004a53
jmp 0x10004a7c
mov eax, dword [ebp + 0x120]
mov dword [ebp - 0x14], eax
push esi
call fcn.100014f1
pop ecx
cmp dword [ebp - 0x14], ebx
jne 0x10004a92
push str.ErrorCode200
jmp 0x10004d07
push dword [ebp - 0x14]
push ebx
push 0x410
call fcn.10001710
mov esi, eax
add esp, 0xc
cmp esi, ebx
jne 0x10004ab3
push str.ErrorCode201
jmp 0x10004d07
push 0x100
lea eax, [ebp + 0x438]
push eax
push ebx
push esi
call fcn.1000198d
push esi
call fcn.100014f1
push ebx
push 0x80
push 3
push ebx
push 1
lea eax, [ebp + 0x438]
push 0x80000000
push eax
call fcn.1000145f
mov esi, eax
add esp, 0x30
cmp esi, 0xffffffff
jne 0x10004afc
push str.You_must_use_an_updater_to_run_the_game_
jmp 0x10004d0e
lea eax, [ebp - 0x10]
push eax
push esi
mov dword [ebp - 0x10], ebx
call fcn.1000178c
push esi
mov dword [ebp - 0x2c], eax
call fcn.100014f1
mov eax, dword [ebp - 0x2c]
add esp, 0xc
cmp eax, dword [0x10016300]
jne 0x10004af2
mov ecx, dword [0x100190d0]
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax + ecx + 0x1c]
add eax, ecx
mov dword [0x100190d4], eax
push str.user32.dll
call edi
push eax
call fcn.1000122f
mov esi, eax
mov dword [esp], str.MessageBoxW
call edi
push eax
push esi
call fcn.10001361
pop ecx
pop ecx
cmp eax, ebx
je 0x10004b6b
push 0x10002918
push eax
call fcn.10002864
pop ecx
pop ecx
mov dword [0x10017e54], eax
call fcn.100015df
push eax
call fcn.100112cd
mov dword [esp], str.ws2_32.dll
call edi
push eax
call fcn.1000122f
mov esi, eax
mov dword [esp], str.connect
call edi
push eax
push esi
call fcn.10001361
pop ecx
pop ecx
cmp eax, ebx
je 0x10004baf
push 0x10002d13
push eax
call fcn.10002864
pop ecx
pop ecx
mov dword [0x100190fc], eax
push str.send
call edi
push eax
push esi
call fcn.10001361
pop ecx
pop ecx
cmp eax, ebx
je 0x10004d02
push 0x10003bd1
push eax
call fcn.10002864
pop ecx
pop ecx
push str.recv
mov dword [0x10019100], eax
call edi
push eax
push esi
call fcn.10001361
pop ecx
pop ecx
cmp eax, ebx
je 0x10004cfb
push 0x10002e0a
push eax
call fcn.10002864
pop ecx
pop ecx
push str._OnNpcHtmlMessage_UGameEngine__UAEHPAUUser__PAGH_Z
mov dword [0x10019104], eax
call edi
push eax
push dword [ebp - 0x18]
call fcn.10001361
pop ecx
pop ecx
cmp eax, ebx
je 0x10004c5a
movzx ecx, word [0x10016308]
push 0x10003816
push eax
mov dword [0x100190ac], ecx
call fcn.10002864
mov dword [0x1001913c], eax
pop ecx
xor eax, eax
pop ecx
mov word [0x100190e0], ax
mov eax, 0xa8
push 8
mov word [0x100190e4], ax
pop eax
mov word [0x100190e8], ax
xor eax, eax
push 0x70
jmp 0x10004cb5
push str._OnNpcHtmlMessage_UGameEngine__UAEHPAUUser__PA_WHH_Z
call edi
push eax
push dword [ebp - 0x18]
call fcn.10001361
pop ecx
pop ecx
cmp eax, ebx
je 0x10004cf4
movzx ecx, word [0x10016304]
push 0x100038a5
push eax
mov dword [0x100190ac], ecx
call fcn.10002864
pop ecx
pop ecx
push 0xe
mov dword [0x10019140], eax
pop eax
mov word [0x100190e0], ax
push 0x2b
mov eax, 0xb1
mov word [0x100190e4], ax
pop eax
push 0x2e
mov word [0x100190e8], ax
pop eax
push 0x7d
mov word [0x100190ec], ax
pop eax
mov word [0x100190f0], ax
mov eax, 0xca
mov word [0x100190f4], ax
cmp byte [0x10018c9b], bl
je 0x10004ce7
push ebx
push ebx
push ebx
push 0x10003972
push ebx
push ebx
call fcn.10001804
add esp, 0x18
call fcn.100043bd
call dword [sym.imp.VMProtectSDK32.dll_VMProtectEnd]
jmp 0x10004d14
push str.ErrorCode531
jmp 0x10004d07
push str.ErrorCode525
jmp 0x10004d07
push str.ErrorCode524
call dword [sym.imp.VMProtectSDK32.dll_VMProtectDecryptStringW]
push eax
call fcn.1000224b
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.10001159
xor eax, eax
inc eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x57c]
xor ecx, ebp
call fcn.10005cae
add ebp, 0x580
leave
ret 0xc