Function at 0x49a030
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x62364d
mov eax, dword fs:[0]
push eax
sub esp, 0x44
mov eax, dword [0x6b93c0]
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.004926e0
test al, al
jne 0x49a7a2
call fcn.00499fd0
test al, al
je 0x49a091
cmp edi, 0xff
jb 0x49a098
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__Its_not_available_skill_slot_number
call fcn.004c6d90
add esp, 8
xor al, al
jmp 0x49a7a4
lea eax, [edi + edi*4]
mov ecx, esi
push dword [esi + eax*8 + 0xdb94]
mov dword [ebp - 0x48], eax
call fcn.0049aca0
test al, al
jne 0x49a7a2
mov ecx, dword [0x70b360]
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x48]
push dword [esi + eax*8 + 0xdb94]
call fcn.004a1bd0
test eax, eax
jne 0x49a0e6
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__There_is_no_skill_data
call fcn.004c6d90
add esp, 8
xor al, al
jmp 0x49a7a4
mov ecx, dword [ebp - 0x30]
call fcn.004a5370
test eax, eax
je 0x49a11b
push edi
mov ecx, esi
call fcn.00491ae0
test eax, eax
je 0x49a11b
mov eax, dword [ebp - 0x48]
mov ecx, dword [0x70a7a0]
push edi
push dword [esi + eax*8 + 0xdb94]
call fcn.00484740
xor al, al
jmp 0x49a7a4
push edi
mov ecx, esi
call fcn.00499ac0
test al, al
je 0x49a091
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 0x49a15a
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__There_is_no_main_player
call fcn.004c6d90
add esp, 8
xor al, al
jmp 0x49a7a4
mov ecx, esi
call fcn.004466f0
test eax, eax
jne 0x49a091
mov ecx, dword [ebp - 0x30]
xor edi, edi
mov dword [ebp - 0x40], edi
call fcn.004a5360
test eax, eax
jne 0x49a190
call fcn.004a5310
test eax, eax
jne 0x49a190
call fcn.004a5340
test eax, eax
je 0x49a451
call fcn.004a5350
mov ecx, dword [ebp - 0x2c]
test eax, eax
je 0x49a1a3
call fcn.00493eb0
jmp 0x49a1a8
call fcn.00493ee0
mov edi, eax
mov dword [ebp - 0x40], edi
test edi, edi
jne 0x49a2f0
mov edi, dword [ebp - 0x2c]
mov ecx, edi
call fcn.00493e70
mov ecx, dword [ebp - 0x30]
call fcn.004a5350
mov ecx, edi
test eax, eax
je 0x49a1d4
call fcn.00493eb0
jmp 0x49a1d9
call fcn.00493ee0
mov edi, eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x34], edi
test edi, edi
jne 0x49a2f0
mov ecx, dword [ebp - 0x30]
call fcn.004a5340
test eax, eax
je 0x49a283
movss xmm2, dword [0x676734]
lea eax, [ebp - 0x34]
push eax
mov ecx, esi
call fcn.00445a00
mov edi, dword [ebp - 0x3c]
mov edx, dword [edi]
mov dword [ebp - 0x38], edx
test al, al
je 0x49a276
mov esi, dword [ebp - 0x34]
mov ecx, esi
call fcn.00443a50
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.00499ea0
test al, al
je 0x49a091
mov ecx, dword [ebp - 0x30]
call fcn.004a53f0
test eax, eax
je 0x49a288
mov edi, esi
mov ecx, esi
push esi
mov dword [ebp - 0x40], edi
call fcn.00445610
push str.__ALERT__
call fcn.004c6cf0
add esp, 4
jmp 0x49a451
mov eax, dword [edx + 4]
push str.NEED_TARGET
jmp 0x49a31e
mov edi, dword [ebp - 0x2c]
jmp 0x49a24e
mov esi, dword [edi + 4]
call fcn.004a5350
test eax, eax
lea ecx, [edi + 4]
mov eax, dword [esi + 4]
je 0x49a2c5
push str.ONLY_FOR_CORPSE
call eax
push eax
push str._is_
call dword [sym.imp.libPulm.pyc_Py_BuildValue]
push eax
push str.OnCannotUseSkill
push dword [edi + 8]
call fcn.00562e60
add esp, 0x18
xor al, al
jmp 0x49a7a4
push str.NEED_TARGET
call eax
push eax
push str._is_
call dword [sym.imp.libPulm.pyc_Py_BuildValue]
push eax
push str.OnCannotUseSkill
push dword [edi + 8]
call fcn.00562e60
add esp, 0x18
xor al, al
jmp 0x49a7a4
mov ecx, dword [ebp - 0x30]
call fcn.004a53e0
test eax, eax
je 0x49a3ed
cmp esi, edi
jne 0x49a349
call fcn.004a53f0
test eax, eax
jne 0x49a42b
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.libPulm.pyc_Py_BuildValue]
push eax
mov eax, dword [ebp - 0x2c]
push str.OnCannotUseSkill
push dword [eax + 8]
call fcn.00562e60
add esp, 0x18
xor al, al
jmp 0x49a7a4
push edi
mov ecx, esi
call fcn.004434d0
test al, al
jne 0x49a3c3
mov ecx, edi
call fcn.00443850
test eax, eax
je 0x49a3c3
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
push eax
call fcn.00499e80
mov dword [ebp - 0x38], eax
test eax, eax
je 0x49a42b
push edi
mov ecx, esi
call fcn.00443ae0
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 + 0x676820]
cvtpd2ps xmm0, xmm1
comiss xmm2, xmm0
jb 0x49a42b
push ecx
push dword [ebp - 0x4c]
mov ecx, edi
call fcn.00443a50
mov ecx, dword [ebp - 0x2c]
push eax
call fcn.00494a90
xor al, al
jmp 0x49a7a4
mov ecx, dword [ebp - 0x30]
call fcn.004a53f0
test eax, eax
je 0x49a3e3
mov edi, esi
push str.__ALERT_
mov dword [ebp - 0x40], edi
call fcn.004c6cf0
add esp, 4
jmp 0x49a42b
push str.ONLY_FOR_ALLIANCE
jmp 0x49a316
mov ecx, edi
call fcn.00440fe0
test eax, eax
je 0x49a402
push str.CANNOT_ATTACK_ENEMY_IN_SAFE_AREA
jmp 0x49a316
push edi
mov ecx, esi
call fcn.004434d0
test al, al
je 0x49a7c1
push dword [ebp - 0x4c]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
push eax
push edi
push esi
call fcn.00499ea0
test al, al
je 0x49a091
push edi
mov ecx, esi
call fcn.00445610
cmp esi, edi
je 0x49a451
mov ecx, esi
call fcn.004455f0
mov ecx, esi
test al, al
je 0x49a44b
call fcn.0044adb0
jmp 0x49a451
push edi
call fcn.0044ae00
mov ecx, dword [ebp - 0x30]
call fcn.004a5310
test eax, eax
je 0x49a4bc
test edi, edi
je 0x49a46f
cmp edi, esi
je 0x49a46f
push edi
mov ecx, esi
call fcn.0044ae00
jmp 0x49a4bc
lea eax, [ebp - 0x38]
push eax
call fcn.00490060
test al, al
je 0x49a492
push dword [ebp - 0x38]
call fcn.004901b0
test eax, eax
je 0x49a4bc
push eax
mov ecx, esi
call fcn.0044ae00
jmp 0x49a4bc
lea eax, [ebp - 0x1c]
push eax
call fcn.00490080
test al, al
je 0x49a4ac
lea eax, [ebp - 0x1c]
mov ecx, esi
push eax
call fcn.0044adc0
jmp 0x49a4bc
push dword [ebp - 0x4c]
push str.CPythonPlayer::__UseSkill__d____
call fcn.004c6d90
add esp, 8
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x48]
movss xmm1, dword [eax + ecx*8 + 0xdba4]
mov ecx, dword [ebp - 0x30]
call fcn.004a5e20
push dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
call fcn.00499e80
cmp dword [ebp - 0x34], 0
mov dword [ebp - 0x38], eax
jbe 0x49a70f
test edi, edi
je 0x49a70f
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.004a5320
test eax, eax
je 0x49a5ec
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 + 0x676820]
cvtpd2ps xmm1, xmm0
call fcn.00445bc0
test al, al
je 0x49a6b0
mov esi, dword [ebp - 0x1c]
mov edx, 1
cmp esi, dword [ebp - 0x18]
je 0x49a5e4
mov eax, dword [ebp - 0x34]
nop dword [eax]
cmp edx, eax
jae 0x49a700
mov ecx, dword [esi]
mov dword [ebp - 0x38], ecx
cmp edi, ecx
je 0x49a5dc
call fcn.00441dd0
test eax, eax
jne 0x49a5d6
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x44]
push edi
call fcn.00445720
mov eax, dword [0x70a7a0]
mov ecx, edi
mov dword [ebp - 0x50], eax
call fcn.00443ba0
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.00443a50
mov ecx, dword [ebp - 0x50]
push edi
push eax
call fcn.00487160
mov edx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x40]
inc edx
mov dword [ebp - 0x3c], edx
jmp 0x49a5d9
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
add esi, 4
cmp esi, dword [ebp - 0x18]
jne 0x49a570
mov esi, dword [ebp - 0x44]
jmp 0x49a6b5
call fcn.004a5330
test eax, eax
je 0x49a6b5
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 + 0x676820]
cvtpd2ps xmm1, xmm0
call fcn.00445e00
test al, al
je 0x49a6b0
mov esi, dword [ebp - 0x1c]
mov edx, 1
cmp esi, dword [ebp - 0x18]
je 0x49a5e4
mov eax, dword [ebp - 0x34]
cmp edx, eax
jae 0x49a700
mov ecx, dword [esi]
mov dword [ebp - 0x38], ecx
cmp edi, ecx
je 0x49a6a3
call fcn.00441dd0
test eax, eax
jne 0x49a69d
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x44]
push edi
call fcn.00445720
mov eax, dword [0x70a7a0]
mov ecx, edi
mov dword [ebp - 0x50], eax
call fcn.00443ba0
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.00443a50
mov ecx, dword [ebp - 0x50]
push edi
push eax
call fcn.00487160
mov edx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x40]
inc edx
mov dword [ebp - 0x3c], edx
jmp 0x49a6a0
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
add esi, 4
cmp esi, dword [ebp - 0x18]
jne 0x49a637
mov esi, dword [ebp - 0x44]
jmp 0x49a6b5
mov edx, 1
mov eax, dword [ebp - 0x34]
cmp edx, eax
jae 0x49a700
sub eax, edx
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
push edi
call fcn.00445910
movss xmm0, dword [ebp - 0x24]
lea eax, [ebp - 0x28]
xorps xmm0, xmmword [0x676840]
mov ecx, esi
push eax
movss dword [ebp - 0x24], xmm0
call fcn.004456a0
mov ecx, dword [0x70a7a0]
lea eax, [ebp - 0x28]
push eax
push 0
call fcn.00487160
sub dword [ebp - 0x34], 1
jne 0x49a6c1
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
call fcn.0043f720
mov edx, dword [ebp - 0x2c]
mov ecx, edx
call fcn.004949f0
mov ecx, dword [ebp - 0x30]
call fcn.00453c60
test eax, eax
jne 0x49a786
mov eax, dword [ebp - 0x48]
push dword [edx + eax*8 + 0xdb9c]
call fcn.004a5f50
mov esi, eax
mov eax, dword [ebp - 0x48]
movss xmm1, dword [edx + eax*8 + 0xdba4]
call fcn.004a5fc0
mov ecx, dword [ebp - 0x30]
mov edx, eax
call fcn.004a5460
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 + 0xdb94]
call fcn.00446050
test al, al
jne 0x49a788
push dword [ebp - 0x4c]
push str.CPythonPlayer::__UseSkill__d____pkInstMain__NEW_UseSkill___ERROR
call fcn.004c6d90
add esp, 8
xor al, al
jmp 0x49a7a4
mov esi, edx
test edi, edi
je 0x49a795
mov ecx, edi
call fcn.00443a50
jmp 0x49a797
xor eax, eax
push eax
push dword [ebp - 0x4c]
mov ecx, esi
call fcn.0049a7d0
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.00584ead
mov esp, ebp
pop ebp
ret 4
push str.CANNOT_ATTACK
jmp 0x49a316