Function at 0x43a8e0
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50e240
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x57b728]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov esi, dword [ebp + 8]
mov dword [ebp - 4], 0
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43a92f
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.SkillLevel
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43a931
xor eax, eax
mov byte [edi], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43a94d
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.Country
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43a94f
xor eax, eax
mov byte [edi + 0xb], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43a96c
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.Attackfighter
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43a96e
xor eax, eax
mov byte [edi + 0xc], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43a98b
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.Defensefighter
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43a98d
xor eax, eax
mov byte [edi + 0xd], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43a9aa
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.Patrolrogue
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43a9ac
xor eax, eax
mov byte [edi + 0xe], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43a9c9
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.Shootrogue
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43a9cb
xor eax, eax
mov byte [edi + 0xf], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43a9e8
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.Attackmage
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43a9ea
xor eax, eax
mov byte [edi + 0x10], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43aa07
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.Defensemage
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43aa09
xor eax, eax
mov byte [edi + 0x11], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43aa26
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.PrevSkillID
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43aa28
xor eax, eax
mov word [edi + 0x35], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43aa46
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.ReqLevel
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43aa48
xor eax, eax
mov word [edi + 9], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43aa66
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.Grow
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43aa68
xor eax, eax
mov byte [edi + 0x12], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43aa85
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.SkillPoint
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43aa87
xor eax, eax
mov byte [edi + 0x13], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43aaa4
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.TypeShow
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43aaa6
xor eax, eax
mov byte [edi + 0x14], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43aac3
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.TypeAttack
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43aac5
xor eax, eax
mov byte [edi + 0x15], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43aae2
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.TypeEffect
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43aae4
xor eax, eax
mov byte [edi + 0x16], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ab01
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.TypeDetail
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ab03
xor eax, eax
mov word [edi + 0x17], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ab21
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.NeedWeapon1
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ab23
xor eax, eax
mov byte [edi + 0x19], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ab40
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.NeedWeapon2
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ab42
xor eax, eax
mov byte [edi + 0x1a], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ab5f
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.NeedWeapon3
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ab61
xor eax, eax
mov byte [edi + 0x1b], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ab7e
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.NeedWeapon4
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ab80
xor eax, eax
mov byte [edi + 0x1c], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ab9d
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.NeedWeapon5
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ab9f
xor eax, eax
mov byte [edi + 0x1d], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43abbc
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.NeedWeapon6
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43abbe
xor eax, eax
mov byte [edi + 0x1e], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43abdb
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.NeedWeapon7
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43abdd
xor eax, eax
mov byte [edi + 0x1f], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43abfa
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.NeedWeapon8
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43abfc
xor eax, eax
mov byte [edi + 0x20], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ac19
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.NeedWeapon9
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ac1b
xor eax, eax
mov byte [edi + 0x21], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ac38
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.NeedWeapon10
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ac3a
xor eax, eax
mov byte [edi + 0x22], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ac57
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.NeedWeapon11
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ac59
xor eax, eax
mov byte [edi + 0x23], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ac76
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.NeedWeapon12
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ac78
xor eax, eax
mov byte [edi + 0x24], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ac95
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.NeedWeapon13
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ac97
xor eax, eax
mov byte [edi + 0x25], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43acb4
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.NeedWeapon14
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43acb6
xor eax, eax
mov byte [edi + 0x26], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43acd3
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.NeedWeapon15
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43acd5
xor eax, eax
mov byte [edi + 0x27], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43acf2
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.Shield
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43acf4
xor eax, eax
mov byte [edi + 0x28], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ad11
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push 0x523f24
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ad13
xor eax, eax
mov word [edi + 0x29], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ad31
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push 0x523f28
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ad33
xor eax, eax
mov word [edi + 0x2b], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ad51
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.ReadyTime
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ad53
xor eax, eax
mov byte [edi + 0x2d], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ad70
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.ResetTime
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ad72
xor eax, eax
mov word [edi + 0x2e], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ad90
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AttackRange
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ad92
xor eax, eax
mov byte [edi + 0x30], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43adaf
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.StateType
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43adb1
xor eax, eax
mov byte [edi + 0x31], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43adce
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AttrType
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43add0
xor eax, eax
mov byte [edi + 0x32], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43aded
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.Disable
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43adef
xor eax, eax
mov word [edi + 0x33], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ae0d
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.SuccessType
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ae0f
xor eax, eax
mov byte [edi + 0x37], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ae2c
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.SuccessValue
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ae2e
xor eax, eax
mov byte [edi + 0x38], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ae4b
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.TargetType
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ae4d
xor eax, eax
mov byte [edi + 0x39], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ae6a
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.ApplyRange
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ae6c
xor eax, eax
mov byte [edi + 0x3a], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43ae89
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.MultiAttack
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43ae8b
xor eax, eax
mov byte [edi + 0x3b], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43aea8
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.KeepTime
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43aeaa
xor eax, eax
mov word [edi + 0x3c], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43aec8
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.Weapon1
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43aeca
xor eax, eax
mov byte [edi + 0x3e], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43aee7
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.Weapon2
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43aee9
xor eax, eax
mov byte [edi + 0x3f], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43af06
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.Weaponvalue
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43af08
xor eax, eax
mov byte [edi + 0x40], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43af25
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push 0x526428
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43af27
xor eax, eax
mov byte [edi + 0x41], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43af62
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, eax
push str.Arrow
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
test al, al
je 0x43af62
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43af9a
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.Arrow
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43af9c
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43afa0
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, eax
push str.Aggro
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
test al, al
je 0x43afa0
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43af9a
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.Aggro
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43af9c
xor eax, eax
mov word [edi + 0x42], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43afba
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.DamageType
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43afbc
xor eax, eax
mov byte [edi + 0x44], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43afd9
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.DamageHP
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43afdb
xor eax, eax
mov word [edi + 0x45], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43aff9
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.DamageSP
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43affb
xor eax, eax
mov word [edi + 0x47], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b019
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.DamageMP
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b01b
xor eax, eax
mov word [edi + 0x49], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b039
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.TimeDamageType
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b03b
xor eax, eax
mov byte [edi + 0x4b], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b058
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.TimeDamageHP
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b05a
xor eax, eax
mov word [edi + 0x4c], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b078
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.TimeDamageSP
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b07a
xor eax, eax
mov word [edi + 0x4e], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b098
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.TimeDamageMP
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b09a
xor eax, eax
mov word [edi + 0x50], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b0b8
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AddDamageHP
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b0ba
xor eax, eax
mov word [edi + 0x52], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b0d8
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AddDamageSP
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b0da
xor eax, eax
mov word [edi + 0x54], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b0f8
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AddDamageMP
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b0fa
xor eax, eax
mov word [edi + 0x56], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b118
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AbilityType1
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b11a
xor eax, eax
mov byte [edi + 0x58], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b137
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AbilityValue1
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b139
xor eax, eax
mov word [edi + 0x59], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b157
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AbilityType2
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b159
xor eax, eax
mov byte [edi + 0x5b], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b176
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AbilityValue2
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b178
xor eax, eax
mov word [edi + 0x5c], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b196
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AbilityType3
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b198
xor eax, eax
mov byte [edi + 0x5e], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b1b5
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AbilityValue3
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b1b7
xor eax, eax
mov word [edi + 0x5f], ax
mov eax, dword [edi + 0x8a]
and eax, 0xfff
cmp eax, 0x600
jl 0x43b38a
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b1eb
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AbilityType4
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b1ed
xor eax, eax
mov byte [edi + 0x61], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b20a
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AbilityValue4
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b20c
xor eax, eax
mov word [edi + 0x62], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b22a
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AbilityType5
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b22c
xor eax, eax
mov byte [edi + 0x64], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b249
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AbilityValue5
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b24b
xor eax, eax
mov word [edi + 0x65], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b269
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AbilityType6
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b26b
xor eax, eax
mov byte [edi + 0x67], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b288
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AbilityValue6
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b28a
xor eax, eax
mov word [edi + 0x68], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b2a8
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AbilityType7
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b2aa
xor eax, eax
mov byte [edi + 0x6a], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b2c7
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AbilityValue7
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b2c9
xor eax, eax
mov word [edi + 0x6b], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b2e7
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AbilityType8
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b2e9
xor eax, eax
mov byte [edi + 0x6d], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b306
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AbilityValue8
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b308
xor eax, eax
mov word [edi + 0x6e], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b326
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AbilityType9
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b328
xor eax, eax
mov byte [edi + 0x70], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b345
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AbilityValue9
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b347
xor eax, eax
mov word [edi + 0x71], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b365
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AbilityType10
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b367
xor eax, eax
mov byte [edi + 0x73], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b384
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.AbilityValue10
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b386
xor eax, eax
mov word [edi + 0x74], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b3a4
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.HealHP
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b3a6
xor eax, eax
mov word [edi + 0x76], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b3c4
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.HealSP
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b3c6
xor eax, eax
mov word [edi + 0x78], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b3e4
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.HealMP
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b3e6
xor eax, eax
mov word [edi + 0x7a], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b404
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.TimeHealHP
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b406
xor eax, eax
mov word [edi + 0x7c], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b424
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.TimeHealSP
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b426
xor eax, eax
mov word [edi + 0x7e], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b444
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.TimeHealMP
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b446
xor eax, eax
mov word [edi + 0x80], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b485
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, eax
push str.DefenseType
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
test al, al
je 0x43b485
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b49f
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.DefenseType
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b4a1
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b49f
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.DefenceType
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b4a1
xor eax, eax
mov byte [edi + 0x82], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b4df
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, eax
push str.DefenseValue
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
test al, al
je 0x43b4df
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b4f9
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.DefenseValue
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b4fb
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b4f9
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.DefenceValue
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b4fb
xor eax, eax
mov byte [edi + 0x83], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b51b
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.LimitHP
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b51d
xor eax, eax
mov byte [edi + 0x84], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b53d
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.FixRange
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b53f
xor eax, eax
mov byte [edi + 0x85], al
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b55f
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.ChangeType
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b561
xor eax, eax
mov word [edi + 0x86], ax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x43b59e
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push str.ChangeLevel
mov ecx, eax
call dword [edx + 0x18]
jmp 0x43b5a0
xor eax, eax
mov word [edi + 0x88], ax
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4