Function at 0x4745d0
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 0x5e4508
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x48
mov eax, dword [0x651ea8]
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 - 0x54], edi
call fcn.0046c080
test al, al
jne 0x474d1e
call fcn.00474580
test al, al
je 0x474d52
cmp edi, 0xff
jb 0x47464e
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__Its_not_available_skill_slot_number
call fcn.004a4e70
add esp, 8
jmp 0x474d52
lea eax, [edi + edi*4]
mov ecx, esi
push dword [esi + eax*8 + 0x1e81c]
mov dword [ebp - 0x50], eax
call fcn.00475220
test al, al
jne 0x474d1e
mov ecx, dword [0x6da228]
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x50]
push dword [esi + eax*8 + 0x1e81c]
call fcn.0047d540
test eax, eax
jne 0x47469a
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__There_is_no_skill_data
call fcn.004a4e70
add esp, 8
jmp 0x474d52
mov ecx, dword [ebp - 0x34]
call fcn.004815f0
test eax, eax
je 0x4746cd
push edi
mov ecx, esi
call fcn.0046b390
test eax, eax
je 0x4746cd
mov eax, dword [ebp - 0x50]
mov ecx, dword [0x6d7a38]
push edi
push dword [esi + eax*8 + 0x1e81c]
call fcn.00458730
jmp 0x474d52
push edi
mov ecx, esi
call fcn.00474060
test al, al
je 0x474d52
lea eax, [esi + 4]
mov ecx, eax
mov dword [ebp - 0x38], eax
call fcn.00469970
mov esi, eax
mov dword [ebp - 0x48], esi
test esi, esi
jne 0x474706
push edi
push str.CPythonPlayer::__UseSkill_dwSlotIndex_d__There_is_no_main_player
call fcn.004a4e70
add esp, 8
jmp 0x474d52
mov ecx, esi
call fcn.00412ba0
test eax, eax
jne 0x474d52
mov ecx, dword [ebp - 0x34]
xor edi, edi
mov dword [ebp - 0x44], edi
call fcn.004815e0
test eax, eax
jne 0x47473c
call fcn.00481590
test eax, eax
jne 0x47473c
call fcn.004815c0
test eax, eax
je 0x4749b0
call fcn.004815d0
mov ecx, dword [ebp - 0x30]
test eax, eax
je 0x47474f
call fcn.0046dc30
jmp 0x474754
call fcn.0046dc60
mov edi, eax
mov dword [ebp - 0x44], edi
test edi, edi
jne 0x47487f
mov edi, dword [ebp - 0x30]
mov ecx, edi
call fcn.0046dbf0
mov ecx, dword [ebp - 0x34]
call fcn.004815d0
mov ecx, edi
test eax, eax
je 0x474780
call fcn.0046dc30
jmp 0x474785
call fcn.0046dc60
mov edi, eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x44], edi
test edi, edi
jne 0x47487f
mov ecx, dword [ebp - 0x34]
call fcn.004815c0
test eax, eax
je 0x474820
movss xmm2, dword [0x62e218]
lea eax, [ebp - 0x40]
push eax
mov ecx, esi
call fcn.00411e20
test al, al
je 0x474816
mov esi, dword [ebp - 0x40]
mov ecx, esi
push 1
call fcn.0040d2e0
mov ecx, dword [ebp - 0x38]
push eax
call fcn.0046da90
push dword [ebp - 0x54]
mov eax, dword [ebp - 0x34]
mov edi, dword [ebp - 0x30]
mov ecx, edi
push eax
push esi
mov esi, dword [ebp - 0x48]
push esi
call fcn.00474440
test al, al
je 0x474d52
mov ecx, dword [ebp - 0x34]
call fcn.00481670
test eax, eax
je 0x474825
mov edi, esi
mov ecx, esi
push esi
mov dword [ebp - 0x44], edi
call fcn.00411a20
push str.__ALERT__
call fcn.004a4dd0
add esp, 4
jmp 0x4749b0
push str.NEED_TARGET
jmp 0x474d27
mov edi, dword [ebp - 0x30]
jmp 0x4747ee
call fcn.004815d0
lea ecx, [edi + 4]
test eax, eax
je 0x474858
push str.ONLY_FOR_CORPSE
call fcn.00469c60
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]
jmp 0x474d4a
push str.NEED_TARGET
call fcn.00469c60
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]
jmp 0x474d4a
mov ecx, dword [ebp - 0x34]
call fcn.00481660
test eax, eax
je 0x47494c
cmp esi, edi
jne 0x4748aa
call fcn.00481670
test eax, eax
jne 0x47498a
push str.CANNOT_USE_SELF
jmp 0x474d27
push edi
mov ecx, esi
call fcn.0040cdc0
test al, al
jne 0x474922
mov ecx, edi
call fcn.0040d120
test eax, eax
je 0x474922
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
push eax
call fcn.00474420
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x47498a
push edi
mov ecx, esi
call fcn.0040d380
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 + 0x62e370]
cvtpd2ps xmm0, xmm1
comiss xmm2, xmm0
jb 0x47498a
push ecx
push dword [ebp - 0x54]
mov ecx, edi
call fcn.0040d2e0
mov ecx, dword [ebp - 0x30]
push eax
call fcn.0046e850
jmp 0x474d52
mov ecx, dword [ebp - 0x34]
call fcn.00481670
test eax, eax
je 0x474942
mov edi, esi
push str.__ALERT_
mov dword [ebp - 0x44], edi
call fcn.004a4dd0
add esp, 4
jmp 0x47498a
push str.ONLY_FOR_ALLIANCE
jmp 0x474d27
mov ecx, edi
call fcn.0040a6d0
test eax, eax
je 0x474961
push str.CANNOT_ATTACK_ENEMY_IN_SAFE_AREA
jmp 0x474d27
push edi
mov ecx, esi
call fcn.0040cdc0
test al, al
je 0x474d22
push dword [ebp - 0x54]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
push eax
push edi
push esi
call fcn.00474440
test al, al
je 0x474d52
push edi
mov ecx, esi
call fcn.00411a20
cmp esi, edi
je 0x4749b0
mov ecx, esi
call fcn.00411a00
mov ecx, esi
test al, al
je 0x4749aa
call fcn.00417960
jmp 0x4749b0
push edi
call fcn.004179b0
mov ecx, dword [ebp - 0x34]
call fcn.00481590
test eax, eax
je 0x474a1b
test edi, edi
je 0x4749ce
cmp edi, esi
je 0x4749ce
push edi
mov ecx, esi
call fcn.004179b0
jmp 0x474a1b
lea eax, [ebp - 0x3c]
push eax
call fcn.00469800
test al, al
je 0x4749f1
push dword [ebp - 0x3c]
call fcn.00469950
test eax, eax
je 0x474a1b
push eax
mov ecx, esi
call fcn.004179b0
jmp 0x474a1b
lea eax, [ebp - 0x20]
push eax
call fcn.00469820
test al, al
je 0x474a0b
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
call fcn.00417970
jmp 0x474a1b
push dword [ebp - 0x54]
push str.CPythonPlayer::__UseSkill__d____
call fcn.004a4e70
add esp, 8
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x50]
movss xmm1, dword [eax + ecx*8 + 0x1e82c]
mov ecx, dword [ebp - 0x34]
call fcn.00482010
push dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x4c], eax
call fcn.00474420
cmp dword [ebp - 0x4c], 0
mov dword [ebp - 0x3c], eax
jbe 0x474c7d
test edi, edi
je 0x474c7d
xor ecx, ecx
mov edx, 1
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x40], 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 - 0x34]
call fcn.004815a0
test eax, eax
je 0x474b37
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 + 0x62e370]
cvtpd2ps xmm1, xmm0
call fcn.00412080
mov ecx, dword [ebp - 0x20]
mov edx, 1
mov dword [ebp - 0x40], ecx
test al, al
je 0x474bf2
mov esi, ecx
cmp esi, dword [ebp - 0x1c]
je 0x474bef
cmp edx, dword [ebp - 0x4c]
jae 0x474c3f
mov eax, dword [esi]
mov dword [ebp - 0x3c], eax
cmp edi, eax
je 0x474b2a
mov ecx, eax
call fcn.0040b610
test eax, eax
jne 0x474b27
mov edi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x48]
push edi
call fcn.00411b30
mov ecx, edi
call fcn.0040d430
mov edi, dword [0x6d7a38]
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 - 0x3c]
push eax
call fcn.0040d2e0
push eax
mov ecx, edi
call fcn.0045b6a0
mov edx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x44]
inc edx
mov dword [ebp - 0x38], edx
jmp 0x474b2a
mov edx, dword [ebp - 0x38]
add esi, 4
cmp esi, dword [ebp - 0x1c]
jne 0x474ac3
jmp 0x474bef
call fcn.004815b0
test eax, eax
je 0x474bf2
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 + 0x62e370]
cvtpd2ps xmm1, xmm0
call fcn.004122b0
mov ecx, dword [ebp - 0x20]
mov edx, 1
mov dword [ebp - 0x40], ecx
test al, al
je 0x474bf2
mov esi, ecx
cmp esi, dword [ebp - 0x1c]
je 0x474bef
cmp edx, dword [ebp - 0x4c]
jae 0x474c3f
mov eax, dword [esi]
mov dword [ebp - 0x3c], eax
cmp edi, eax
je 0x474be7
mov ecx, eax
call fcn.0040b610
test eax, eax
jne 0x474be4
mov edi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x48]
push edi
call fcn.00411b30
mov ecx, edi
call fcn.0040d430
mov edi, dword [0x6d7a38]
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 - 0x3c]
push eax
call fcn.0040d2e0
push eax
mov ecx, edi
call fcn.0045b6a0
mov edx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x44]
inc edx
mov dword [ebp - 0x38], edx
jmp 0x474be7
mov edx, dword [ebp - 0x38]
add esi, 4
cmp esi, dword [ebp - 0x1c]
jne 0x474b80
mov esi, dword [ebp - 0x48]
mov eax, dword [ebp - 0x4c]
cmp edx, eax
jae 0x474c3f
sub eax, edx
mov dword [ebp - 0x4c], eax
nop
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
push edi
call fcn.00411d30
movss xmm0, dword [ebp - 0x28]
lea eax, [ebp - 0x2c]
xorps xmm0, xmmword [0x62e390]
mov ecx, esi
push eax
movss dword [ebp - 0x28], xmm0
call fcn.00411ab0
mov ecx, dword [0x6d7a38]
lea eax, [ebp - 0x2c]
push eax
push 0
call fcn.0045b6a0
sub dword [ebp - 0x4c], 1
jne 0x474c00
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x40]
test edx, edx
je 0x474c7d
mov ecx, dword [ebp - 0x18]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x474c73
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x474d74
push ecx
push edx
call fcn.00552cbd
add esp, 8
mov edx, dword [ebp - 0x30]
mov ecx, edx
call fcn.0046e7b0
mov ecx, dword [ebp - 0x34]
call fcn.00427f80
test eax, eax
jne 0x474cf5
mov eax, dword [ebp - 0x50]
push dword [edx + eax*8 + 0x1e824]
call fcn.00482140
mov esi, eax
mov eax, dword [ebp - 0x50]
movss xmm1, dword [edx + eax*8 + 0x1e82c]
call fcn.004821b0
mov ecx, dword [ebp - 0x34]
mov edx, eax
call fcn.004816e0
test eax, eax
mov eax, dword [ebp - 0x50]
setne cl
movzx ecx, cl
push ecx
mov ecx, dword [ebp - 0x48]
push edx
push esi
mov esi, dword [ebp - 0x30]
push dword [esi + eax*8 + 0x1e81c]
call fcn.00412520
test al, al
jne 0x474cf7
push dword [ebp - 0x54]
push str.CPythonPlayer::__UseSkill__d____pkInstMain__NEW_UseSkill___ERROR
call fcn.004a4e70
add esp, 8
jmp 0x474d52
mov esi, edx
test edi, edi
je 0x474d11
mov ecx, edi
call fcn.0040d2e0
push eax
push dword [ebp - 0x54]
mov ecx, esi
call fcn.00474d80
mov al, 1
jmp 0x474d54
xor eax, eax
mov ecx, esi
push eax
push dword [ebp - 0x54]
call fcn.00474d80
mov al, 1
jmp 0x474d54
push str.CANNOT_ATTACK
mov ecx, dword [ebp - 0x38]
call fcn.00469c60
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.00546e70
add esp, 0xc
xor al, al
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.00552cac
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
call fcn.005984ba
int3