Function at 0x4acb00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x68702d
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
mov eax, dword [0x763480]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x58], edi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x40], esi
call fcn.00493f80
test al, al
jne 0x4ad274
mov ecx, edi
call fcn.004ac190
test al, al
je 0x4acb63
cmp esi, 0xff
jb 0x4acb6a
push esi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__Its_not_available_skill_slot_number
call fcn.0051f190
add esp, 8
xor al, al
jmp 0x4ad276
lea eax, [esi + esi*4]
mov ecx, edi
push dword [edi + eax*8 + 0x3f448]
mov dword [ebp - 0x48], eax
call fcn.004ac5d0
test al, al
jne 0x4ad274
mov ecx, dword [0x7751e8]
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x48]
push dword [edi + eax*8 + 0x3f448]
call fcn.004b4f20
test eax, eax
jne 0x4acbb8
push esi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__There_is_no_skill_data
call fcn.0051f190
add esp, 8
xor al, al
jmp 0x4ad276
mov ecx, dword [ebp - 0x2c]
call fcn.004b5410
test eax, eax
je 0x4acbed
push esi
mov ecx, edi
call fcn.00494130
test eax, eax
je 0x4acbed
mov eax, dword [ebp - 0x48]
mov ecx, dword [0x777720]
push esi
push dword [edi + eax*8 + 0x3f448]
call fcn.004ff2a0
xor al, al
jmp 0x4ad276
push esi
mov ecx, edi
call fcn.004ac390
test al, al
je 0x4acb63
mov eax, dword [edi + 4]
lea ecx, [edi + 4]
mov eax, dword [eax + 0x88]
call eax
mov esi, eax
mov dword [ebp - 0x3c], esi
test esi, esi
jne 0x4acc2b
push dword [ebp - 0x40]
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__There_is_no_main_player
call fcn.0051f190
add esp, 8
xor al, al
jmp 0x4ad276
mov ecx, esi
call fcn.00464400
test eax, eax
jne 0x4acb63
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
call fcn.004b53c0
test eax, eax
jne 0x4acc65
mov ecx, dword [ebp - 0x2c]
call fcn.004b4210
test eax, eax
jne 0x4acc65
mov ecx, dword [ebp - 0x2c]
call fcn.004b5300
test eax, eax
je 0x4aced8
mov ecx, dword [ebp - 0x2c]
call fcn.004b5390
mov ecx, edi
test eax, eax
je 0x4acc7a
call fcn.00497330
jmp 0x4acc7f
call fcn.00497300
mov dword [ebp - 0x30], eax
test eax, eax
jne 0x4acd69
mov ecx, edi
call fcn.004972a0
mov ecx, dword [ebp - 0x2c]
call fcn.004b5390
mov ecx, edi
test eax, eax
je 0x4acca6
call fcn.00497330
jmp 0x4accab
call fcn.00497300
mov dword [ebp - 0x30], eax
test eax, eax
jne 0x4acd69
mov ecx, dword [ebp - 0x2c]
call fcn.004b5300
test eax, eax
je 0x4acd0f
push ecx
lea eax, [ebp - 0x30]
mov dword [esp], 0x44fa0000
push eax
mov ecx, esi
call fcn.00464670
mov edx, dword [edi + 4]
lea ecx, [edi + 4]
mov dword [ebp - 0x34], edx
test al, al
je 0x4acd38
mov ecx, dword [ebp - 0x30]
push 1
call fcn.0045f060
push eax
mov eax, dword [ebp - 0x34]
lea ecx, [edi + 4]
call dword [eax + 0x60]
push dword [ebp - 0x40]
mov ecx, edi
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
push esi
call fcn.004ac850
test al, al
je 0x4acb63
mov ecx, dword [ebp - 0x2c]
call fcn.004b4220
test eax, eax
je 0x4acd42
push esi
mov ecx, esi
mov dword [ebp - 0x30], esi
call fcn.004652a0
push str.__ALERT__The_target_is_set_to_yourself_n
call fcn.0051f0f0
add esp, 4
jmp 0x4aced8
mov eax, dword [edx + 4]
push str.NEED_TARGET
jmp 0x4acd9e
mov ecx, dword [ebp - 0x2c]
call fcn.004b5390
mov ecx, dword [edi + 4]
mov esi, dword [ecx + 4]
lea ecx, [edi + 4]
test eax, eax
je 0x4acd60
push str.ONLY_FOR_CORPSE
call esi
jmp 0x4acda0
push str.NEED_TARGET
call esi
jmp 0x4acda0
mov ecx, dword [ebp - 0x2c]
call fcn.004b53d0
test eax, eax
je 0x4ace6c
mov eax, dword [ebp - 0x30]
cmp esi, eax
jne 0x4acdc4
mov ecx, dword [ebp - 0x2c]
call fcn.004b4220
test eax, eax
jne 0x4acead
push str.CANNOT_USE_SELF
mov eax, dword [edi + 4]
lea ecx, [edi + 4]
mov eax, dword [eax + 4]
call eax
push eax
push str._is_
call dword [sym.imp.python27.dll_Py_BuildValue]
push eax
push str.OnCannotUseSkill
push dword [edi + 8]
call fcn.005d50b0
add esp, 0x18
xor al, al
jmp 0x4ad276
push eax
mov ecx, esi
call fcn.0045f110
test al, al
jne 0x4ace44
mov ecx, dword [ebp - 0x30]
call fcn.0045f6c0
test eax, eax
je 0x4ace44
push dword [ebp - 0x2c]
mov ecx, edi
call fcn.004ac6a0
mov dword [ebp - 0x34], eax
test eax, eax
je 0x4acead
push dword [ebp - 0x30]
mov ecx, esi
call fcn.0045eba0
mov ecx, dword [ebp - 0x34]
mov eax, ecx
shr eax, 0x1f
fstp dword [ebp - 0x44]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x69d270]
cvtpd2ps xmm1, xmm0
movss xmm0, dword [ebp - 0x44]
comiss xmm0, xmm1
jb 0x4acead
push ecx
push dword [ebp - 0x40]
mov ecx, dword [ebp - 0x30]
call fcn.0045f060
push eax
mov ecx, edi
call fcn.004979a0
xor al, al
jmp 0x4ad276
mov ecx, dword [ebp - 0x2c]
call fcn.004b4220
test eax, eax
je 0x4ace62
push str.__ALERT__Used_on_you__and_the_enemy_target_is_changed_to_yourself_n
mov dword [ebp - 0x30], esi
call fcn.0051f0f0
add esp, 4
jmp 0x4acead
push str.ONLY_FOR_ALLIANCE
jmp 0x4acd95
mov ecx, dword [ebp - 0x30]
call fcn.0045f590
test eax, eax
je 0x4ace82
push str.CANNOT_ATTACK_ENEMY_IN_SAFE_AREA
jmp 0x4acd95
push dword [ebp - 0x30]
mov ecx, esi
call fcn.0045f110
test al, al
je 0x4ad293
push dword [ebp - 0x40]
mov ecx, edi
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
push esi
call fcn.004ac850
test al, al
je 0x4acb63
push dword [ebp - 0x30]
mov ecx, esi
call fcn.004652a0
cmp esi, dword [ebp - 0x30]
je 0x4aced8
mov ecx, esi
call fcn.004643e0
mov ecx, esi
test al, al
je 0x4aced0
call fcn.00469cd0
jmp 0x4aced8
push dword [ebp - 0x30]
call fcn.00469c70
mov ecx, dword [ebp - 0x2c]
call fcn.004b4210
test eax, eax
je 0x4acf4a
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x4acef9
cmp eax, esi
je 0x4acef9
push eax
mov ecx, esi
call fcn.00469c70
jmp 0x4acf4a
lea eax, [ebp - 0x34]
mov ecx, edi
push eax
call fcn.00495a40
mov ecx, edi
test al, al
je 0x4acf20
push dword [ebp - 0x34]
call fcn.004944a0
test eax, eax
je 0x4acf4a
push eax
mov ecx, esi
call fcn.00469c70
jmp 0x4acf4a
lea eax, [ebp - 0x28]
push eax
call fcn.00495a80
test al, al
je 0x4acf3a
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.00469c90
jmp 0x4acf4a
push dword [ebp - 0x40]
push str.CPythonPlayer::__UseSkill__d____The_screen_direction_settings_should_be_as_standard
call fcn.0051f190
add esp, 8
mov eax, dword [ebp - 0x48]
push ecx
mov ecx, dword [ebp - 0x2c]
movss xmm0, dword [edi + eax*8 + 0x3f458]
movss dword [esp], xmm0
call fcn.004b5190
push dword [ebp - 0x2c]
mov ecx, edi
mov dword [ebp - 0x44], eax
call fcn.004ac6a0
cmp dword [ebp - 0x44], 0
mov dword [ebp - 0x34], eax
jbe 0x4ad1d6
cmp dword [ebp - 0x30], 0
je 0x4ad1d6
mov dword [ebp - 0x38], 1
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 4], 0
call fcn.004b5340
test eax, eax
je 0x4ad073
lea eax, [ebp - 0x54]
push eax
mov eax, dword [ebp - 0x34]
push dword [ebp - 0x30]
push ecx
movd xmm0, eax
mov ecx, esi
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x69d270]
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
call fcn.00464ae0
test al, al
je 0x4ad12e
mov esi, dword [ebp - 0x54]
cmp esi, dword [ebp - 0x50]
je 0x4ad12b
mov eax, 1
cmp eax, dword [ebp - 0x44]
jae 0x4ad183
mov eax, dword [esi]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x30], eax
je 0x4ad063
mov ecx, eax
call fcn.0045f430
test eax, eax
jne 0x4ad063
push dword [ebp - 0x34]
mov ecx, dword [ebp - 0x3c]
call fcn.00463d20
mov ecx, dword [ebp - 0x34]
call fcn.0045ec10
lea edx, [ebp - 0x28]
push edx
lea ecx, [eax + 0x2ac]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp - 0x34]
push eax
call fcn.0045f060
mov ecx, dword [0x777720]
push eax
call fcn.004fcdc0
mov eax, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x38], eax
jmp 0x4ad066
mov eax, dword [ebp - 0x38]
add esi, 4
cmp esi, dword [ebp - 0x50]
jne 0x4ad003
jmp 0x4ad12b
mov ecx, dword [ebp - 0x2c]
call fcn.004b5330
test eax, eax
je 0x4ad12e
lea eax, [ebp - 0x54]
push eax
mov eax, dword [ebp - 0x34]
push ecx
mov ecx, esi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x69d270]
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
call fcn.004648b0
test al, al
je 0x4ad12e
mov esi, dword [ebp - 0x54]
cmp esi, dword [ebp - 0x50]
je 0x4ad12b
mov eax, 1
cmp eax, dword [ebp - 0x44]
jae 0x4ad183
mov eax, dword [esi]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x30], eax
je 0x4ad120
mov ecx, eax
call fcn.0045f430
test eax, eax
jne 0x4ad120
push dword [ebp - 0x34]
mov ecx, dword [ebp - 0x3c]
call fcn.00463d20
mov ecx, dword [ebp - 0x34]
call fcn.0045ec10
lea edx, [ebp - 0x28]
push edx
lea ecx, [eax + 0x2ac]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp - 0x34]
push eax
call fcn.0045f060
mov ecx, dword [0x777720]
push eax
call fcn.004fcdc0
mov eax, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x38], eax
jmp 0x4ad123
mov eax, dword [ebp - 0x38]
add esi, 4
cmp esi, dword [ebp - 0x50]
jne 0x4ad0c0
mov esi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x44]
jae 0x4ad183
mov edi, dword [ebp - 0x44]
sub edi, eax
nop dword [eax + eax]
lea eax, [ebp - 0x1c]
mov ecx, esi
push eax
push dword [ebp - 0x30]
call fcn.00464d80
movss xmm0, dword [ebp - 0x18]
lea eax, [ebp - 0x1c]
xorps xmm0, xmmword [0x69d280]
mov ecx, esi
push eax
movss dword [ebp - 0x18], xmm0
call fcn.00463db0
mov ecx, dword [0x777720]
lea eax, [ebp - 0x1c]
push eax
push 0
call fcn.004fcdc0
sub edi, 1
jne 0x4ad140
mov edi, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
mov dword [ebp - 4], 0xffffffff
test edx, edx
je 0x4ad1d6
mov ecx, dword [ebp - 0x4c]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x4ad1b7
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4ad29d
push ecx
push edx
call fcn.005df40c
add esp, 8
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov ecx, edi
call fcn.004972f0
mov ecx, dword [ebp - 0x2c]
call sym.metin2client.exe_public:_char_const____thiscall_libconfig::ParseException::getFile_void_const
test eax, eax
jne 0x4ad259
mov esi, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x2c]
push dword [edi + esi*8 + 0x3f450]
call fcn.004b5010
mov edi, eax
mov eax, dword [ebp - 0x58]
push ecx
mov ecx, dword [ebp - 0x2c]
movss xmm0, dword [eax + esi*8 + 0x3f458]
movss dword [esp], xmm0
call fcn.004b4b50
mov ecx, dword [ebp - 0x2c]
mov esi, eax
call fcn.004b5360
test eax, eax
mov eax, dword [ebp - 0x48]
setne cl
movzx ecx, cl
push ecx
mov ecx, dword [ebp - 0x3c]
push esi
push edi
mov edi, dword [ebp - 0x58]
push dword [edi + eax*8 + 0x3f448]
call fcn.00465130
test al, al
jne 0x4ad259
push dword [ebp - 0x40]
push str.CPythonPlayer::__UseSkill__d____pkInstMain__NEW_UseSkill___ERROR
call fcn.0051f190
add esp, 8
xor al, al
jmp 0x4ad276
mov ecx, dword [ebp - 0x30]
test ecx, ecx
je 0x4ad267
call fcn.0045f060
jmp 0x4ad269
xor eax, eax
push eax
push dword [ebp - 0x40]
mov ecx, edi
call fcn.004acac0
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005df41a
mov esp, ebp
pop ebp
ret 4
push str.CANNOT_ATTACK
jmp 0x4acd95
call fcn.00631407
int3