Function at 0x479870
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [0x5bb204]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push str.Players_Classic.txt
push esi
call fcn.0054c250
add esp, 8
test eax, eax
je 0x4798cd
mov eax, dword [0x636ed4]
test eax, eax
je 0x4798a9
push eax
call fcn.0055ea20
add esp, 4
push 0x56564db
call fcn.0055e950
mov ebx, eax
push 0x56564db
push 0
push ebx
mov dword [ebp - 0x60], ebx
mov dword [0x636ed4], ebx
call fcn.00549550
jmp 0x479901
mov eax, dword [0x636ed0]
test eax, eax
je 0x4798df
push eax
call fcn.0055ea20
add esp, 4
push 0x56564db
call fcn.0055e950
push 0x56564db
push 0
push eax
mov dword [ebp - 0x60], eax
mov dword [0x636ed0], eax
call fcn.00549550
mov ebx, dword [ebp - 0x60]
add esp, 0x10
test ebx, ebx
je 0x47a5f7
push esi
call fcn.0057c070
add esp, 4
test eax, eax
je 0x47a5f7
push edi
push 1
push str.character
call fcn.0057bdc0
mov edi, eax
add esp, 8
test edi, edi
je 0x47a5f1
push 0
push edi
push 1
push str.code
call fcn.00483c50
add esp, 0x10
test eax, eax
je 0x47a5d9
mov esi, eax
imul esi, esi, 0x1793
push 0
push edi
push 1
add esi, ebx
push str.name
mov word [esi + 0x59], ax
call fcn.00483c50
push 0x694c44
push edi
push 1
push str.gold
mov byte [esi + 0x20], 0
mov dword [esi + 0x14df], eax
mov dword [esi + 0x3e], 0
call fcn.0057be80
add esp, 0x20
test eax, eax
je 0x4799aa
push 0
push 0x694c44
call fcn.00483ce0
add esp, 8
mov dword [esi + 0x3e], eax
push 1
push edi
push 1
push str.level
call fcn.00483c50
add esp, 0x10
mov word [esi + 0x4c], ax
test ax, ax
jne 0x4799ce
mov eax, 1
mov word [esi + 0x4c], ax
push 0
push edi
push 1
push str.real_job
call fcn.00483c50
push eax
call fcn.00479100
push 0
push edi
push 1
push 0x59ff0c
mov byte [esi + 0x4e], al
call fcn.00483c50
push 0
push edi
push 1
push str.office
mov byte [esi + 0x4f], al
call fcn.00483c50
push 0
push edi
push 1
push str.ks_score
mov word [esi + 0x82e], ax
call fcn.00483c50
add esp, 0x44
push 0
push edi
push 1
push str.ks_rscore
mov dword [esi + 0x9f0], eax
call fcn.00483c50
push 1
push edi
push 1
push str.size
mov dword [esi + 0x9ec], eax
call fcn.00483c50
add esp, 0x20
cmp eax, 1
jge 0x479a59
mov eax, 1
jmp 0x479a63
cmp eax, 3
jle 0x479a63
mov eax, 3
push 0
push edi
push 1
push str.honor
mov byte [esi + 0x53], al
call fcn.00483c50
push 0
push edi
push 1
push 0x59fed8
mov word [esi + 0x57], ax
call fcn.00483c50
push 0
push edi
push 1
push 0x59fed4
mov dword [esi + 0x154], eax
call fcn.00483c50
push 1
push edi
push 1
push str.attr_str
mov dword [esi + 0x158], eax
call fcn.00483c50
add esp, 0x40
push 1
push edi
push 1
push str.attr_int
mov word [esi + 0x168], ax
call fcn.00483c50
push 1
push edi
push 1
push str.attr_mind
mov word [esi + 0x16a], ax
call fcn.00483c50
push 1
push edi
push 1
push str.attr_con
mov word [esi + 0x16c], ax
call fcn.00483c50
push 1
push edi
push 1
push str.attr_dex
mov word [esi + 0x16e], ax
call fcn.00483c50
add esp, 0x40
push 1
push edi
push 1
push str.attr_leader
mov word [esi + 0x170], ax
call fcn.00483c50
push 0xa
push edi
push 1
push str.attack_speed
mov word [esi + 0x172], ax
call fcn.00483c50
push 0x694c44
push edi
push 1
push str.damage
mov byte [esi + 0x174], al
xor ebx, ebx
call fcn.0057be80
add esp, 0x30
test eax, eax
je 0x479b6d
push ebx
push 0x694c44
call fcn.00483ce0
add esp, 8
mov ebx, eax
push 0
push edi
mov ecx, ebx
sar ecx, 0x10
push 1
push str.defense
mov word [esi + 0x80d], cx
mov word [esi + 0x175], bx
call fcn.00483c50
push 0
push edi
push 1
push str.ratio_miss
mov word [esi + 0x177], ax
call fcn.00483c50
push 0
push edi
push 1
push str.magic_power
mov byte [esi + 0x17b], al
call fcn.00483c50
push 0
push edi
push 1
push str.ratio_attack_x2
mov word [esi + 0x179], ax
call fcn.00483c50
add esp, 0x40
push 0x694c44
push edi
push 1
push str.spc_flag
mov byte [esi + 0x17c], al
xor ebx, ebx
call fcn.0057be80
add esp, 0x10
test eax, eax
je 0x479c09
push 0x694c44
call fcn.00483c90
mov ebx, eax
add esp, 4
and ebx, 0x7ff
push 0
push edi
push 1
push str.no_back_off
mov word [esi + 0x17d], bx
call fcn.00483c50
add esp, 0x10
test eax, eax
je 0x479c32
mov edx, 0x800
or word [esi + 0x17d], dx
push 0x694c44
push edi
push 1
push str.cnpc_flag
xor ebx, ebx
call fcn.0057be80
add esp, 0x10
test eax, eax
je 0x479c62
push 0x694c44
call fcn.00483c90
mov ebx, eax
add esp, 4
and ebx, 0xf0000
push 0
push edi
push 1
push str.no_noattack
mov dword [esi + 0x14eb], ebx
call fcn.00483c50
add esp, 0x10
test eax, eax
je 0x479c88
or dword [esi + 0x14eb], 0x80000
push 0
push edi
push 1
push str.Dead_create_npc
call fcn.00483c50
add esp, 0x10
test eax, eax
je 0x479ca4
mov dword [esi + 0x178e], eax
push 0
push edi
push 1
push str.Dead_create_npc_num
call fcn.00483c50
add esp, 0x10
test eax, eax
je 0x479cc0
mov byte [esi + 0x1792], al
push 0
push edi
push 1
push str.equip_horse
call fcn.00483c50
add esp, 0x10
test eax, eax
je 0x479cdd
mov word [esi + 0x632], ax
push 0
push edi
push 1
push str.cnpc_cell
call fcn.00483c50
add esp, 0x10
mov byte [esi + 0x14ef], al
cmp al, 1
jge 0x479d00
mov byte [esi + 0x14ef], 1
push 0x694c44
push edi
push 1
push str.magic_defense_type
mov dword [ebp - 0x58], 1
call fcn.0057be80
add esp, 0x10
test eax, eax
je 0x479d7c
push 0x2c
push 0x694c44
call fcn.0054afcd
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x479d5d
push 0
push 0x694c44
mov byte [ebx], 0
call fcn.00483bd0
push 0
inc ebx
push ebx
mov dword [ebp - 0x5c], eax
call fcn.00483ce0
mov ecx, dword [ebp - 0x5c]
add esp, 0x10
mov byte [esi + ecx + 0x17f], al
mov eax, dword [ebp - 0x58]
push 0x694c44
inc eax
push edi
push eax
push str.magic_defense_type
mov dword [ebp - 0x58], eax
call fcn.0057be80
add esp, 0x10
test eax, eax
jne 0x479d20
push 0x694c44
push edi
push 1
push str.magic_attack_type
mov dword [ebp - 0x58], 1
call fcn.0057be80
add esp, 0x10
test eax, eax
je 0x479dfc
lea esp, [esp]
push 0x2c
push 0x694c44
call fcn.0054afcd
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x479ddd
push 0
push 0x694c44
mov byte [ebx], 0
call fcn.00483bd0
push 0
inc ebx
push ebx
mov dword [ebp - 0x5c], eax
call fcn.00483ce0
mov edx, dword [ebp - 0x5c]
add esp, 0x10
mov byte [esi + edx + 0x188], al
mov eax, dword [ebp - 0x58]
push 0x694c44
inc eax
push edi
push eax
push str.magic_attack_type
mov dword [ebp - 0x58], eax
call fcn.0057be80
add esp, 0x10
test eax, eax
jne 0x479da0
push 0
push edi
push 1
push str.equip_weapon
call fcn.00483c50
add esp, 0x10
test eax, eax
je 0x479e19
mov word [esi + 0x21e], ax
push 0
push edi
push 1
push str.equip_horse
call fcn.00483c50
add esp, 0x10
test eax, eax
je 0x479e36
mov word [esi + 0x632], ax
push 0
push edi
push 1
push str.equip_shield
call fcn.00483c50
add esp, 0x10
test eax, eax
je 0x479e53
mov word [esi + 0x1aa], ax
push 0x200000
push edi
push 1
push str.country
call fcn.00483c50
push eax
call fcn.004790a0
push 0
push edi
push 1
push 0x59fd84
mov byte [esi + 0x54], al
call fcn.00483c50
push 0x694c44
push edi
mov word [esi + 0x14bf], ax
xor eax, eax
push 1
push str.set_color
mov word [esi + 0x14dc], ax
call fcn.0057be80
add esp, 0x34
test eax, eax
je 0x479ef4
push 0x50
lea ecx, [ebp - 0x54]
push 0
push ecx
call fcn.00549550
push 3
lea edx, [ebp - 0x54]
push edx
push 0x694c44
call fcn.00483e50
add esp, 0x18
cmp eax, 3
jne 0x479ef4
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
and eax, 0xfff8
shl eax, 5
and ecx, 0xfc
add eax, ecx
sar edx, 3
and edx, 0x1f
lea eax, [edx + eax*8]
mov word [esi + 0x14dc], ax
push 0x1f4
push edi
push 1
push str.attack_delay
call fcn.00483c50
push 0x1f4
push edi
push 1
push str.cast_attack_delay
mov word [esi + 0x167e], ax
call fcn.00483c50
push 0
push edi
push 1
push str.dead_horse
mov word [esi + 0x1680], ax
call fcn.00483c50
push 0
push edi
push 1
push str.height
mov word [esi + 0x1682], ax
call fcn.00483c50
add esp, 0x40
cdq
push 0
push edi
xor eax, edx
sub eax, edx
push 1
push str.zoom
mov word [esi + 0x14e3], ax
call fcn.00483c50
push 0
push edi
push 1
push str.class
mov dword [esi + 0x14e5], eax
call fcn.00483c50
push 0x4b
push edi
push 1
push str.walk_speed
mov byte [esi + 0x14de], al
call fcn.00483c50
push 0x64
push edi
push 1
push str.run_speed
mov word [esi + 0x14ce], ax
call fcn.00483c50
add esp, 0x40
push 0
push edi
push 1
push 0x59fd14
mov word [esi + 0x14d0], ax
call fcn.00483c50
push 0
push edi
push 1
push 0x59fd10
mov dword [esi + 0x14c1], eax
call fcn.00483c50
push 0
push edi
push 1
push str.skill_exp
mov word [esi + 0x14c7], ax
call fcn.00483c50
mov ecx, dword [esi + 0x14c1]
add esp, 0x30
mov word [esi + 0x14c5], ax
test ecx, ecx
je 0x47a013
shr ecx, 1
cmp ecx, 1
jge 0x47a00d
mov ecx, 1
mov dword [esi + 0x14c1], ecx
movzx ecx, word [esi + 0x14c7]
test cx, cx
je 0x47a032
shr ecx, 1
cmp ecx, 1
jge 0x47a02b
mov ecx, 1
mov word [esi + 0x14c7], cx
test ax, ax
je 0x47a04d
movzx eax, ax
shr eax, 1
cmp eax, 1
jge 0x47a046
mov eax, 1
mov word [esi + 0x14c5], ax
push 0x5a
push edi
push 1
push str.ratio_hit
call fcn.00483c50
push 1
push edi
push 1
push str.attack_range
mov byte [esi + 0x14cd], al
call fcn.00483c50
push 1
push edi
push 1
push str.attack_effect_range
mov byte [esi + 0x14c9], al
call fcn.00483c50
push 0
push edi
push 1
push str.attr_level
mov byte [esi + 0x14ca], al
call fcn.00483c50
add esp, 0x40
push 0
push edi
push 1
push str.talk
mov byte [esi + 0x14cb], al
call fcn.00483c50
push 0
push edi
push 1
push str.talk_no_dir
mov word [esi + 0x16b5], ax
call fcn.00483c50
push 0
push edi
push 1
push str.appear_time
mov byte [esi + 0x16a0], al
call fcn.00483c50
push 0
push edi
push 1
push str.boss_teleport
mov byte [esi + 0x16a1], al
call fcn.00483c50
add esp, 0x40
push 0
push edi
push 1
push str.boss_cast_all
mov byte [esi + 0x16a2], al
call fcn.00483c50
push 0
push edi
push 1
push str.boss_call_all
mov byte [esi + 0x16a3], al
call fcn.00483c50
push 0
push edi
push 1
push str.call_ratio
mov byte [esi + 0x16a4], al
call fcn.00483c50
push 0
push edi
push 1
push str.sell
mov byte [esi + 0x16b0], al
call fcn.00483c50
add esp, 0x40
push 0
push edi
push 1
push str.sfx_move
mov byte [esi + 0x14cc], al
call fcn.00483c50
mov word [esi + 0x14d2], ax
push 0
push edi
push 1
push str.sfx_attack
call fcn.00483c50
push 0
push edi
push 1
push str.sfx_hit
mov word [esi + 0x14d4], ax
call fcn.00483c50
push 0
push edi
push 1
push str.sfx_hurt
mov word [esi + 0x14da], ax
call fcn.00483c50
add esp, 0x40
push 0
push edi
push 1
push str.sfx_dead
mov word [esi + 0x14d6], ax
call fcn.00483c50
add esp, 0x10
cmp byte [esi + 0x16a1], 3
mov word [esi + 0x14d8], ax
jne 0x47a1ef
movzx eax, word [esi + 0x14c7]
test ax, ax
je 0x47a1ef
shr eax, 1
cmp eax, 1
jge 0x47a1e8
mov eax, 1
mov word [esi + 0x14c7], ax
push 0x694c44
push edi
push 1
push str.anti_status
xor ebx, ebx
call fcn.0057be80
add esp, 0x10
test eax, eax
je 0x47a219
push 0x694c44
call fcn.00483c90
add esp, 4
mov ebx, eax
lea ecx, [esi + 0x14f0]
push edi
push ecx
mov dword [esi + 0x1684], ebx
call fcn.00484770
push 0x694c44
push edi
push 1
push str.special_attack
mov dword [ebp - 0x58], 1
call fcn.0057be80
add esp, 0x18
test eax, eax
je 0x47a2ae
lea ebx, [esi + 0x1670]
cmp dword [ebp - 0x58], 3
jg 0x47a2ae
push 0x50
lea edx, [ebp - 0x54]
push 0
push edx
call fcn.00549550
push 0xa
lea eax, [ebp - 0x54]
push eax
push 0x694c44
call fcn.00483e50
add esp, 0x18
cmp eax, 2
jne 0x47a2ae
mov cx, word [ebp - 0x54]
mov eax, dword [ebp - 0x58]
push 0x694c44
inc eax
mov word [ebx - 2], cx
mov dx, word [ebp - 0x50]
push edi
push eax
mov word [ebx], dx
push str.special_attack
mov dword [ebp - 0x58], eax
add ebx, 4
call fcn.0057be80
add esp, 0x10
test eax, eax
jne 0x47a252
push 0
push edi
push 1
push str.ai_fast_run_ratio
call fcn.00483c50
push 0
push edi
push 1
push str.ai_fast_run_level
mov byte [esi + 0x16a5], al
call fcn.00483c50
push 0
push edi
push 1
push str.ai_fast_run_magic
mov byte [esi + 0x16a6], al
call fcn.00483c50
push 0
push edi
push 1
push str.ai_help_self_ratio
mov word [esi + 0x16a7], ax
call fcn.00483c50
add esp, 0x40
push 0
push edi
push 1
push str.ai_help_self_level
mov byte [esi + 0x16a9], al
call fcn.00483c50
push 0
push edi
push 1
push str.ai_help_self_magic
mov byte [esi + 0x16aa], al
call fcn.00483c50
push 0
push edi
push 1
push 0x59fb94
mov word [esi + 0x16ab], ax
call fcn.00483c50
push 4
push edi
push 1
push str.ai_guard_range
mov dword [esi + 0x1688], eax
call fcn.00483c50
add esp, 0x40
push 0
push edi
push 1
push str.ai_call_range
mov byte [esi + 0x168c], al
call fcn.00483c50
push 0
push edi
push 1
push str.use_leader
mov byte [esi + 0x168d], al
call fcn.00483c50
push 0
push edi
push 1
push str.ai_reborn_range
mov word [esi + 0x14e9], ax
call fcn.00483c50
push 0x10001
push edi
push 1
push str.ai_reborn_delay
mov byte [esi + 0x168e], al
call fcn.00483d70
add esp, 0x40
push 0
mov ecx, eax
sar ecx, 0x10
push edi
mov word [esi + 0x168f], cx
mov word [esi + 0x1691], ax
push 1
push str.drop
call fcn.00483c50
push 0
push edi
push 1
push str.drop_mission
mov word [esi + 0x167a], ax
call fcn.00483c50
push 0
push edi
push 1
push str.call_sol1
mov word [esi + 0x167c], ax
call fcn.00483c50
push 0
push edi
push 1
push str.call_sol2
mov word [esi + 0x1693], ax
call fcn.00483c50
add esp, 0x40
push 0
push edi
push 1
push str.call_sol3
mov word [esi + 0x1695], ax
call fcn.00483c50
push 0
push edi
push 1
push str.call_sol4
mov word [esi + 0x1697], ax
call fcn.00483c50
push 0
push edi
push 1
push str.call_sol5
mov word [esi + 0x1699], ax
call fcn.00483c50
push 0x694c44
push edi
push 1
push str.call_sol_total
mov word [esi + 0x169b], ax
call fcn.0057be80
add esp, 0x40
test eax, eax
je 0x47a502
push 0x50
xor ebx, ebx
lea edx, [ebp - 0x54]
push ebx
push edx
call fcn.00549550
push 0xa
lea eax, [ebp - 0x54]
push eax
push 0x694c44
call fcn.00483e50
add esp, 0x18
mov dword [ebp - 0x58], eax
cmp eax, 5
jle 0x47a4b1
mov eax, 5
mov dword [ebp - 0x58], eax
xor edx, edx
test eax, eax
jle 0x47a4ef
lea ecx, [esi + 0x1784]
lea ecx, [ecx]
cmp word [ecx - 0xf1], 0
je 0x47a4ef
movzx eax, word [ebp + edx*4 - 0x54]
mov word [ecx], ax
test ax, ax
jne 0x47a4df
mov eax, 1
mov word [ecx], ax
movzx eax, word [ecx]
add ebx, eax
mov eax, dword [ebp - 0x58]
inc edx
add ecx, 2
cmp edx, eax
jl 0x47a4c0
mov word [esi + 0x169d], bx
cmp eax, 1
jle 0x47a502
or byte [esi + 0x16b7], 0x80
push 0x1e
push edi
push 1
push str.appear_ratio
call fcn.00483c50
push 0
push edi
push 1
push str.hp_low_ratio_attack
mov byte [esi + 0x169f], al
call fcn.00483c50
add esp, 0x20
mov byte [esi + 0x16ae], al
cmp al, 0x64
jbe 0x47a53a
mov byte [esi + 0x16ae], 0x64
push 0
push edi
push 1
push str.attack_spec_ratio
call fcn.00483c50
add esp, 0x10
mov byte [esi + 0x16ad], al
cmp al, 0x3c
jbe 0x47a55d
mov byte [esi + 0x16ad], 0x3c
push 0
push edi
push 1
push str.armor_bless
call fcn.00483c50
add esp, 0x10
mov byte [esi + 0x16af], al
cmp al, 0x64
jbe 0x47a580
mov byte [esi + 0x16af], 0x64
push 0
push edi
push 1
push str.boss_soul_role
call fcn.00483c50
push 0
push edi
push 1
push str.boss_soul_item
mov word [esi + 0x16b1], ax
call fcn.00483c50
mov ebx, dword [ebp - 0x60]
mov word [esi + 0x16b3], ax
or eax, 0xffffffff
mov dword [esi + 0xfdb], eax
mov dword [esi + 0xfdf], eax
add esp, 0x20
or eax, eax
mov dword [esi + 0xfe7], eax
mov dword [esi + 0xfeb], eax
mov dword [esi + 0xfe3], 0
push edi
push str.character
call fcn.0057be20
mov edi, eax
add esp, 8
test edi, edi
jne 0x479937
call fcn.0057c260
pop edi
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.00549540
mov esp, ebp
pop ebp
ret