Function at 0x4b9760
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 0x63badd
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x40
mov eax, dword [0x6cd498]
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 - 0x30], esi
mov edi, dword [ebx + 8]
mov dword [ebp - 0x50], edi
call fcn.004a18f0
test al, al
jne 0x4b9ed3
call fcn.004b9700
test al, al
je 0x4b97d5
cmp edi, 0xff
jb 0x4b97dc
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__Its_not_available_skill_slot_number
call fcn.004f0bd0
add esp, 8
xor al, al
jmp 0x4b9ed5
lea eax, [edi + edi*4]
mov ecx, esi
push dword [esi + eax*8 + 0x41d94]
mov dword [ebp - 0x4c], eax
call fcn.004ba3b0
test al, al
jne 0x4b9ed3
mov ecx, dword [0x759de0]
lea eax, [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x4c]
push dword [esi + eax*8 + 0x41d94]
call fcn.004c1c20
test eax, eax
jne 0x4b982a
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__There_is_no_skill_data
call fcn.004f0bd0
add esp, 8
xor al, al
jmp 0x4b9ed5
mov ecx, dword [ebp - 0x38]
call fcn.004c56e0
test eax, eax
je 0x4b985f
push edi
mov ecx, esi
call fcn.004a0bf0
test eax, eax
je 0x4b985f
mov eax, dword [ebp - 0x4c]
mov ecx, dword [0x7218d4]
push edi
push dword [esi + eax*8 + 0x41d94]
call fcn.0048b6d0
xor al, al
jmp 0x4b9ed5
push edi
mov ecx, esi
call fcn.004b91e0
test al, al
je 0x4b97d5
mov eax, dword [esi + 4]
lea ecx, [esi + 4]
mov dword [ebp - 0x3c], ecx
mov eax, dword [eax + 0x9c]
call eax
mov esi, eax
mov dword [ebp - 0x40], esi
test esi, esi
jne 0x4b989e
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__There_is_no_main_player
call fcn.004f0bd0
add esp, 8
xor al, al
jmp 0x4b9ed5
mov ecx, esi
call fcn.004490b0
test eax, eax
jne 0x4b97d5
mov ecx, dword [ebp - 0x38]
xor edi, edi
call fcn.004c56d0
test eax, eax
jne 0x4b98d1
call fcn.004c5680
test eax, eax
jne 0x4b98d1
call fcn.004c56b0
test eax, eax
je 0x4b9b69
call fcn.004c56c0
mov ecx, dword [ebp - 0x30]
test eax, eax
je 0x4b98e4
call fcn.004a3990
jmp 0x4b98e9
call fcn.004a39c0
mov edi, eax
test edi, edi
jne 0x4b9a0a
mov edi, dword [ebp - 0x30]
mov ecx, edi
call fcn.004a3950
mov ecx, dword [ebp - 0x38]
call fcn.004c56c0
mov ecx, edi
test eax, eax
je 0x4b9912
call fcn.004a3990
jmp 0x4b9917
call fcn.004a39c0
mov edi, eax
mov dword [ebp - 0x34], edi
test edi, edi
jne 0x4b9a0a
mov ecx, dword [ebp - 0x38]
call fcn.004c56b0
test eax, eax
je 0x4b99e1
movss xmm2, dword [0x696690]
lea eax, [ebp - 0x34]
push eax
mov ecx, esi
call fcn.00448420
mov edi, dword [ebp - 0x30]
mov edx, dword [edi + 4]
lea ecx, [edi + 4]
mov dword [ebp - 0x3c], edx
test al, al
je 0x4b99b0
mov esi, dword [ebp - 0x34]
mov ecx, esi
push 1
call fcn.00445ce0
push eax
mov eax, dword [ebp - 0x3c]
lea ecx, [edi + 4]
call dword [eax + 0x70]
push dword [ebp - 0x50]
mov eax, dword [ebp - 0x38]
mov ecx, edi
push eax
push esi
mov esi, dword [ebp - 0x40]
push esi
call fcn.004b95d0
test al, al
je 0x4b97d5
mov ecx, dword [ebp - 0x38]
call fcn.004c5760
test eax, eax
je 0x4b99e6
push esi
mov ecx, esi
mov edi, esi
call fcn.00448030
push str.__ALERT__
call fcn.004f0b30
add esp, 4
jmp 0x4b9b69
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 + 0x14]
call fcn.005919f0
add esp, 0xc
xor al, al
jmp 0x4b9ed5
mov edi, dword [ebp - 0x30]
jmp 0x4b998b
mov eax, dword [edi + 4]
mov esi, dword [eax + 4]
call fcn.004c56c0
lea ecx, [edi + 4]
test eax, eax
je 0x4b9a01
push str.ONLY_FOR_CORPSE
call esi
jmp 0x4b99ba
push str.NEED_TARGET
call esi
jmp 0x4b99ba
mov ecx, dword [ebp - 0x38]
call fcn.004c5750
test eax, eax
je 0x4b9b05
cmp esi, edi
jne 0x4b9a64
call fcn.004c5760
test eax, eax
jne 0x4b9b43
push str.CANNOT_USE_SELF
mov ecx, dword [ebp - 0x3c]
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 - 0x30]
push str.OnCannotUseSkill
push dword [eax + 0x14]
call fcn.005919f0
add esp, 0xc
xor al, al
jmp 0x4b9ed5
push edi
mov ecx, esi
call fcn.004453f0
test al, al
jne 0x4b9ade
mov ecx, edi
call fcn.00445b20
test eax, eax
je 0x4b9ade
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
push eax
call fcn.004b95a0
mov dword [ebp - 0x34], eax
test eax, eax
je 0x4b9b43
push edi
mov ecx, esi
call fcn.00445d80
mov ecx, dword [ebp - 0x34]
movaps xmm2, xmm0
mov eax, ecx
shr eax, 0x1f
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
addsd xmm1, qword [eax*8 + 0x696830]
cvtpd2ps xmm0, xmm1
comiss xmm2, xmm0
jb 0x4b9b43
push ecx
push dword [ebp - 0x50]
mov ecx, edi
call fcn.00445ce0
mov ecx, dword [ebp - 0x30]
push eax
call fcn.004a45a0
xor al, al
jmp 0x4b9ed5
mov ecx, dword [ebp - 0x38]
call fcn.004c5760
test eax, eax
je 0x4b9afb
push str.__ALERT_
mov edi, esi
call fcn.004f0b30
add esp, 4
jmp 0x4b9b43
push str.ONLY_FOR_ALLIANCE
jmp 0x4b9a30
mov ecx, edi
call fcn.00442890
test eax, eax
je 0x4b9b1a
push str.CANNOT_ATTACK_ENEMY_IN_SAFE_AREA
jmp 0x4b9a30
push edi
mov ecx, esi
call fcn.004453f0
test al, al
je 0x4b9ef5
push dword [ebp - 0x50]
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
push eax
push edi
push esi
call fcn.004b95d0
test al, al
je 0x4b97d5
push edi
mov ecx, esi
call fcn.00448030
cmp esi, edi
je 0x4b9b69
mov ecx, esi
call fcn.00448010
mov ecx, esi
test al, al
je 0x4b9b63
call fcn.0044de60
jmp 0x4b9b69
push edi
call fcn.0044deb0
mov ecx, dword [ebp - 0x38]
call fcn.004c5680
test eax, eax
je 0x4b9bd4
test edi, edi
je 0x4b9b87
cmp edi, esi
je 0x4b9b87
push edi
mov ecx, esi
call fcn.0044deb0
jmp 0x4b9bd4
lea eax, [ebp - 0x34]
push eax
call fcn.0049ef10
test al, al
je 0x4b9baa
push dword [ebp - 0x34]
call fcn.0049f060
test eax, eax
je 0x4b9bd4
push eax
mov ecx, esi
call fcn.0044deb0
jmp 0x4b9bd4
lea eax, [ebp - 0x20]
push eax
call fcn.0049ef30
test al, al
je 0x4b9bc4
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
call fcn.0044de70
jmp 0x4b9bd4
push dword [ebp - 0x50]
push str.CPythonPlayer::__UseSkill__d____
call fcn.004f0bd0
add esp, 8
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x4c]
movss xmm1, dword [eax + ecx*8 + 0x41da4]
mov ecx, dword [ebp - 0x38]
call fcn.004c6150
push dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x44], eax
call fcn.004b95a0
cmp dword [ebp - 0x44], 0
mov dword [ebp - 0x34], eax
jbe 0x4b9e3d
test edi, edi
je 0x4b9e3d
xor ecx, ecx
mov edx, 1
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 0x38]
call fcn.004c5690
test eax, eax
je 0x4b9cef
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
mov eax, dword [ebp - 0x34]
push edi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x696830]
cvtpd2ps xmm1, xmm0
call fcn.004485c0
mov ecx, dword [ebp - 0x20]
mov edx, 1
mov dword [ebp - 0x3c], ecx
test al, al
je 0x4b9dad
mov esi, ecx
cmp esi, dword [ebp - 0x1c]
je 0x4b9daa
nop dword [eax]
cmp edx, dword [ebp - 0x44]
jae 0x4b9dff
mov eax, dword [esi]
mov dword [ebp - 0x34], eax
cmp edi, eax
je 0x4b9ce2
mov ecx, eax
call fcn.00443ad0
test eax, eax
jne 0x4b9cdf
push dword [ebp - 0x34]
mov ecx, dword [ebp - 0x40]
call fcn.00448140
mov ecx, dword [ebp - 0x34]
call fcn.00445e40
lea edx, [ebp - 0x2c]
push edx
lea ecx, [eax + 0x2a8]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp - 0x34]
push eax
call fcn.00445ce0
mov ecx, dword [0x7218d4]
push eax
call fcn.0048e490
mov edx, dword [ebp - 0x48]
inc edx
mov dword [ebp - 0x48], edx
jmp 0x4b9ce2
mov edx, dword [ebp - 0x48]
add esi, 4
cmp esi, dword [ebp - 0x1c]
jne 0x4b9c80
jmp 0x4b9daa
call fcn.004c56a0
test eax, eax
je 0x4b9dad
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
mov eax, dword [ebp - 0x34]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x696830]
cvtpd2ps xmm1, xmm0
call fcn.004487d0
mov ecx, dword [ebp - 0x20]
mov edx, 1
mov dword [ebp - 0x3c], ecx
test al, al
je 0x4b9dad
mov esi, ecx
cmp esi, dword [ebp - 0x1c]
je 0x4b9daa
nop dword [eax + eax]
cmp edx, dword [ebp - 0x44]
jae 0x4b9dff
mov eax, dword [esi]
mov dword [ebp - 0x34], eax
cmp edi, eax
je 0x4b9da2
mov ecx, eax
call fcn.00443ad0
test eax, eax
jne 0x4b9d9f
push dword [ebp - 0x34]
mov ecx, dword [ebp - 0x40]
call fcn.00448140
mov ecx, dword [ebp - 0x34]
call fcn.00445e40
lea edx, [ebp - 0x2c]
push edx
lea ecx, [eax + 0x2a8]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp - 0x34]
push eax
call fcn.00445ce0
mov ecx, dword [0x7218d4]
push eax
call fcn.0048e490
mov edx, dword [ebp - 0x48]
inc edx
mov dword [ebp - 0x48], edx
jmp 0x4b9da2
mov edx, dword [ebp - 0x48]
add esi, 4
cmp esi, dword [ebp - 0x1c]
jne 0x4b9d40
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x44]
cmp edx, eax
jae 0x4b9dff
sub eax, edx
mov dword [ebp - 0x44], eax
nop dword [eax]
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
push edi
call fcn.00448330
movss xmm0, dword [ebp - 0x28]
lea eax, [ebp - 0x2c]
xorps xmm0, xmmword [0x696860]
mov ecx, esi
push eax
movss dword [ebp - 0x28], xmm0
call fcn.004480c0
mov ecx, dword [0x7218d4]
lea eax, [ebp - 0x2c]
push eax
push 0
call fcn.0048e490
sub dword [ebp - 0x44], 1
jne 0x4b9dc0
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 4], 0xffffffff
test edx, edx
je 0x4b9e3d
mov ecx, dword [ebp - 0x18]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x4b9e33
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4b9eff
push ecx
push edx
call fcn.0059c8ef
add esp, 8
mov edx, dword [ebp - 0x30]
mov ecx, edx
call fcn.004a4500
mov ecx, dword [ebp - 0x38]
call fcn.0045cf20
test eax, eax
jne 0x4b9eb7
mov eax, dword [ebp - 0x4c]
push dword [edx + eax*8 + 0x41d9c]
call fcn.004c6280
mov esi, eax
mov eax, dword [ebp - 0x4c]
movss xmm1, dword [edx + eax*8 + 0x41da4]
call fcn.004c62f0
mov ecx, dword [ebp - 0x38]
mov edx, eax
call fcn.004c57d0
test eax, eax
mov eax, dword [ebp - 0x4c]
setne cl
movzx ecx, cl
push ecx
mov ecx, dword [ebp - 0x40]
push edx
push esi
mov esi, dword [ebp - 0x30]
push dword [esi + eax*8 + 0x41d94]
call fcn.00448a10
test al, al
jne 0x4b9eb9
push dword [ebp - 0x50]
push str.CPythonPlayer::__UseSkill__d____pkInstMain__NEW_UseSkill___ERROR
call fcn.004f0bd0
add esp, 8
xor al, al
jmp 0x4b9ed5
mov esi, edx
test edi, edi
je 0x4b9ec6
mov ecx, edi
call fcn.00445ce0
jmp 0x4b9ec8
xor eax, eax
push eax
push dword [ebp - 0x50]
mov ecx, esi
call fcn.004b9f10
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.0059c8be
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
push str.CANNOT_ATTACK
jmp 0x4b9a30
call fcn.005e1eb2
int3