Function at 0x497140
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x605c7d
mov eax, dword fs:[0]
push eax
sub esp, 0x44
mov eax, dword [0x6963c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x2c], esi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x4c], edi
call fcn.0048fc30
test al, al
jne 0x4978b2
call fcn.004970e0
test al, al
je 0x4971a1
cmp edi, 0xff
jb 0x4971a8
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__Its_not_available_skill_slot_number
call fcn.004c3230
add esp, 8
xor al, al
jmp 0x4978b4
lea eax, [edi + edi*4]
mov ecx, esi
push dword [esi + eax*8 + 0x1ee8]
mov dword [ebp - 0x48], eax
call fcn.00497d80
test al, al
jne 0x4978b2
mov ecx, dword [0x6e79d8]
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x48]
push dword [esi + eax*8 + 0x1ee8]
call fcn.0049ee20
test eax, eax
jne 0x4971f6
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__There_is_no_skill_data
call fcn.004c3230
add esp, 8
xor al, al
jmp 0x4978b4
mov ecx, dword [ebp - 0x30]
call fcn.004a2660
test eax, eax
je 0x49722b
push edi
mov ecx, esi
call fcn.0048f0d0
test eax, eax
je 0x49722b
mov eax, dword [ebp - 0x48]
mov ecx, dword [0x6e6e30]
push edi
push dword [esi + eax*8 + 0x1ee8]
call fcn.004827f0
xor al, al
jmp 0x4978b4
push edi
mov ecx, esi
call fcn.00496be0
test al, al
je 0x4971a1
mov eax, dword [esi + 4]
lea ecx, [esi + 4]
mov dword [ebp - 0x3c], ecx
mov eax, dword [eax + 0x88]
call eax
mov esi, eax
mov dword [ebp - 0x44], esi
test esi, esi
jne 0x49726a
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__There_is_no_main_player
call fcn.004c3230
add esp, 8
xor al, al
jmp 0x4978b4
mov ecx, esi
call fcn.004464b0
test eax, eax
jne 0x4971a1
mov ecx, dword [ebp - 0x30]
xor edi, edi
mov dword [ebp - 0x40], edi
call fcn.004a2650
test eax, eax
jne 0x4972a0
call fcn.004a2600
test eax, eax
jne 0x4972a0
call fcn.004a2630
test eax, eax
je 0x497561
call fcn.004a2640
mov ecx, dword [ebp - 0x2c]
test eax, eax
je 0x4972b3
call fcn.00491330
jmp 0x4972b8
call fcn.00491360
mov edi, eax
mov dword [ebp - 0x40], edi
test edi, edi
jne 0x497400
mov edi, dword [ebp - 0x2c]
mov ecx, edi
call fcn.004912f0
mov ecx, dword [ebp - 0x30]
call fcn.004a2640
mov ecx, edi
test eax, eax
je 0x4972e4
call fcn.00491330
jmp 0x4972e9
call fcn.00491360
mov edi, eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x34], edi
test edi, edi
jne 0x497400
mov ecx, dword [ebp - 0x30]
call fcn.004a2630
test eax, eax
je 0x497393
movss xmm2, dword [0x656350]
lea eax, [ebp - 0x34]
push eax
mov ecx, esi
call fcn.00445850
mov edi, dword [ebp - 0x3c]
mov edx, dword [edi]
mov dword [ebp - 0x38], edx
test al, al
je 0x497386
mov esi, dword [ebp - 0x34]
mov ecx, esi
call fcn.00443c80
push 1
push eax
mov eax, dword [ebp - 0x38]
mov ecx, edi
call dword [eax + 0x60]
push dword [ebp - 0x4c]
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x2c]
mov ecx, edi
push eax
push esi
mov esi, dword [ebp - 0x44]
push esi
call fcn.00496fb0
test al, al
je 0x4971a1
mov ecx, dword [ebp - 0x30]
call fcn.004a26e0
test eax, eax
je 0x497398
mov edi, esi
mov ecx, esi
push esi
mov dword [ebp - 0x40], edi
call fcn.00445460
push str.__ALERT__
call fcn.004c3190
add esp, 4
jmp 0x497561
mov eax, dword [edx + 4]
push str.NEED_TARGET
jmp 0x49742e
mov edi, dword [ebp - 0x2c]
jmp 0x49735e
mov esi, dword [edi + 4]
call fcn.004a2640
test eax, eax
lea ecx, [edi + 4]
mov eax, dword [esi + 4]
je 0x4973d5
push str.ONLY_FOR_CORPSE
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.0055f5a0
add esp, 0x18
xor al, al
jmp 0x4978b4
push str.NEED_TARGET
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.0055f5a0
add esp, 0x18
xor al, al
jmp 0x4978b4
mov ecx, dword [ebp - 0x30]
call fcn.004a26d0
test eax, eax
je 0x4974fd
cmp esi, edi
jne 0x497459
call fcn.004a26e0
test eax, eax
jne 0x49753b
push str.CANNOT_USE_SELF
mov edi, dword [ebp - 0x3c]
mov eax, dword [edi]
mov eax, dword [eax + 4]
mov ecx, edi
call eax
push eax
push str._is_
call dword [sym.imp.python27.dll_Py_BuildValue]
push eax
mov eax, dword [ebp - 0x2c]
push str.OnCannotUseSkill
push dword [eax + 8]
call fcn.0055f5a0
add esp, 0x18
xor al, al
jmp 0x4978b4
push edi
mov ecx, esi
call fcn.00443700
test al, al
jne 0x4974d3
mov ecx, edi
call fcn.00443a80
test eax, eax
je 0x4974d3
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
push eax
call fcn.00496f90
mov dword [ebp - 0x38], eax
test eax, eax
je 0x49753b
push edi
mov ecx, esi
call fcn.00443d10
mov ecx, dword [ebp - 0x38]
movaps xmm2, xmm0
mov eax, ecx
shr eax, 0x1f
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
addsd xmm1, qword [eax*8 + 0x6563f0]
cvtpd2ps xmm0, xmm1
comiss xmm2, xmm0
jb 0x49753b
push ecx
push dword [ebp - 0x4c]
mov ecx, edi
call fcn.00443c80
mov ecx, dword [ebp - 0x2c]
push eax
call fcn.00491f10
xor al, al
jmp 0x4978b4
mov ecx, dword [ebp - 0x30]
call fcn.004a26e0
test eax, eax
je 0x4974f3
mov edi, esi
push str.__ALERT_
mov dword [ebp - 0x40], edi
call fcn.004c3190
add esp, 4
jmp 0x49753b
push str.ONLY_FOR_ALLIANCE
jmp 0x497426
mov ecx, edi
call fcn.004412a0
test eax, eax
je 0x497512
push str.CANNOT_ATTACK_ENEMY_IN_SAFE_AREA
jmp 0x497426
push edi
mov ecx, esi
call fcn.00443700
test al, al
je 0x4978d1
push dword [ebp - 0x4c]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
push eax
push edi
push esi
call fcn.00496fb0
test al, al
je 0x4971a1
push edi
mov ecx, esi
call fcn.00445460
cmp esi, edi
je 0x497561
mov ecx, esi
call fcn.00445440
mov ecx, esi
test al, al
je 0x49755b
call fcn.0044aa50
jmp 0x497561
push edi
call fcn.0044aaa0
mov ecx, dword [ebp - 0x30]
call fcn.004a2600
test eax, eax
je 0x4975cc
test edi, edi
je 0x49757f
cmp edi, esi
je 0x49757f
push edi
mov ecx, esi
call fcn.0044aaa0
jmp 0x4975cc
lea eax, [ebp - 0x38]
push eax
call fcn.0048d760
test al, al
je 0x4975a2
push dword [ebp - 0x38]
call fcn.0048d8b0
test eax, eax
je 0x4975cc
push eax
mov ecx, esi
call fcn.0044aaa0
jmp 0x4975cc
lea eax, [ebp - 0x1c]
push eax
call fcn.0048d780
test al, al
je 0x4975bc
lea eax, [ebp - 0x1c]
mov ecx, esi
push eax
call fcn.0044aa60
jmp 0x4975cc
push dword [ebp - 0x4c]
push str.CPythonPlayer::__UseSkill__d____
call fcn.004c3230
add esp, 8
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x48]
movss xmm1, dword [eax + ecx*8 + 0x1ef8]
mov ecx, dword [ebp - 0x30]
call fcn.004a3110
push dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
call fcn.00496f90
cmp dword [ebp - 0x34], 0
mov dword [ebp - 0x38], eax
jbe 0x49781f
test edi, edi
je 0x49781f
mov edx, 1
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x30]
call fcn.004a2610
test eax, eax
je 0x4976fc
lea eax, [ebp - 0x1c]
mov ecx, esi
push eax
mov eax, dword [ebp - 0x38]
push edi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x6563f0]
cvtpd2ps xmm1, xmm0
call fcn.004459e0
test al, al
je 0x4977c0
mov esi, dword [ebp - 0x1c]
mov edx, 1
cmp esi, dword [ebp - 0x18]
je 0x4976f4
mov eax, dword [ebp - 0x34]
nop dword [eax]
cmp edx, eax
jae 0x497810
mov ecx, dword [esi]
mov dword [ebp - 0x38], ecx
cmp edi, ecx
je 0x4976ec
call fcn.00442000
test eax, eax
jne 0x4976e6
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x44]
push edi
call fcn.00445570
mov eax, dword [0x6e6e30]
mov ecx, edi
mov dword [ebp - 0x50], eax
call fcn.00443dd0
lea edx, [ebp - 0x28]
push edx
lea ecx, [eax + 0x1dc]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp - 0x38]
mov edi, eax
call fcn.00443c80
mov ecx, dword [ebp - 0x50]
push edi
push eax
call fcn.00485080
mov edx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x40]
inc edx
mov dword [ebp - 0x3c], edx
jmp 0x4976e9
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
add esi, 4
cmp esi, dword [ebp - 0x18]
jne 0x497680
mov esi, dword [ebp - 0x44]
jmp 0x4977c5
call fcn.004a2620
test eax, eax
je 0x4977c5
lea eax, [ebp - 0x1c]
mov ecx, esi
push eax
mov eax, dword [ebp - 0x38]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x6563f0]
cvtpd2ps xmm1, xmm0
call fcn.00445bf0
test al, al
je 0x4977c0
mov esi, dword [ebp - 0x1c]
mov edx, 1
cmp esi, dword [ebp - 0x18]
je 0x4976f4
mov eax, dword [ebp - 0x34]
cmp edx, eax
jae 0x497810
mov ecx, dword [esi]
mov dword [ebp - 0x38], ecx
cmp edi, ecx
je 0x4977b3
call fcn.00442000
test eax, eax
jne 0x4977ad
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x44]
push edi
call fcn.00445570
mov eax, dword [0x6e6e30]
mov ecx, edi
mov dword [ebp - 0x50], eax
call fcn.00443dd0
lea edx, [ebp - 0x28]
push edx
lea ecx, [eax + 0x1dc]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp - 0x38]
mov edi, eax
call fcn.00443c80
mov ecx, dword [ebp - 0x50]
push edi
push eax
call fcn.00485080
mov edx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x40]
inc edx
mov dword [ebp - 0x3c], edx
jmp 0x4977b0
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
add esi, 4
cmp esi, dword [ebp - 0x18]
jne 0x497747
mov esi, dword [ebp - 0x44]
jmp 0x4977c5
mov edx, 1
mov eax, dword [ebp - 0x34]
cmp edx, eax
jae 0x497810
sub eax, edx
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
push edi
call fcn.00445760
movss xmm0, dword [ebp - 0x24]
lea eax, [ebp - 0x28]
xorps xmm0, xmmword [0x656410]
mov ecx, esi
push eax
movss dword [ebp - 0x24], xmm0
call fcn.004454f0
mov ecx, dword [0x6e6e30]
lea eax, [ebp - 0x28]
push eax
push 0
call fcn.00485080
sub dword [ebp - 0x34], 1
jne 0x4977d1
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
call fcn.0043f570
mov edx, dword [ebp - 0x2c]
mov ecx, edx
call fcn.00491e70
mov ecx, dword [ebp - 0x30]
call fcn.00459a60
test eax, eax
jne 0x497896
mov eax, dword [ebp - 0x48]
push dword [edx + eax*8 + 0x1ef0]
call fcn.004a3240
mov esi, eax
mov eax, dword [ebp - 0x48]
movss xmm1, dword [edx + eax*8 + 0x1ef8]
call fcn.004a32b0
mov ecx, dword [ebp - 0x30]
mov edx, eax
call fcn.004a2750
test eax, eax
mov eax, dword [ebp - 0x48]
setne cl
push ecx
mov ecx, dword [ebp - 0x44]
push edx
push esi
mov esi, dword [ebp - 0x2c]
push dword [esi + eax*8 + 0x1ee8]
call fcn.00445e10
test al, al
jne 0x497898
push dword [ebp - 0x4c]
push str.CPythonPlayer::__UseSkill__d____pkInstMain__NEW_UseSkill___ERROR
call fcn.004c3230
add esp, 8
xor al, al
jmp 0x4978b4
mov esi, edx
test edi, edi
je 0x4978a5
mov ecx, edi
call fcn.00443c80
jmp 0x4978a7
xor eax, eax
push eax
push dword [ebp - 0x4c]
mov ecx, esi
call fcn.004978e0
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.00569c25
mov esp, ebp
pop ebp
ret 4
push str.CANNOT_ATTACK
jmp 0x497426