Function at 0x47f400
Capabilities:
Check for time delay via gettickcount

Disassembly:
push 0xffffffffffffffff
push 0x54f741
mov eax, dword fs:[0]
push eax
sub esp, 0x14c
mov eax, dword [0x57f7c4]
xor eax, esp
mov dword [esp + 0x144], eax
push ebp
push esi
push edi
mov eax, dword [0x57f7c4]
xor eax, esp
push eax
lea eax, [esp + 0x15c]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x16c]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
xor esi, esi
cmp dword [ebp + 0x581c], esi
je 0x47f465
call edi
cmp dword [ebp + 0x581c], eax
ja 0x47fc57
mov dword [ebp + 0x581c], esi
mov eax, dword [ebp + 0x5820]
mov dword [esp + 0x10], esi
cmp eax, esi
je 0x47f4a9
mov esi, dword [0x587960]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push eax
add esi, 0x10
call fcn.00415480
xor ecx, ecx
mov dword [esp + 0x10], eax
cmp eax, ecx
je 0x47f4a9
mov edx, eax
cmp byte [edx + 0x5808], 5
jbe 0x47f4a9
mov dword [ebp + 0x5820], ecx
mov dword [esp + 0x10], ecx
movzx eax, word [ebx]
add eax, 0xffffeeff
cmp eax, 0x11
ja case.0x47f4c1.4358
movzx eax, byte [eax + 0x47fca8]
jmp dword [eax*4 + 0x47fc80]
cmp dword [ebp + 0x57f4], 4
jne 0x47fc57
mov dl, byte [ebx + 2]
cmp dl, 0x80
ja case.0x47f4c1.4358
cmp dl, 1
jbe 0x47fc57
cmp byte [ebp + 0x58dc], 0
jne 0x47f568
mov eax, dword [ebp + 0x128]
movzx edi, dl
mov ecx, 0x1101
push edi
mov word [esp + 0x20], cx
lea esi, [ebx + 3]
lea ecx, [esp + 0x27]
push esi
push ecx
mov dword [esp + 0x2a], eax
mov byte [esp + 0x2e], dl
call fcn.0051d7c0
add esp, 0xc
add edi, 7
push edi
lea edx, [esp + 0x20]
push edx
mov eax, ebp
call fcn.004d5710
cmp dword [esp + 0x10], 0
je 0x47f555
movzx eax, byte [ebx + 2]
mov edi, dword [esp + 0x10]
push eax
push esi
push 0
push 0
push ebp
mov ecx, 6
mov edx, 0x571dd8
call fcn.0047f260
movzx ecx, byte [ebx + 2]
push 1
push ebp
mov edx, esi
call fcn.0047f0e0
jmp 0x47fc57
mov ecx, 0x1108
lea eax, [ebp + 0x184]
lea esi, [esp + 0x1e]
mov word [esp + 0x1c], cx
sub esi, eax
mov edi, edi
mov cl, byte [eax]
mov byte [esi + eax], cl
inc eax
test cl, cl
jne 0x47f580
movzx edi, dl
push edi
mov byte [esp + 0x37], dl
lea esi, [ebx + 3]
lea edx, [esp + 0x38]
push esi
push edx
call fcn.0051d7c0
add esp, 0xc
add edi, 0x18
push edi
lea eax, [esp + 0x20]
push eax
mov eax, ebp
call fcn.004d55b0
cmp dword [esp + 0x10], 0
je 0x47f5d8
movzx ecx, byte [ebx + 2]
mov edi, dword [esp + 0x10]
push ecx
push esi
push 0
push 0
push ebp
mov ecx, 5
mov edx, str.TRADE
call fcn.0047f260
movzx ecx, byte [ebx + 2]
push 5
push ebp
mov edx, esi
call fcn.0047f0e0
mov byte [ebp + 0x58dc], 0
jmp 0x47fc57
mov al, byte [ebx + 0x17]
cmp al, 0x80
ja case.0x47f4c1.4358
cmp al, 1
jbe 0x47fc57
lea eax, [ebx + 2]
mov byte [ebx + 0x16], 0
call fcn.00414d40
mov dword [esp + 0x18], eax
test eax, eax
je 0x47f70e
mov dl, byte [eax + 0x12d]
cmp dl, byte [ebp + 0x12d]
jne 0x47f70e
mov eax, 0x1102
mov word [esp + 0x1c], ax
lea eax, [ebp + 0x184]
lea edx, [esp + 0x1f]
mov byte [esp + 0x1e], 0
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x47f650
mov al, byte [ebx + 0x17]
movzx edi, al
push edi
lea esi, [ebx + 0x18]
lea ecx, [esp + 0x39]
push esi
push ecx
mov byte [esp + 0x40], al
call fcn.0051d7c0
add esp, 0xc
add edi, 0x19
push edi
mov edi, dword [esp + 0x1c]
lea edx, [esp + 0x20]
push edx
mov ecx, edi
call fcn.004ed0e0
cmp dword [esp + 0x10], 0
je 0x47f6c9
add edi, 0x184
mov eax, edi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x47f6a0
movzx ecx, byte [ebx + 0x17]
push ecx
push esi
sub eax, edx
push eax
push edi
mov edi, dword [esp + 0x20]
push ebp
mov ecx, 2
mov edx, 0x571de8
call fcn.0047f260
mov edi, dword [esp + 0x18]
lea eax, [edi + 0x184]
lea edx, [esp + 0x1f]
mov byte [esp + 0x1e], 1
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x47f6e0
movzx edx, byte [ebx + 0x17]
add edx, 0x19
push edx
lea eax, [esp + 0x20]
push eax
mov ecx, ebp
call fcn.004ed0e0
movzx ecx, byte [ebx + 0x17]
push edi
push ebp
call fcn.0047f190
jmp 0x47fc57
mov ecx, 0x1106
push 3
lea edx, [esp + 0x18]
mov word [esp + 0x18], cx
push edx
mov ecx, ebp
mov byte [esp + 0x1e], 1
call fcn.004ed0e0
jmp 0x47fc57
mov dl, byte [ebx + 2]
cmp dl, 0x80
ja case.0x47f4c1.4358
cmp dl, 1
jbe 0x47fc57
mov eax, 0x1103
mov word [esp + 0x1c], ax
lea eax, [ebp + 0x184]
lea esi, [esp + 0x1e]
sub esi, eax
jmp 0x47f760
mov cl, byte [eax]
mov byte [esi + eax], cl
inc eax
test cl, cl
jne 0x47f760
movzx edi, dl
push edi
lea esi, [ebx + 3]
lea ecx, [esp + 0x38]
push esi
push ecx
mov byte [esp + 0x3f], dl
call fcn.0051d7c0
movzx edx, byte [ebp + 0x12d]
add esp, 0xc
push edx
lea eax, [edi + 0x18]
lea ecx, [esp + 0x20]
call fcn.004192f0
cmp dword [esp + 0x10], 0
je 0x47f7bc
movzx eax, byte [ebx + 2]
mov edi, dword [esp + 0x10]
push eax
push esi
push 0
push 0
push ebp
mov ecx, 3
mov edx, 0x571dec
call fcn.0047f260
movzx ecx, byte [ebx + 2]
push 5
push ebp
mov edx, esi
call fcn.0047f0e0
jmp 0x47fc57
mov al, byte [ebx + 2]
cmp al, 0x80
ja case.0x47f4c1.4358
cmp al, 1
jbe 0x47fc57
mov edi, ebp
lea esi, [esp + 0x18]
call fcn.00431eb0
mov dword [esp + 0x164], 0
mov eax, dword [ebp + 0x1810]
test eax, eax
je 0x47f84b
movzx ecx, byte [ebx + 2]
push 0
push ecx
lea edx, [ebp + 0x184]
push edx
lea esi, [ebx + 3]
push eax
mov ecx, esi
call fcn.00432530
mov edi, dword [esp + 0x10]
test edi, edi
je 0x47f83d
movzx eax, byte [ebx + 2]
push eax
push esi
push 0
push 0
push ebp
mov ecx, 5
mov edx, str.GUILD
call fcn.0047f260
movzx ecx, byte [ebx + 2]
push 3
push ebp
mov edx, esi
call fcn.0047f0e0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x47fc57
add eax, 0x5cc
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x47fc57
mov edi, ebp
lea esi, [esp + 0x14]
call fcn.0044e110
mov dword [esp + 0x164], 1
cmp dword [ebp + 0x17f4], 0
je 0x47f922
mov al, byte [ebx + 2]
cmp al, 0x80
jbe 0x47f8a2
push 0
push 9
mov ecx, ebp
call fcn.004ec760
jmp 0x47f922
cmp al, 1
jbe 0x47f922
mov edx, dword [ebp + 0x128]
movzx esi, al
lea edi, [ebx + 3]
push esi
mov byte [esp + 0x26], al
lea eax, [esp + 0x27]
mov ecx, 0x1105
push edi
push eax
mov word [esp + 0x28], cx
mov dword [esp + 0x2a], edx
mov dword [esp + 0x24], edi
call fcn.0051d7c0
lea eax, [esi + 7]
mov esi, dword [ebp + 0x17f4]
add esp, 0xc
lea ecx, [esp + 0x1c]
call fcn.0044e950
cmp dword [esp + 0x10], 0
je 0x47f914
movzx ecx, byte [ebx + 2]
push ecx
mov edx, edi
mov edi, dword [esp + 0x14]
push edx
push 0
push 0
push ebp
mov ecx, 5
mov edx, str.PARTY
call fcn.0047f260
mov edi, dword [esp + 0x18]
mov edx, edi
movzx ecx, byte [ebx + 2]
push 4
push ebp
call fcn.0047f0e0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x47fc57
add eax, 0x118
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x47fc57
mov edi, ebp
lea esi, [esp + 0x14]
call fcn.0044e110
mov dword [esp + 0x164], 2
mov edi, dword [ebp + 0x17f4]
test edi, edi
je 0x47f922
cmp byte [edi + 0x114], 0
je 0x47f922
mov eax, dword [edi + 0xc]
cmp dword [edi + eax*8 + 0x18], ebp
je 0x47f97d
mov ecx, dword [edi + 0x110]
cmp dword [edi + ecx*8 + 0x18], ebp
jne 0x47f922
mov al, byte [ebx + 2]
cmp al, 0x80
jbe 0x47f991
push 0
push 9
mov ecx, ebp
call fcn.004ec760
jmp 0x47f922
cmp al, 1
jbe 0x47f922
mov ecx, dword [ebp + 0x128]
movzx esi, al
mov edx, 0x1112
mov byte [esp + 0x22], al
lea eax, [ebx + 3]
push esi
mov word [esp + 0x20], dx
push eax
lea edx, [esp + 0x2b]
push edx
mov dword [esp + 0x2a], ecx
mov dword [esp + 0x24], eax
call fcn.0051d7c0
lea eax, [esi + 7]
add esp, 0xc
lea ecx, [esp + 0x1c]
mov esi, edi
call fcn.0044e950
cmp dword [esp + 0x10], 0
je 0x47f9fd
movzx eax, byte [ebx + 2]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
push eax
push ecx
push 0
push 0
push ebp
mov ecx, 5
mov edx, str.PARTY
call fcn.0047f260
mov edx, dword [esp + 0x18]
jmp 0x47f916
cmp dword [ebp + 0x57f4], 4
jne 0x47fc57
call edi
cmp dword [ebp + 0x58e4], eax
ja 0x47fc57
mov al, byte [ebx + 2]
cmp al, 0x80
ja case.0x47f4c1.4358
cmp al, 1
jbe 0x47fc57
mov ecx, dword [ebp + 0x128]
movzx edi, al
mov edx, 0x1107
push edi
mov word [esp + 0x20], dx
lea esi, [ebx + 3]
lea edx, [esp + 0x27]
push esi
push edx
mov dword [esp + 0x2a], ecx
mov byte [esp + 0x2e], al
call fcn.0051d7c0
add esp, 8
fld dword [0x574178]
add edi, 7
fstp dword [esp]
push edi
lea eax, [esp + 0x24]
push eax
mov eax, ebp
call fcn.004d5600
cmp dword [esp + 0x10], 0
je 0x47fa9f
movzx ecx, byte [ebx + 2]
mov edi, dword [esp + 0x10]
push ecx
push esi
push 0
push 0
push ebp
mov ecx, 5
mov edx, str.SHOUT
call fcn.0047f260
movzx ecx, byte [ebx + 2]
push 6
push ebp
mov edx, esi
call fcn.0047f0e0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add eax, 0x7530
mov dword [ebp + 0x58e4], eax
jmp 0x47fc57
mov al, byte [ebx + 2]
cmp al, 0x80
ja case.0x47f4c1.4358
cmp al, 1
jbe 0x47fc57
cmp byte [ebp + 0x58dc], 0
je 0x47fc57
call edi
cmp dword [ebp + 0x58e0], eax
ja 0x47fc57
mov edx, 0x1108
mov word [esp + 0x1c], dx
lea eax, [ebp + 0x184]
lea edx, [esp + 0x1e]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x47fb07
mov al, byte [ebx + 2]
movzx edi, al
push edi
mov byte [esp + 0x37], al
lea esi, [ebx + 3]
lea eax, [esp + 0x38]
push esi
push eax
call fcn.0051d7c0
add esp, 0xc
add edi, 0x18
push edi
lea ecx, [esp + 0x20]
push ecx
mov eax, ebp
call fcn.004d55b0
cmp dword [esp + 0x10], 0
je 0x47fb62
movzx edx, byte [ebx + 2]
mov edi, dword [esp + 0x10]
push edx
push esi
push 0
push 0
push ebp
mov ecx, 5
mov edx, str.TRADE
call fcn.0047f260
movzx ecx, byte [ebx + 2]
push 5
push ebp
mov edx, esi
call fcn.0047f0e0
mov byte [ebp + 0x58dc], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add eax, 0x7530
mov dword [ebp + 0x58e0], eax
jmp 0x47fc57
cmp dword [ebp + 0x57f4], 4
jne 0x47fc57
mov dl, byte [ebx + 2]
cmp dl, 0x80
ja case.0x47f4c1.4358
cmp dl, 1
jbe 0x47fc57
mov eax, 0x1111
mov word [esp + 0xbc], ax
lea eax, [ebp + 0x184]
lea esi, [esp + 0xbe]
sub esi, eax
jmp 0x47fbd0
mov cl, byte [eax]
mov byte [eax + esi], cl
inc eax
test cl, cl
jne 0x47fbd0
movzx edi, dl
push edi
lea esi, [ebx + 3]
lea ecx, [esp + 0xd8]
push esi
push ecx
mov byte [esp + 0xdf], dl
call fcn.0051d7c0
movzx edx, byte [ebp + 0x12d]
mov ecx, dword [ebp + 0xe0]
add esp, 0xc
push edx
push ecx
lea eax, [edi + 0x18]
lea ecx, [esp + 0xc4]
call fcn.00427090
cmp dword [esp + 0x10], 0
je 0x47fc3c
movzx edx, byte [ebx + 2]
mov edi, dword [esp + 0x10]
push edx
push esi
push 0
push 0
push ebp
mov ecx, 5
mov edx, str.ZONE
call fcn.0047f260
movzx ecx, byte [ebx + 2]
push 7
push ebp
mov edx, esi
call fcn.0047f0e0
jmp 0x47fc57
push 0
push 9
mov ecx, ebp
call fcn.004ec760
mov ecx, dword [esp + 0x15c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x144]
xor ecx, esp
call fcn.0051a8be
add esp, 0x158
ret 4