Function at 0x49b2c0
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 0x617abd
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x40
mov eax, dword [0x6a5418]
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.00493270
test al, al
jne 0x49ba33
call fcn.0049b260
test al, al
je 0x49b335
cmp edi, 0xff
jb 0x49b33c
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__Its_not_available_skill_slot_number
call fcn.004e36d0
add esp, 8
xor al, al
jmp 0x49ba35
lea eax, [edi + edi*4]
mov ecx, esi
push dword [esi + eax*8 + 0x1f8c0]
mov dword [ebp - 0x4c], eax
call fcn.0049bf00
test al, al
jne 0x49ba33
mov ecx, dword [0x6fb5a8]
lea eax, [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x4c]
push dword [esi + eax*8 + 0x1f8c0]
call fcn.004a4660
test eax, eax
jne 0x49b38a
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__There_is_no_skill_data
call fcn.004e36d0
add esp, 8
xor al, al
jmp 0x49ba35
mov ecx, dword [ebp - 0x38]
call fcn.004a8090
test eax, eax
je 0x49b3bf
push edi
mov ecx, esi
call fcn.004926f0
test eax, eax
je 0x49b3bf
mov eax, dword [ebp - 0x4c]
mov ecx, dword [0x6f7e34]
push edi
push dword [esi + eax*8 + 0x1f8c0]
call fcn.00483a40
xor al, al
jmp 0x49ba35
push edi
mov ecx, esi
call fcn.0049ad40
test al, al
je 0x49b335
mov eax, dword [esi + 4]
lea ecx, [esi + 4]
mov dword [ebp - 0x3c], ecx
mov eax, dword [eax + 0x98]
call eax
mov esi, eax
mov dword [ebp - 0x40], esi
test esi, esi
jne 0x49b3fe
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__There_is_no_main_player
call fcn.004e36d0
add esp, 8
xor al, al
jmp 0x49ba35
mov ecx, esi
call fcn.00445240
test eax, eax
jne 0x49b335
mov ecx, dword [ebp - 0x38]
xor edi, edi
call fcn.004a8080
test eax, eax
jne 0x49b431
call fcn.004a8030
test eax, eax
jne 0x49b431
call fcn.004a8060
test eax, eax
je 0x49b6c9
call fcn.004a8070
mov ecx, dword [ebp - 0x30]
test eax, eax
je 0x49b444
call fcn.00494b40
jmp 0x49b449
call fcn.00494b70
mov edi, eax
test edi, edi
jne 0x49b56a
mov edi, dword [ebp - 0x30]
mov ecx, edi
call fcn.00494b00
mov ecx, dword [ebp - 0x38]
call fcn.004a8070
mov ecx, edi
test eax, eax
je 0x49b472
call fcn.00494b40
jmp 0x49b477
call fcn.00494b70
mov edi, eax
mov dword [ebp - 0x34], edi
test edi, edi
jne 0x49b56a
mov ecx, dword [ebp - 0x38]
call fcn.004a8060
test eax, eax
je 0x49b541
movss xmm2, dword [0x66f42c]
lea eax, [ebp - 0x34]
push eax
mov ecx, esi
call fcn.00444590
mov edi, dword [ebp - 0x30]
mov edx, dword [edi + 4]
lea ecx, [edi + 4]
mov dword [ebp - 0x3c], edx
test al, al
je 0x49b510
mov esi, dword [ebp - 0x34]
mov ecx, esi
push 1
call fcn.00441890
push eax
mov eax, dword [ebp - 0x3c]
lea ecx, [edi + 4]
call dword [eax + 0x68]
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.0049b130
test al, al
je 0x49b335
mov ecx, dword [ebp - 0x38]
call fcn.004a8110
test eax, eax
je 0x49b546
push esi
mov ecx, esi
mov edi, esi
call fcn.004441a0
push str.__ALERT__
call fcn.004e3630
add esp, 4
jmp 0x49b6c9
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.0058d630
add esp, 0xc
xor al, al
jmp 0x49ba35
mov edi, dword [ebp - 0x30]
jmp 0x49b4eb
mov eax, dword [edi + 4]
mov esi, dword [eax + 4]
call fcn.004a8070
lea ecx, [edi + 4]
test eax, eax
je 0x49b561
push str.ONLY_FOR_CORPSE
call esi
jmp 0x49b51a
push str.NEED_TARGET
call esi
jmp 0x49b51a
mov ecx, dword [ebp - 0x38]
call fcn.004a8100
test eax, eax
je 0x49b665
cmp esi, edi
jne 0x49b5c4
call fcn.004a8110
test eax, eax
jne 0x49b6a3
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 + 8]
call fcn.0058d630
add esp, 0xc
xor al, al
jmp 0x49ba35
push edi
mov ecx, esi
call fcn.004412f0
test al, al
jne 0x49b63e
mov ecx, edi
call fcn.004416c0
test eax, eax
je 0x49b63e
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
push eax
call fcn.0049b100
mov dword [ebp - 0x34], eax
test eax, eax
je 0x49b6a3
push edi
mov ecx, esi
call fcn.00441940
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 + 0x66f5a0]
cvtpd2ps xmm0, xmm1
comiss xmm2, xmm0
jb 0x49b6a3
push ecx
push dword [ebp - 0x50]
mov ecx, edi
call fcn.00441890
mov ecx, dword [ebp - 0x30]
push eax
call fcn.00495760
xor al, al
jmp 0x49ba35
mov ecx, dword [ebp - 0x38]
call fcn.004a8110
test eax, eax
je 0x49b65b
push str.__ALERT_
mov edi, esi
call fcn.004e3630
add esp, 4
jmp 0x49b6a3
push str.ONLY_FOR_ALLIANCE
jmp 0x49b590
mov ecx, edi
call fcn.0043e7a0
test eax, eax
je 0x49b67a
push str.CANNOT_ATTACK_ENEMY_IN_SAFE_AREA
jmp 0x49b590
push edi
mov ecx, esi
call fcn.004412f0
test al, al
je 0x49ba55
push dword [ebp - 0x50]
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
push eax
push edi
push esi
call fcn.0049b130
test al, al
je 0x49b335
push edi
mov ecx, esi
call fcn.004441a0
cmp esi, edi
je 0x49b6c9
mov ecx, esi
call fcn.00444180
mov ecx, esi
test al, al
je 0x49b6c3
call fcn.00449ac0
jmp 0x49b6c9
push edi
call fcn.00449b10
mov ecx, dword [ebp - 0x38]
call fcn.004a8030
test eax, eax
je 0x49b734
test edi, edi
je 0x49b6e7
cmp edi, esi
je 0x49b6e7
push edi
mov ecx, esi
call fcn.00449b10
jmp 0x49b734
lea eax, [ebp - 0x34]
push eax
call fcn.00490980
test al, al
je 0x49b70a
push dword [ebp - 0x34]
call fcn.00490ad0
test eax, eax
je 0x49b734
push eax
mov ecx, esi
call fcn.00449b10
jmp 0x49b734
lea eax, [ebp - 0x20]
push eax
call fcn.004909a0
test al, al
je 0x49b724
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
call fcn.00449ad0
jmp 0x49b734
push dword [ebp - 0x50]
push str.CPythonPlayer::__UseSkill__d____
call fcn.004e36d0
add esp, 8
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x4c]
movss xmm1, dword [eax + ecx*8 + 0x1f8d0]
mov ecx, dword [ebp - 0x38]
call fcn.004a8b00
push dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x44], eax
call fcn.0049b100
cmp dword [ebp - 0x44], 0
mov dword [ebp - 0x34], eax
jbe 0x49b99d
test edi, edi
je 0x49b99d
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.004a8040
test eax, eax
je 0x49b84f
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 + 0x66f5a0]
cvtpd2ps xmm1, xmm0
call fcn.00444730
mov ecx, dword [ebp - 0x20]
mov edx, 1
mov dword [ebp - 0x3c], ecx
test al, al
je 0x49b90d
mov esi, ecx
cmp esi, dword [ebp - 0x1c]
je 0x49b90a
nop dword [eax]
cmp edx, dword [ebp - 0x44]
jae 0x49b95f
mov eax, dword [esi]
mov dword [ebp - 0x34], eax
cmp edi, eax
je 0x49b842
mov ecx, eax
call fcn.0043f960
test eax, eax
jne 0x49b83f
push dword [ebp - 0x34]
mov ecx, dword [ebp - 0x40]
call fcn.004442b0
mov ecx, dword [ebp - 0x34]
call fcn.00441a00
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.00441890
mov ecx, dword [0x6f7e34]
push eax
call fcn.00486910
mov edx, dword [ebp - 0x48]
inc edx
mov dword [ebp - 0x48], edx
jmp 0x49b842
mov edx, dword [ebp - 0x48]
add esi, 4
cmp esi, dword [ebp - 0x1c]
jne 0x49b7e0
jmp 0x49b90a
call fcn.004a8050
test eax, eax
je 0x49b90d
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 + 0x66f5a0]
cvtpd2ps xmm1, xmm0
call fcn.00444940
mov ecx, dword [ebp - 0x20]
mov edx, 1
mov dword [ebp - 0x3c], ecx
test al, al
je 0x49b90d
mov esi, ecx
cmp esi, dword [ebp - 0x1c]
je 0x49b90a
nop dword [eax + eax]
cmp edx, dword [ebp - 0x44]
jae 0x49b95f
mov eax, dword [esi]
mov dword [ebp - 0x34], eax
cmp edi, eax
je 0x49b902
mov ecx, eax
call fcn.0043f960
test eax, eax
jne 0x49b8ff
push dword [ebp - 0x34]
mov ecx, dword [ebp - 0x40]
call fcn.004442b0
mov ecx, dword [ebp - 0x34]
call fcn.00441a00
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.00441890
mov ecx, dword [0x6f7e34]
push eax
call fcn.00486910
mov edx, dword [ebp - 0x48]
inc edx
mov dword [ebp - 0x48], edx
jmp 0x49b902
mov edx, dword [ebp - 0x48]
add esi, 4
cmp esi, dword [ebp - 0x1c]
jne 0x49b8a0
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x44]
cmp edx, eax
jae 0x49b95f
sub eax, edx
mov dword [ebp - 0x44], eax
nop dword [eax]
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
push edi
call fcn.004444a0
movss xmm0, dword [ebp - 0x28]
lea eax, [ebp - 0x2c]
xorps xmm0, xmmword [0x66f5d0]
mov ecx, esi
push eax
movss dword [ebp - 0x28], xmm0
call fcn.00444230
mov ecx, dword [0x6f7e34]
lea eax, [ebp - 0x2c]
push eax
push 0
call fcn.00486910
sub dword [ebp - 0x44], 1
jne 0x49b920
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 4], 0xffffffff
test edx, edx
je 0x49b99d
mov ecx, dword [ebp - 0x18]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x49b993
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x49ba5f
push ecx
push edx
call fcn.0059851d
add esp, 8
mov edx, dword [ebp - 0x30]
mov ecx, edx
call fcn.004956c0
mov ecx, dword [ebp - 0x38]
call fcn.004598b0
test eax, eax
jne 0x49ba17
mov eax, dword [ebp - 0x4c]
push dword [edx + eax*8 + 0x1f8c8]
call fcn.004a8c30
mov esi, eax
mov eax, dword [ebp - 0x4c]
movss xmm1, dword [edx + eax*8 + 0x1f8d0]
call fcn.004a8ca0
mov ecx, dword [ebp - 0x38]
mov edx, eax
call fcn.004a8180
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 + 0x1f8c0]
call fcn.00444b80
test al, al
jne 0x49ba19
push dword [ebp - 0x50]
push str.CPythonPlayer::__UseSkill__d____pkInstMain__NEW_UseSkill___ERROR
call fcn.004e36d0
add esp, 8
xor al, al
jmp 0x49ba35
mov esi, edx
test edi, edi
je 0x49ba26
mov ecx, edi
call fcn.00441890
jmp 0x49ba28
xor eax, eax
push eax
push dword [ebp - 0x50]
mov ecx, esi
call fcn.0049ba70
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.005984ec
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
push str.CANNOT_ATTACK
jmp 0x49b590
call fcn.005d9542
int3