Function at 0x4a70e0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x62b35d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x40
mov eax, dword [0x6bd4d8]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x34], esi
mov edi, dword [ebx + 8]
mov ecx, 0x7527f3
mov dword [ebp - 0x50], edi
call fcn.00627a20
mov ecx, esi
call fcn.0049e1e0
test al, al
jne 0x4a783a
mov ecx, esi
call fcn.004a7080
test al, al
je 0x4a7163
cmp edi, 0xff
jb 0x4a716a
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__Its_not_available_skill_slot_number
call fcn.004f46a0
add esp, 8
xor al, al
jmp 0x4a783c
lea eax, [edi + edi*4]
mov ecx, esi
push dword [esi + eax*8 + 0x13d1c]
mov dword [ebp - 0x4c], eax
call fcn.004a7d60
test al, al
jne 0x4a783a
mov ecx, dword [0x74c5c8]
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x4c]
push dword [esi + eax*8 + 0x13d1c]
call fcn.004afb90
test eax, eax
jne 0x4a71b8
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__There_is_no_skill_data
call fcn.004f46a0
add esp, 8
xor al, al
jmp 0x4a783c
mov ecx, dword [ebp - 0x30]
call fcn.004b32b0
test eax, eax
je 0x4a71ed
push edi
mov ecx, esi
call fcn.0049d4a0
test eax, eax
je 0x4a71ed
mov eax, dword [ebp - 0x4c]
mov ecx, dword [0x710e84]
push edi
push dword [esi + eax*8 + 0x13d1c]
call fcn.0048d580
xor al, al
jmp 0x4a783c
push edi
mov ecx, esi
call fcn.004a6af0
test al, al
je 0x4a7163
mov eax, dword [esi + 4]
lea ecx, [esi + 4]
mov dword [ebp - 0x40], ecx
mov eax, dword [eax + 0x90]
call eax
mov esi, eax
mov dword [ebp - 0x48], esi
test esi, esi
jne 0x4a722c
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__There_is_no_main_player
call fcn.004f46a0
add esp, 8
xor al, al
jmp 0x4a783c
mov ecx, esi
call fcn.0044a650
test eax, eax
jne 0x4a7163
mov ecx, dword [ebp - 0x30]
xor edi, edi
mov dword [ebp - 0x44], edi
call fcn.004b3290
test eax, eax
jne 0x4a7268
mov ecx, dword [ebp - 0x30]
call fcn.004b31f0
test eax, eax
jne 0x4a7268
mov ecx, dword [ebp - 0x30]
call fcn.004b3250
test eax, eax
je 0x4a7511
mov ecx, dword [ebp - 0x30]
call fcn.004b3270
mov ecx, dword [ebp - 0x34]
test eax, eax
je 0x4a727e
call fcn.004a0020
jmp 0x4a7283
call fcn.004a0060
mov edi, eax
mov dword [ebp - 0x44], edi
test edi, edi
jne 0x4a73ae
mov edi, dword [ebp - 0x34]
mov ecx, edi
call fcn.0049ffe0
mov ecx, dword [ebp - 0x30]
call fcn.004b3270
mov ecx, edi
test eax, eax
je 0x4a72af
call fcn.004a0020
jmp 0x4a72b4
call fcn.004a0060
mov edi, eax
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x38], edi
test edi, edi
jne 0x4a73ae
mov ecx, dword [ebp - 0x30]
call fcn.004b3250
test eax, eax
je 0x4a7359
movss xmm2, dword [0x67f6f8]
lea eax, [ebp - 0x38]
push eax
mov ecx, esi
call fcn.004498f0
mov edi, dword [ebp - 0x34]
mov edx, dword [edi + 4]
lea ecx, [edi + 4]
mov dword [ebp - 0x3c], edx
test al, al
je 0x4a7328
mov esi, dword [ebp - 0x38]
mov ecx, esi
push 1
call fcn.00445b90
push eax
mov eax, dword [ebp - 0x3c]
lea ecx, [edi + 4]
call dword [eax + 0x68]
push dword [ebp - 0x50]
mov ecx, edi
push dword [ebp - 0x30]
push esi
mov esi, dword [ebp - 0x48]
push esi
call fcn.004a6f40
test al, al
jne 0x4a735c
jmp 0x4a783c
mov eax, dword [edx + 4]
push str.NEED_TARGET
call eax
push eax
push str._is_
call dword [sym.imp.python27.dll_Py_BuildValue]
add esp, 0xc
push eax
push str.OnCannotUseSkill
push dword [edi + 8]
call fcn.005999f0
add esp, 0xc
xor al, al
jmp 0x4a783c
mov edi, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
call fcn.004b3370
test eax, eax
je 0x4a7387
mov edi, esi
mov ecx, esi
push esi
mov dword [ebp - 0x44], edi
call fcn.00449460
push str.__ALERT__
call fcn.004f4600
add esp, 4
jmp 0x4a7511
mov ecx, dword [ebp - 0x30]
call fcn.004b3270
mov ecx, dword [edi + 4]
mov esi, dword [ecx + 4]
lea ecx, [edi + 4]
test eax, eax
je 0x4a73a5
push str.ONLY_FOR_CORPSE
call esi
jmp 0x4a7332
push str.NEED_TARGET
call esi
jmp 0x4a7332
mov ecx, dword [ebp - 0x30]
call fcn.004b3350
test eax, eax
je 0x4a74ae
cmp esi, edi
jne 0x4a740b
mov ecx, dword [ebp - 0x30]
call fcn.004b3370
test eax, eax
jne 0x4a74eb
push str.CANNOT_USE_SELF
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
push eax
push str._is_
call dword [sym.imp.python27.dll_Py_BuildValue]
add esp, 0xc
push eax
mov eax, dword [ebp - 0x34]
push str.OnCannotUseSkill
push dword [eax + 8]
call fcn.005999f0
add esp, 0xc
xor al, al
jmp 0x4a783c
push edi
mov ecx, esi
call fcn.004454d0
test al, al
jne 0x4a7484
mov ecx, edi
call fcn.00445890
test eax, eax
je 0x4a7484
push dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
call fcn.004a6f10
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x4a74eb
push edi
mov ecx, esi
call fcn.00445c80
mov ecx, dword [ebp - 0x3c]
movaps xmm2, xmm0
mov eax, ecx
shr eax, 0x1f
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
addsd xmm1, qword [eax*8 + 0x67f8c0]
cvtpd2ps xmm0, xmm1
comiss xmm2, xmm0
jb 0x4a74eb
push ecx
push dword [ebp - 0x50]
mov ecx, edi
call fcn.00445b90
mov ecx, dword [ebp - 0x34]
push eax
call fcn.004a0e10
xor al, al
jmp 0x4a783c
mov ecx, dword [ebp - 0x30]
call fcn.004b3370
test eax, eax
je 0x4a74a4
mov edi, esi
push str.__ALERT_
mov dword [ebp - 0x44], edi
call fcn.004f4600
add esp, 4
jmp 0x4a74eb
push str.ONLY_FOR_ALLIANCE
jmp 0x4a73d7
mov ecx, edi
call fcn.00442850
test eax, eax
je 0x4a74c3
push str.CANNOT_ATTACK_ENEMY_IN_SAFE_AREA
jmp 0x4a73d7
push edi
mov ecx, esi
call fcn.004454d0
test al, al
je 0x4a785c
push dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
push dword [ebp - 0x30]
push edi
push esi
call fcn.004a6f40
test al, al
je 0x4a7163
push edi
mov ecx, esi
call fcn.00449460
cmp esi, edi
je 0x4a7511
mov ecx, esi
call fcn.00449420
mov ecx, esi
test al, al
je 0x4a750b
call fcn.0044f930
jmp 0x4a7511
push edi
call fcn.0044f9a0
mov ecx, dword [ebp - 0x30]
call fcn.004b31f0
test eax, eax
je 0x4a757c
test edi, edi
je 0x4a752f
cmp edi, esi
je 0x4a752f
push edi
mov ecx, esi
call fcn.0044f9a0
jmp 0x4a757c
lea eax, [ebp - 0x3c]
push eax
call fcn.0049b560
test al, al
je 0x4a7552
push dword [ebp - 0x3c]
call fcn.0049b700
test eax, eax
je 0x4a757c
push eax
mov ecx, esi
call fcn.0044f9a0
jmp 0x4a757c
lea eax, [ebp - 0x20]
push eax
call fcn.0049b5a0
test al, al
je 0x4a756c
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
call fcn.0044f950
jmp 0x4a757c
push dword [ebp - 0x50]
push str.CPythonPlayer::__UseSkill__d____
call fcn.004f46a0
add esp, 8
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x4c]
movss xmm1, dword [eax + ecx*8 + 0x13d2c]
mov ecx, dword [ebp - 0x30]
call fcn.004b3e50
push dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x38], eax
call fcn.004a6f10
cmp dword [ebp - 0x38], 0
mov dword [ebp - 0x3c], eax
jbe 0x4a779e
test edi, edi
je 0x4a779e
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x40], 1
call fcn.00448da0
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x30]
call fcn.004b3210
test eax, eax
je 0x4a768c
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
mov eax, dword [ebp - 0x3c]
push edi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x67f8c0]
cvtpd2ps xmm1, xmm0
call fcn.00449a80
test al, al
je 0x4a773b
mov esi, dword [ebp - 0x20]
cmp esi, dword [ebp - 0x1c]
je 0x4a7738
mov eax, dword [ebp - 0x38]
nop word [eax + eax]
cmp dword [ebp - 0x40], eax
jae 0x4a778f
mov ecx, dword [esi]
mov dword [ebp - 0x3c], ecx
cmp edi, ecx
je 0x4a767f
call fcn.00443ae0
test eax, eax
jne 0x4a767c
mov edi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x48]
push edi
call fcn.00449580
mov ecx, edi
call fcn.00445d50
mov edi, dword [0x710e84]
lea edx, [ebp - 0x2c]
push edx
lea ecx, [eax + 0x380]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp - 0x3c]
push eax
call fcn.00445b90
push eax
mov ecx, edi
call fcn.004902e0
inc dword [ebp - 0x40]
mov edi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x38]
add esi, 4
cmp esi, dword [ebp - 0x1c]
jne 0x4a7620
jmp 0x4a7738
mov ecx, dword [ebp - 0x30]
call fcn.004b3230
test eax, eax
je 0x4a773b
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
mov eax, dword [ebp - 0x3c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x67f8c0]
cvtpd2ps xmm1, xmm0
call fcn.00449c80
test al, al
je 0x4a773b
mov esi, dword [ebp - 0x20]
cmp esi, dword [ebp - 0x1c]
je 0x4a7738
mov eax, dword [ebp - 0x38]
cmp dword [ebp - 0x40], eax
jae 0x4a778f
mov ecx, dword [esi]
mov dword [ebp - 0x3c], ecx
cmp edi, ecx
je 0x4a7730
call fcn.00443ae0
test eax, eax
jne 0x4a772d
mov edi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x48]
push edi
call fcn.00449580
mov ecx, edi
call fcn.00445d50
mov edi, dword [0x710e84]
lea edx, [ebp - 0x2c]
push edx
lea ecx, [eax + 0x380]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp - 0x3c]
push eax
call fcn.00445b90
push eax
mov ecx, edi
call fcn.004902e0
inc dword [ebp - 0x40]
mov edi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x38]
add esi, 4
cmp esi, dword [ebp - 0x1c]
jne 0x4a76d1
mov esi, dword [ebp - 0x48]
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x40]
cmp ecx, eax
jae 0x4a778f
sub eax, ecx
mov dword [ebp - 0x38], eax
nop word [eax + eax]
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
push edi
call fcn.004497f0
movss xmm0, dword [ebp - 0x28]
lea eax, [ebp - 0x2c]
xorps xmm0, xmmword [0x67f900]
mov ecx, esi
push eax
movss dword [ebp - 0x28], xmm0
call fcn.00449500
mov ecx, dword [0x710e84]
lea eax, [ebp - 0x2c]
push eax
push 0
call fcn.004902e0
sub dword [ebp - 0x38], 1
jne 0x4a7750
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
call fcn.0043f940
mov esi, dword [ebp - 0x34]
mov ecx, esi
call fcn.004a0d20
mov edi, dword [ebp - 0x30]
mov ecx, edi
call fcn.00460360
test eax, eax
jne 0x4a781f
mov eax, dword [ebp - 0x4c]
mov ecx, edi
push dword [esi + eax*8 + 0x13d24]
call fcn.004b3f90
mov ecx, dword [ebp - 0x30]
mov edi, eax
mov eax, dword [ebp - 0x4c]
movss xmm1, dword [esi + eax*8 + 0x13d2c]
call fcn.004b4040
mov ecx, dword [ebp - 0x30]
mov esi, eax
call fcn.004b3440
test eax, eax
mov eax, dword [ebp - 0x4c]
setne cl
movzx ecx, cl
push ecx
mov ecx, dword [ebp - 0x48]
push esi
mov esi, dword [ebp - 0x34]
push edi
push dword [esi + eax*8 + 0x13d1c]
call fcn.00449ed0
test al, al
jne 0x4a781f
push dword [ebp - 0x50]
push str.CPythonPlayer::__UseSkill__d____pkInstMain__NEW_UseSkill___ERROR
call fcn.004f46a0
add esp, 8
xor al, al
jmp 0x4a783c
mov ecx, dword [ebp - 0x44]
test ecx, ecx
je 0x4a782d
call fcn.00445b90
jmp 0x4a782f
xor eax, eax
push eax
push dword [ebp - 0x50]
mov ecx, esi
call fcn.004a7870
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.005a489b
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
push str.CANNOT_ATTACK
jmp 0x4a73d7