Function at 0x461640
Capabilities:
Get geographical location

Disassembly:
sub esp, 0x28
push edi
mov edi, dword [0x5e81e0]
test edi, edi
jne 0x46166b
push 0x201dfbd
call fcn.005358b0
mov edi, eax
add esp, 4
test edi, edi
mov dword [0x5e81e0], edi
je 0x462191
mov ecx, 0x8077ef
xor eax, eax
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov eax, dword [esp + 0x30]
push eax
call fcn.00552f10
add esp, 4
test eax, eax
je 0x462191
push ebx
mov ebx, 1
push ebp
push ebx
push str.character
call fcn.00552c60
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x46218a
push esi
push 0
push ebp
push ebx
push str.code
call fcn.00466a60
mov edi, eax
add esp, 0x10
test edi, edi
je 0x462171
push edi
call fcn.00461550
mov esi, eax
mov word [esi + 0x59], di
xor edi, edi
push edi
push ebp
push ebx
push str.name
call fcn.00466a60
push 0x5eddd4
push ebp
mov byte [esi + 0x20], 0
push ebx
mov dword [esi + 0x700], eax
push str.gold
mov dword [esi + 0x3e], edi
call fcn.00552d20
add esp, 0x24
test eax, eax
je 0x461716
push edi
push 0x5eddd4
call fcn.00466ae0
add esp, 8
mov dword [esi + 0x3e], eax
push ebx
push ebp
push ebx
push str.level
call fcn.00466a60
add esp, 0x10
cmp ax, di
mov word [esi + 0x4c], ax
jne 0x461733
mov word [esi + 0x4c], bx
push edi
push ebp
push ebx
push str.real_job
call fcn.00466a60
push eax
call fcn.004606c0
push edi
push ebp
push ebx
push 0x575cb8
mov byte [esi + 0x4e], al
call fcn.00466a60
push edi
push ebp
push ebx
push str.office
mov byte [esi + 0x4f], al
call fcn.00466a60
push ebx
push ebp
push ebx
push str.size
mov word [esi + 0x5f2], ax
call fcn.00466a60
add esp, 0x44
cmp eax, ebx
jge 0x461785
mov eax, ebx
jmp 0x46178f
cmp eax, 3
jle 0x46178f
mov eax, 3
push edi
push ebp
push ebx
push str.honor
mov byte [esi + 0x53], al
call fcn.00466a60
push edi
push ebp
push ebx
push 0x575c9c
mov word [esi + 0x57], ax
call fcn.00466a60
push edi
push ebp
push ebx
push 0x575c98
mov dword [esi + 0x154], eax
call fcn.00466a60
push ebx
push ebp
push ebx
push str.attr_str
mov dword [esi + 0x158], eax
call fcn.00466a60
add esp, 0x40
mov word [esi + 0x168], ax
push ebx
push ebp
push ebx
push str.attr_int
call fcn.00466a60
push ebx
push ebp
push ebx
push str.attr_mind
mov word [esi + 0x16a], ax
call fcn.00466a60
push ebx
push ebp
push ebx
push str.attr_con
mov word [esi + 0x16c], ax
call fcn.00466a60
push ebx
push ebp
push ebx
push str.attr_dex
mov word [esi + 0x16e], ax
call fcn.00466a60
add esp, 0x40
mov word [esi + 0x170], ax
push ebx
push ebp
push ebx
push str.attr_leader
call fcn.00466a60
push 0xa
push ebp
push ebx
push str.attack_speed
mov word [esi + 0x172], ax
call fcn.00466a60
push 0x5eddd4
push ebp
push ebx
push str.damage
mov byte [esi + 0x174], al
mov dword [esp + 0x6c], edi
call fcn.00552d20
add esp, 0x30
test eax, eax
je 0x46188c
push 0
push 0x5eddd4
call fcn.00466ae0
mov edi, eax
add esp, 8
mov dword [esp + 0x3c], edi
mov cx, word [esp + 0x3e]
push 0
push ebp
push ebx
mov word [esi + 0x5d1], cx
push str.defense
mov word [esi + 0x175], di
call fcn.00466a60
push 0
push ebp
push ebx
push str.ratio_miss
mov word [esi + 0x177], ax
call fcn.00466a60
push 0
push ebp
push ebx
push str.magic_power
mov byte [esi + 0x17b], al
call fcn.00466a60
push 0
push ebp
push ebx
push str.ratio_attack_x2
mov word [esi + 0x179], ax
call fcn.00466a60
add esp, 0x40
mov byte [esi + 0x17c], al
xor edi, edi
push 0x5eddd4
push ebp
push ebx
push str.spc_flag
call fcn.00552d20
add esp, 0x10
test eax, eax
je 0x461923
push 0x5eddd4
call fcn.00466aa0
mov edi, eax
add esp, 4
and edi, 0x7ff
push 0
push ebp
push ebx
push str.no_back_off
mov word [esi + 0x17d], di
call fcn.00466a60
add esp, 0x10
test eax, eax
je 0x461946
or byte [esi + 0x17e], 8
push 0x5eddd4
push ebp
push ebx
push str.cnpc_flag
xor edi, edi
call fcn.00552d20
add esp, 0x10
test eax, eax
je 0x461975
push 0x5eddd4
call fcn.00466aa0
mov edi, eax
add esp, 4
and edi, 0xf0000
push 0
push ebp
push ebx
push str.no_noattack
mov dword [esi + 0x70c], edi
call fcn.00466a60
add esp, 0x10
test eax, eax
je 0x46199a
or dword [esi + 0x70c], 0x80000
push 0
push ebp
push ebx
push str.cnpc_cell
call fcn.00466a60
add esp, 0x10
cmp al, 1
mov byte [esi + 0x710], al
jge 0x4619bc
mov byte [esi + 0x710], 1
push 0x5eddd4
push ebp
push ebx
push str.magic_defense_type
mov dword [esp + 0x4c], ebx
call fcn.00552d20
add esp, 0x10
test eax, eax
je 0x461a37
push 0x2c
push 0x5eddd4
call fcn.0052a205
mov edi, eax
add esp, 8
test edi, edi
je 0x461a11
push 0
push 0x5eddd4
mov byte [edi], 0
call fcn.004669d0
inc edi
push 0
push edi
mov ebx, eax
call fcn.00466ae0
add esp, 0x10
mov byte [esi + ebx + 0x17f], al
mov eax, dword [esp + 0x3c]
push 0x5eddd4
inc eax
push ebp
push eax
push str.magic_defense_type
mov dword [esp + 0x4c], eax
call fcn.00552d20
add esp, 0x10
test eax, eax
jne 0x4619d8
mov ebx, 1
push 0x5eddd4
push ebp
push ebx
push str.magic_attack_type
mov dword [esp + 0x4c], ebx
call fcn.00552d20
add esp, 0x10
test eax, eax
je 0x461ab2
push 0x2c
push 0x5eddd4
call fcn.0052a205
mov edi, eax
add esp, 8
test edi, edi
je 0x461a8c
push 0
push 0x5eddd4
mov byte [edi], 0
call fcn.004669d0
inc edi
push 0
push edi
mov ebx, eax
call fcn.00466ae0
add esp, 0x10
mov byte [esi + ebx + 0x188], al
mov eax, dword [esp + 0x3c]
push 0x5eddd4
inc eax
push ebp
push eax
push str.magic_attack_type
mov dword [esp + 0x4c], eax
call fcn.00552d20
add esp, 0x10
test eax, eax
jne 0x461a53
mov ebx, 1
push 0
push ebp
push ebx
push str.equip_weapon
call fcn.00466a60
add esp, 0x10
test eax, eax
je 0x461ace
mov word [esi + 0x1f2], ax
push 0
push ebp
push ebx
push str.equip_horse
call fcn.00466a60
add esp, 0x10
test eax, eax
je 0x461aea
mov word [esi + 0x47a], ax
push 0
push ebp
push ebx
push str.equip_shield
call fcn.00466a60
add esp, 0x10
test eax, eax
je 0x461b06
mov word [esi + 0x1aa], ax
push 0x200000
push ebp
push ebx
push str.country
call fcn.00466a60
push eax
call fcn.00460660
push 0
push ebp
push ebx
push 0x575b6c
mov byte [esi + 0x54], al
call fcn.00466a60
push 0x5eddd4
push ebp
push ebx
mov word [esi + 0x6e0], ax
push str.set_color
mov word [esi + 0x6fd], 0
call fcn.00552d20
add esp, 0x34
test eax, eax
je 0x461ba8
lea edx, [esp + 0x10]
mov ecx, 0xa
xor eax, eax
lea edi, [esp + 0x10]
push 3
push edx
rep stosd dword es:[edi], eax
push 0x5eddd4
call fcn.00466c40
add esp, 0xc
cmp eax, 3
jne 0x461ba8
mov al, byte [esp + 0x10]
mov cl, byte [esp + 0x14]
mov edx, dword [esp + 0x18]
and eax, 0xf8
shl eax, 5
and ecx, 0xfc
sar edx, 3
add eax, ecx
and edx, 0x1f
lea eax, [edx + eax*8]
mov word [esi + 0x6fd], ax
push 0x1f4
push ebp
push ebx
push str.attack_delay
call fcn.00466a60
push 0x1f4
push ebp
push ebx
push str.cast_attack_delay
mov word [esi + 0x88e], ax
call fcn.00466a60
push 0
push ebp
push ebx
push str.dead_horse
mov word [esi + 0x890], ax
call fcn.00466a60
push 0
push ebp
push ebx
push str.height
mov word [esi + 0x892], ax
call fcn.00466a60
add esp, 0x40
cdq
xor eax, edx
push 0
push ebp
sub eax, edx
push ebx
push str.zoom
mov word [esi + 0x704], ax
call fcn.00466a60
push 0
push ebp
push ebx
push str.class
mov dword [esi + 0x706], eax
call fcn.00466a60
push 0x4b
push ebp
push ebx
push str.walk_speed
mov byte [esi + 0x6ff], al
call fcn.00466a60
push 0x64
push ebp
push ebx
push str.run_speed
mov word [esi + 0x6ef], ax
call fcn.00466a60
add esp, 0x40
mov word [esi + 0x6f1], ax
push 0
push ebp
push ebx
push 0x575afc
call fcn.00466a60
push 0
push ebp
push ebx
push 0x575af8
mov dword [esi + 0x6e2], eax
call fcn.00466a60
push 0
push ebp
push ebx
push str.skill_exp
mov word [esi + 0x6e8], ax
call fcn.00466a60
mov word [esi + 0x6e6], ax
mov eax, dword [esi + 0x6e2]
add esp, 0x30
test eax, eax
je 0x461cb8
shr eax, 1
cmp eax, ebx
jge 0x461cb2
mov eax, ebx
mov dword [esi + 0x6e2], eax
mov ax, word [esi + 0x6e8]
test ax, ax
je 0x461cd8
and eax, 0xffff
shr eax, 1
cmp eax, ebx
jge 0x461cd1
mov eax, ebx
mov word [esi + 0x6e8], ax
mov ax, word [esi + 0x6e6]
test ax, ax
je 0x461cf8
and eax, 0xffff
shr eax, 1
cmp eax, ebx
jge 0x461cf1
mov eax, ebx
mov word [esi + 0x6e6], ax
push 0x5a
push ebp
push ebx
push str.ratio_hit
call fcn.00466a60
push ebx
push ebp
push ebx
push str.attack_range
mov byte [esi + 0x6ee], al
call fcn.00466a60
push ebx
push ebp
push ebx
push str.attack_effect_range
mov byte [esi + 0x6ea], al
call fcn.00466a60
push 0
push ebp
push ebx
push str.attr_level
mov byte [esi + 0x6eb], al
call fcn.00466a60
add esp, 0x40
mov byte [esi + 0x6ec], al
push 0
push ebp
push ebx
push str.talk
call fcn.00466a60
push 0
push ebp
push ebx
push str.talk_no_dir
mov word [esi + 0x8c3], ax
call fcn.00466a60
push 0
push ebp
push ebx
push str.appear_time
mov byte [esi + 0x8b0], al
call fcn.00466a60
push 0
push ebp
push ebx
push str.boss_teleport
mov byte [esi + 0x8b1], al
call fcn.00466a60
add esp, 0x40
mov byte [esi + 0x8b2], al
push 0
push ebp
push ebx
push str.boss_cast_all
call fcn.00466a60
push 0
push ebp
push ebx
push str.boss_call_all
mov byte [esi + 0x8b3], al
call fcn.00466a60
push 0
push ebp
push ebx
push str.call_ratio
mov byte [esi + 0x8b4], al
call fcn.00466a60
push 0
push ebp
push ebx
push str.sell
mov byte [esi + 0x8c0], al
call fcn.00466a60
add esp, 0x40
mov byte [esi + 0x6ed], al
push 0
push ebp
push ebx
push str.sfx_move
call fcn.00466a60
mov word [esi + 0x6f3], ax
push 0
push ebp
push ebx
push str.sfx_attack
call fcn.00466a60
push 0
push ebp
push ebx
push str.sfx_hit
mov word [esi + 0x6f5], ax
call fcn.00466a60
push 0
push ebp
push ebx
push str.sfx_hurt
mov word [esi + 0x6fb], ax
call fcn.00466a60
add esp, 0x40
mov word [esi + 0x6f7], ax
push 0
push ebp
push ebx
push str.sfx_dead
call fcn.00466a60
push 0x5eddd4
push ebp
push ebx
push str.anti_status
mov word [esi + 0x6f9], ax
xor edi, edi
call fcn.00552d20
add esp, 0x20
test eax, eax
je 0x461e85
push 0x5eddd4
call fcn.00466aa0
add esp, 4
mov edi, eax
lea ecx, [esi + 0x711]
push ebp
push ecx
mov dword [esi + 0x894], edi
call fcn.004674c0
push 0x5eddd4
push ebp
push ebx
push str.special_attack
mov dword [esp + 0x54], ebx
call fcn.00552d20
add esp, 0x18
test eax, eax
je 0x461f1c
lea ebx, [esi + 0x880]
cmp dword [esp + 0x3c], 3
jg 0x461f1c
lea edx, [esp + 0x10]
mov ecx, 0xa
xor eax, eax
lea edi, [esp + 0x10]
push 0xa
push edx
rep stosd dword es:[edi], eax
push 0x5eddd4
call fcn.00466c40
add esp, 0xc
cmp eax, 2
jne 0x461f1c
mov ax, word [esp + 0x10]
push 0x5eddd4
mov word [ebx - 2], ax
mov eax, dword [esp + 0x40]
mov cx, word [esp + 0x18]
inc eax
push ebp
push eax
mov word [ebx], cx
push str.special_attack
mov dword [esp + 0x4c], eax
add ebx, 4
call fcn.00552d20
add esp, 0x10
test eax, eax
jne 0x461eba
push 0
mov ebx, 1
push ebp
push ebx
push str.ai_fast_run_ratio
call fcn.00466a60
push 0
push ebp
push ebx
push str.ai_fast_run_level
mov byte [esi + 0x8b5], al
call fcn.00466a60
push 0
push ebp
push ebx
push str.ai_fast_run_magic
mov byte [esi + 0x8b6], al
call fcn.00466a60
push 0
push ebp
push ebx
push str.ai_help_self_ratio
mov word [esi + 0x8b7], ax
call fcn.00466a60
add esp, 0x40
mov byte [esi + 0x8b9], al
push 0
push ebp
push ebx
push str.ai_help_self_level
call fcn.00466a60
push 0
push ebp
push ebx
push str.ai_help_self_magic
mov byte [esi + 0x8ba], al
call fcn.00466a60
push 0
push ebp
push ebx
push 0x57597c
mov word [esi + 0x8bb], ax
call fcn.00466a60
push 4
push ebp
push ebx
push str.ai_guard_range
mov dword [esi + 0x898], eax
call fcn.00466a60
add esp, 0x40
mov byte [esi + 0x89c], al
push 0
push ebp
push ebx
push str.ai_call_range
call fcn.00466a60
push 0
push ebp
push ebx
push str.use_leader
mov byte [esi + 0x89d], al
call fcn.00466a60
push 0
push ebp
push ebx
push str.ai_reborn_range
mov word [esi + 0x70a], ax
call fcn.00466a60
push 0x10001
push ebp
push ebx
push str.ai_reborn_delay
mov byte [esi + 0x89e], al
call fcn.00466b70
add esp, 0x40
mov dword [esp + 0x3c], eax
mov dx, word [esp + 0x3e]
mov word [esi + 0x8a1], ax
push 0
mov word [esi + 0x89f], dx
push ebp
push ebx
push str.drop
call fcn.00466a60
push 0
push ebp
push ebx
push str.drop_mission
mov word [esi + 0x88a], ax
call fcn.00466a60
push 0
push ebp
push ebx
push str.call_sol1
mov word [esi + 0x88c], ax
call fcn.00466a60
push 0
push ebp
push ebx
push str.call_sol2
mov word [esi + 0x8a3], ax
call fcn.00466a60
add esp, 0x40
mov word [esi + 0x8a5], ax
push 0
push ebp
push ebx
push str.call_sol3
call fcn.00466a60
push 0
push ebp
push ebx
push str.call_sol4
mov word [esi + 0x8a7], ax
call fcn.00466a60
push 0
push ebp
push ebx
push str.call_sol5
mov word [esi + 0x8a9], ax
call fcn.00466a60
push 0
push ebp
push ebx
push str.call_sol_total
mov word [esi + 0x8ab], ax
call fcn.00466a60
add esp, 0x40
mov word [esi + 0x8ad], ax
push 0x1e
push ebp
push ebx
push str.appear_ratio
call fcn.00466a60
push 0
push ebp
push ebx
push str.hp_low_ratio_attack
mov byte [esi + 0x8af], al
call fcn.00466a60
add esp, 0x20
cmp al, 0x64
mov byte [esi + 0x8be], al
jbe 0x462115
mov byte [esi + 0x8be], 0x64
push 0
push ebp
push ebx
push str.attack_spec_ratio
call fcn.00466a60
add esp, 0x10
cmp al, 0x3c
mov byte [esi + 0x8bd], al
jbe 0x462137
mov byte [esi + 0x8bd], 0x3c
push 0
push ebp
push ebx
push str.armor_bless
call fcn.00466a60
add esp, 0x10
cmp al, 0x64
mov byte [esi + 0x8bf], al
jbe 0x462159
mov byte [esi + 0x8bf], 0x64
push 0
push ebp
push ebx
push str.boss_soul_item
call fcn.00466a60
add esp, 0x10
mov word [esi + 0x8c1], ax
push ebp
push str.character
call fcn.00552cc0
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x4616aa
pop esi
call fcn.00553100
pop ebp
pop ebx
pop edi
add esp, 0x28
ret