Function at 0x4b2c00
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 0x66632d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x40
mov eax, dword [0x70ab0c]
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 - 0x4c], edi
call fcn.004a9a80
test al, al
jne 0x4b3334
call fcn.004b2ba0
test al, al
je 0x4b2c75
cmp edi, 0xff
jb 0x4b2c7c
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__Its_not_available_skill_slot_number
call fcn.005167d0
add esp, 8
xor al, al
jmp 0x4b3336
lea eax, [edi + edi*4]
mov ecx, esi
push dword [esi + eax*8 + 0x23a94]
mov dword [ebp - 0x48], eax
call fcn.004b37d0
test al, al
jne 0x4b3334
mov ecx, dword [0x761440]
lea eax, [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x48]
push dword [esi + eax*8 + 0x23a94]
call fcn.004bd700
test eax, eax
jne 0x4b2cca
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__There_is_no_skill_data
call fcn.005167d0
add esp, 8
xor al, al
jmp 0x4b3336
mov ecx, dword [ebp - 0x38]
call fcn.004c1520
test eax, eax
je 0x4b2cff
push edi
mov ecx, esi
call fcn.004a8e20
test eax, eax
je 0x4b2cff
mov eax, dword [ebp - 0x48]
mov ecx, dword [0x761404]
push edi
push dword [esi + eax*8 + 0x23a94]
call fcn.00494550
xor al, al
jmp 0x4b3336
push edi
mov ecx, esi
call fcn.004b2680
test al, al
je 0x4b2c75
mov eax, dword [esi + 4]
lea ecx, [esi + 4]
mov dword [ebp - 0x3c], ecx
mov eax, dword [eax + 0x94]
call eax
mov esi, eax
mov dword [ebp - 0x40], esi
test esi, esi
jne 0x4b2d3e
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__There_is_no_main_player
call fcn.005167d0
add esp, 8
xor al, al
jmp 0x4b3336
mov ecx, esi
call fcn.0044efa0
test eax, eax
jne 0x4b2c75
mov ecx, dword [ebp - 0x38]
xor edi, edi
call fcn.004c1510
test eax, eax
jne 0x4b2d71
call fcn.004c14c0
test eax, eax
jne 0x4b2d71
call fcn.004c14f0
test eax, eax
je 0x4b2ffe
call fcn.004c1500
mov ecx, dword [ebp - 0x30]
test eax, eax
je 0x4b2d84
call fcn.004ab880
jmp 0x4b2d89
call fcn.004ab8b0
mov edi, eax
test edi, edi
jne 0x4b2e9f
mov edi, dword [ebp - 0x30]
mov ecx, edi
call fcn.004ab840
mov ecx, dword [ebp - 0x38]
call fcn.004c1500
mov ecx, edi
test eax, eax
je 0x4b2db2
call fcn.004ab880
jmp 0x4b2db7
call fcn.004ab8b0
mov edi, eax
mov dword [ebp - 0x34], edi
test edi, edi
jne 0x4b2e9f
mov ecx, dword [ebp - 0x38]
call fcn.004c14f0
test eax, eax
je 0x4b2e81
movss xmm2, dword [0x6c60b0]
lea eax, [ebp - 0x34]
push eax
mov ecx, esi
call fcn.0044e370
mov edi, dword [ebp - 0x30]
mov edx, dword [edi + 4]
lea ecx, [edi + 4]
mov dword [ebp - 0x3c], edx
test al, al
je 0x4b2e50
mov esi, dword [ebp - 0x34]
mov ecx, esi
push 1
call fcn.0044c170
push eax
mov eax, dword [ebp - 0x3c]
lea ecx, [edi + 4]
call dword [eax + 0x6c]
push dword [ebp - 0x4c]
mov eax, dword [ebp - 0x38]
mov ecx, edi
push eax
push esi
mov esi, dword [ebp - 0x40]
push esi
call fcn.004b2a70
test al, al
je 0x4b2c75
mov ecx, dword [ebp - 0x38]
call fcn.004c15a0
test eax, eax
je 0x4b2e86
push esi
mov ecx, esi
mov edi, esi
call fcn.0044df80
push str.__ALERT__
call fcn.00516730
add esp, 4
jmp 0x4b2ffe
mov eax, dword [edx + 4]
push str.NEED_TARGET
call eax
push eax
push str._is_
call dword [0x67b86c]
add esp, 0xc
push eax
push str.OnCannotUseSkill
push dword [edi + 8]
call fcn.005bca80
add esp, 0xc
xor al, al
jmp 0x4b3336
mov edi, dword [ebp - 0x30]
jmp 0x4b2e2b
mov edx, dword [edi + 4]
call fcn.004c1500
test eax, eax
lea ecx, [edi + 4]
mov eax, dword [edx + 4]
je 0x4b2e53
push str.ONLY_FOR_CORPSE
jmp 0x4b2e58
mov ecx, dword [ebp - 0x38]
call fcn.004c1590
test eax, eax
je 0x4b2f9a
cmp esi, edi
jne 0x4b2ef9
call fcn.004c15a0
test eax, eax
jne 0x4b2fd8
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 [0x67b86c]
add esp, 0xc
push eax
mov eax, dword [ebp - 0x30]
push str.OnCannotUseSkill
push dword [eax + 8]
call fcn.005bca80
add esp, 0xc
xor al, al
jmp 0x4b3336
push edi
mov ecx, esi
call fcn.0044bbd0
test al, al
jne 0x4b2f73
mov ecx, edi
call fcn.0044bf50
test eax, eax
je 0x4b2f73
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
push eax
call fcn.004b2a40
mov dword [ebp - 0x34], eax
test eax, eax
je 0x4b2fd8
push edi
mov ecx, esi
call fcn.0044c210
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 + 0x6c6240]
cvtpd2ps xmm0, xmm1
comiss xmm2, xmm0
jb 0x4b2fd8
push ecx
push dword [ebp - 0x4c]
mov ecx, edi
call fcn.0044c170
mov ecx, dword [ebp - 0x30]
push eax
call fcn.004ac450
xor al, al
jmp 0x4b3336
mov ecx, dword [ebp - 0x38]
call fcn.004c15a0
test eax, eax
je 0x4b2f90
push str.__ALERT_
mov edi, esi
call fcn.00516730
add esp, 4
jmp 0x4b2fd8
push str.ONLY_FOR_ALLIANCE
jmp 0x4b2ec5
mov ecx, edi
call fcn.00449140
test eax, eax
je 0x4b2faf
push str.CANNOT_ATTACK_ENEMY_IN_SAFE_AREA
jmp 0x4b2ec5
push edi
mov ecx, esi
call fcn.0044bbd0
test al, al
je 0x4b3356
push dword [ebp - 0x4c]
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
push eax
push edi
push esi
call fcn.004b2a70
test al, al
je 0x4b2c75
push edi
mov ecx, esi
call fcn.0044df80
cmp esi, edi
je 0x4b2ffe
mov ecx, esi
call fcn.0044df60
mov ecx, esi
test al, al
je 0x4b2ff8
call fcn.00454350
jmp 0x4b2ffe
push edi
call fcn.004543a0
mov ecx, dword [ebp - 0x38]
call fcn.004c14c0
test eax, eax
je 0x4b3069
test edi, edi
je 0x4b301c
cmp edi, esi
je 0x4b301c
push edi
mov ecx, esi
call fcn.004543a0
jmp 0x4b3069
lea eax, [ebp - 0x34]
push eax
call fcn.004a6a10
test al, al
je 0x4b303f
push dword [ebp - 0x34]
call fcn.004a6b60
test eax, eax
je 0x4b3069
push eax
mov ecx, esi
call fcn.004543a0
jmp 0x4b3069
lea eax, [ebp - 0x20]
push eax
call fcn.004a6a30
test al, al
je 0x4b3059
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
call fcn.00454360
jmp 0x4b3069
push dword [ebp - 0x4c]
push str.CPythonPlayer::__UseSkill__d____
call fcn.005167d0
add esp, 8
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x48]
movss xmm1, dword [eax + ecx*8 + 0x23aa4]
mov ecx, dword [ebp - 0x38]
call fcn.004c1ff0
push dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x44], eax
call fcn.004b2a40
cmp dword [ebp - 0x44], 0
mov dword [ebp - 0x34], eax
jbe 0x4b329e
test edi, edi
je 0x4b329e
mov edx, 1
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x38]
call fcn.004c14d0
test eax, eax
je 0x4b3186
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 + 0x6c6240]
cvtpd2ps xmm1, xmm0
call fcn.0044e500
mov edx, 1
test al, al
je 0x4b323d
mov esi, dword [ebp - 0x20]
cmp esi, dword [ebp - 0x1c]
je 0x4b323a
cmp edx, dword [ebp - 0x44]
jae 0x4b328f
mov eax, dword [esi]
mov dword [ebp - 0x34], eax
cmp edi, eax
je 0x4b3179
mov ecx, eax
call fcn.0044a280
test eax, eax
jne 0x4b3176
push dword [ebp - 0x34]
mov ecx, dword [ebp - 0x40]
call fcn.0044e090
mov ecx, dword [ebp - 0x34]
call fcn.0044c350
lea edx, [ebp - 0x2c]
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.0044c170
mov ecx, dword [0x761404]
push eax
call fcn.00498b10
mov edx, dword [ebp - 0x3c]
inc edx
mov dword [ebp - 0x3c], edx
jmp 0x4b3179
mov edx, dword [ebp - 0x3c]
add esi, 4
cmp esi, dword [ebp - 0x1c]
jne 0x4b3117
jmp 0x4b323a
call fcn.004c14e0
test eax, eax
je 0x4b323d
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 + 0x6c6240]
cvtpd2ps xmm1, xmm0
call fcn.0044e6f0
mov edx, 1
test al, al
je 0x4b323d
mov esi, dword [ebp - 0x20]
cmp esi, dword [ebp - 0x1c]
je 0x4b323a
nop word [eax + eax]
cmp edx, dword [ebp - 0x44]
jae 0x4b328f
mov eax, dword [esi]
mov dword [ebp - 0x34], eax
cmp edi, eax
je 0x4b3232
mov ecx, eax
call fcn.0044a280
test eax, eax
jne 0x4b322f
push dword [ebp - 0x34]
mov ecx, dword [ebp - 0x40]
call fcn.0044e090
mov ecx, dword [ebp - 0x34]
call fcn.0044c350
lea edx, [ebp - 0x2c]
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.0044c170
mov ecx, dword [0x761404]
push eax
call fcn.00498b10
mov edx, dword [ebp - 0x3c]
inc edx
mov dword [ebp - 0x3c], edx
jmp 0x4b3232
mov edx, dword [ebp - 0x3c]
add esi, 4
cmp esi, dword [ebp - 0x1c]
jne 0x4b31d0
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x44]
cmp edx, eax
jae 0x4b328f
sub eax, edx
mov dword [ebp - 0x44], eax
nop dword [eax]
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
push edi
call fcn.0044e280
movss xmm0, dword [ebp - 0x28]
lea eax, [ebp - 0x2c]
xorps xmm0, xmmword [0x6c6270]
mov ecx, esi
push eax
movss dword [ebp - 0x28], xmm0
call fcn.0044e010
mov ecx, dword [0x761404]
lea eax, [ebp - 0x2c]
push eax
push 0
call fcn.00498b10
sub dword [ebp - 0x44], 1
jne 0x4b3250
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
call fcn.00447830
mov edx, dword [ebp - 0x30]
mov ecx, edx
call fcn.004ac3b0
mov ecx, dword [ebp - 0x38]
call fcn.004b6a80
test eax, eax
jne 0x4b3318
mov eax, dword [ebp - 0x48]
push dword [edx + eax*8 + 0x23a9c]
call fcn.004c2120
mov esi, eax
mov eax, dword [ebp - 0x48]
movss xmm1, dword [edx + eax*8 + 0x23aa4]
call fcn.004c2190
mov ecx, dword [ebp - 0x38]
mov edx, eax
call fcn.004c1610
test eax, eax
mov eax, dword [ebp - 0x48]
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 + 0x23a94]
call fcn.0044e900
test al, al
jne 0x4b331a
push dword [ebp - 0x4c]
push str.CPythonPlayer::__UseSkill__d____pkInstMain__NEW_UseSkill___ERROR
call fcn.005167d0
add esp, 8
xor al, al
jmp 0x4b3336
mov esi, edx
test edi, edi
je 0x4b3327
mov ecx, edi
call fcn.0044c170
jmp 0x4b3329
xor eax, eax
push eax
push dword [ebp - 0x4c]
mov ecx, esi
call fcn.004b3360
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.005c791b
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
push str.CANNOT_ATTACK
jmp 0x4b2ec5