Function at 0x428780
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5806a7
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x1394
call fcn.0055ad10
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov edi, ecx
mov dword [ebp - 0x30], edi
xor esi, esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], 0xffffffff
mov byte [ebp - 0x11], 0
mov dword [ebp - 4], esi
mov dword [ebp - 0x28], esi
mov ebx, 1
mov byte [ebp - 4], bl
mov eax, dword [edi + 0x34]
mov ecx, dword [eax + 0x2c]
mov ecx, dword [ecx + 0x24]
mov dword [ebp - 0xd4], ecx
mov edx, dword [ecx]
call dword [edx + 0x34]
test al, al
jne 0x42884f
mov eax, dword [edi + 0x34]
mov ecx, dword [eax + 0x2c]
mov ecx, dword [ecx + 0x24]
mov dword [ebp - 0xd0], ecx
mov edx, dword [ecx]
call dword [edx + 0x14]
test al, al
je 0x42884f
mov dword [ebp - 0x28], 2
mov eax, dword [edi + 0x34]
mov ecx, dword [eax + 0x2c]
mov esi, dword [ecx + 0x24]
mov dword [ebp - 0x60], esi
mov dword [ebp - 0xa0], esi
mov ecx, esi
mov dword [ebp - 0x68], ecx
mov edx, dword [ecx]
call dword [edx + 0x58]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x14]
test al, al
jne 0x428837
mov dword [ebp - 0x1c], 0
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x60]
mov ebx, eax
mov dword [ebp - 0x20], ebx
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x5c]
mov dword [ebp - 0x18], eax
jmp 0x428869
mov dword [ebp - 0x28], ebx
mov ecx, dword [edi + 0x6c]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], esi
mov ecx, dword [edi + 0x50]
call fcn.00464930
mov dword [edi + 0x6c], ebx
mov ebx, dword [ebp - 0x20]
xor esi, esi
mov dword [ebp - 4], esi
mov byte [ebp - 4], 0xc
mov edx, dword [edi + 0x40]
mov eax, dword [edx + 0x2c]
mov dword [ebp - 0xc0], eax
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x428881
sub eax, edx
mov dword [ebp - 0x70], eax
je 0x428896
mov ecx, edi
call fcn.00423c10
mov dword [ebp - 4], esi
mov byte [ebp - 4], 0x17
lea eax, [ebp - 0x11]
push eax
lea ecx, [ebp - 0x1c]
push ecx
lea edx, [ebp - 0x18]
push edx
lea eax, [ebp - 0x24]
push eax
mov ecx, edi
call fcn.00423f20
mov dword [ebp - 4], esi
mov byte [ebp - 4], 0x22
cmp ebx, 0xffffffff
je 0x4288c8
cmp ebx, 0xfffe
jne 0x4288eb
mov ebx, dword [ebp - 0x1c]
cmp ebx, 0xd
je 0x4288d5
cmp ebx, 0x11
jne 0x4288ee
push 0
push str.This_is_not_a_chat_channel.
call fcn.0053f790
add esp, 8
xor esi, esi
mov dword [ebp - 0x24], esi
jmp 0x4288f1
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x24]
xor edi, edi
mov dword [ebp - 4], edi
mov byte [ebp - 4], 0x2d
call fcn.00542cc0
test al, al
je 0x42893d
cmp esi, edi
je 0x42893d
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x428910
sub eax, edx
mov dword [ebp - 0xa8], eax
je 0x42893d
mov al, byte [ebp - 0x11]
cmp al, 0x49
jne 0x428930
push esi
call fcn.00409360
jmp 0x42893a
cmp al, 0x58
jne 0x42893d
push esi
call fcn.00409510
add esp, 4
mov dword [ebp - 4], edi
mov byte [ebp - 4], 0x38
cmp esi, edi
je case.0x428958.0
cmp ebx, 0x12
ja case.0x428958.5
movzx ecx, byte [ebx + 0x429d30]
jmp dword [ecx*4 + 0x429d10]
push esi
push ebx
call fcn.00407310
add esp, 8
mov edi, dword [ebp - 0x18]
mov dword [ebp - 4], 0
mov dword [ebp - 0x2c], 0xffffffff
mov byte [ebp - 4], 0x6b
mov ebx, dword [ebp - 0x30]
mov ecx, dword [ebx + 0x40]
mov edx, dword [ecx]
call dword [edx + 0xa4]
cmp dword [ebp - 0x1c], 6
jne 0x4291c6
test edi, edi
je 0x4291c6
mov eax, dword [ebx + 0x34]
mov ecx, dword [eax + 0x2c]
mov ecx, dword [ecx + 0x24]
mov dword [ebp - 0x78], ecx
mov edx, dword [ecx]
call dword [edx + 0x5c]
test eax, eax
je 0x4289d8
mov eax, dword [ebx + 0x34]
mov ecx, dword [eax + 0x2c]
mov ecx, dword [ecx + 0x24]
mov dword [ebp - 0x54], ecx
push 0xffffffffffffffff
push edi
mov edx, dword [ecx]
call dword [edx + 0x5c]
push eax
call fcn.00550c70
add esp, 0xc
test eax, eax
je 0x4291c6
push edi
push 0x5b5adc
push 0x1f
lea eax, [ebp - 0xfc]
push eax
call fcn.005514f0
add esp, 0x10
mov esi, eax
mov dword [ebp - 0x2c], esi
cmp esi, 0x1e
jle 0x42919c
push str.Position_CHARACTER_NAME_LENGTH
lea ecx, [ebp - 0x578]
call fcn.00403d40
mov byte [ebp - 4], 0x6c
push 0x5b45eb
lea ecx, [ebp - 0xd90]
call fcn.00403d40
mov byte [ebp - 4], 0x6d
push str.Position
lea ecx, [ebp - 0x5b0]
call fcn.00403d40
mov byte [ebp - 4], 0x6e
push str.assertion_failed
lea ecx, [ebp - 0xb28]
call fcn.00403d40
mov byte [ebp - 4], 0x6f
push str..ConsoleWindow.cpp
lea ecx, [ebp - 0x5e8]
call fcn.00403d40
mov byte [ebp - 4], 0x70
lea ecx, [ebp - 0x578]
push ecx
push 0
lea edx, [ebp - 0xd90]
push edx
push esi
lea eax, [ebp - 0x5b0]
push eax
lea ecx, [ebp - 0xb28]
push ecx
push 0x956
lea edx, [ebp - 0x5e8]
push edx
lea ecx, [ebp - 0x1020]
call fcn.0054a580
push 0x5d7834
lea eax, [ebp - 0x1020]
push eax
call fcn.0055a7d2
call fcn.0045cdf0
push eax
call fcn.0045df60
add esp, 4
test eax, eax
jne 0x428b6d
push str.GetCreature_GetPlayerID___
lea ecx, [ebp - 0x620]
call fcn.00403d40
mov byte [ebp - 4], 0x39
push 0x5b45eb
lea ecx, [ebp - 0xb0c]
call fcn.00403d40
mov byte [ebp - 4], 0x3a
push str.GetPlayerID__
lea ecx, [ebp - 0x150]
call fcn.00403d40
mov byte [ebp - 4], 0x3b
push str.assertion_failed
lea ecx, [ebp - 0x8f8]
call fcn.00403d40
mov byte [ebp - 4], 0x3c
push str..ConsoleWindow.cpp
lea ecx, [ebp - 0x188]
call fcn.00403d40
mov byte [ebp - 4], 0x3d
lea edx, [ebp - 0x620]
push edx
push edi
lea eax, [ebp - 0xb0c]
push eax
call fcn.0045cdf0
push eax
lea ecx, [ebp - 0x150]
push ecx
lea edx, [ebp - 0x8f8]
push edx
push 0x926
lea eax, [ebp - 0x188]
push eax
lea ecx, [ebp - 0xe04]
call fcn.0054a580
push 0x5d7834
lea ecx, [ebp - 0xe04]
push ecx
call fcn.0055a7d2
mov edx, dword [ebp - 0x20]
push edx
push 0
push 4
push esi
call fcn.0045ce70
push eax
call fcn.0045cdf0
push eax
call fcn.0045df60
add esp, 4
add eax, 4
push eax
call fcn.00549a20
push esi
push 4
call fcn.00407310
add esp, 0x20
jmp case.0x428958.0
mov edi, dword [ebp - 0x18]
test edi, edi
jne 0x428c58
push str.Addressee_NULL
lea ecx, [ebp - 0xb98]
call fcn.00403d40
mov byte [ebp - 4], 0x3e
push 0x5b45eb
lea ecx, [ebp - 0x1c0]
call fcn.00403d40
mov byte [ebp - 4], 0x3f
push 0x5b45eb
lea ecx, [ebp - 0x930]
call fcn.00403d40
mov byte [ebp - 4], 0x40
push str.assertion_failed
lea ecx, [ebp - 0x1f8]
call fcn.00403d40
mov byte [ebp - 4], 0x41
push str..ConsoleWindow.cpp
lea ecx, [ebp - 0xbd0]
call fcn.00403d40
mov byte [ebp - 4], 0x42
lea eax, [ebp - 0xb98]
push eax
push edi
lea ecx, [ebp - 0x1c0]
push ecx
push edi
lea edx, [ebp - 0x930]
push edx
lea eax, [ebp - 0x1f8]
push eax
push 0x92d
lea ecx, [ebp - 0xbd0]
push ecx
lea ecx, [ebp - 0x1110]
call fcn.0054a580
push 0x5d7834
lea edx, [ebp - 0x1110]
push edx
call fcn.0055a7d2
call fcn.0045cdf0
push eax
call fcn.0045df60
add esp, 4
test eax, eax
jne 0x428d1e
push str.GetCreature_GetPlayerID___
lea ecx, [ebp - 0x230]
call fcn.00403d40
mov byte [ebp - 4], 0x43
push 0x5b45eb
lea ecx, [ebp - 0x968]
call fcn.00403d40
mov byte [ebp - 4], 0x44
push str.GetPlayerID__
lea ecx, [ebp - 0x268]
call fcn.00403d40
mov byte [ebp - 4], 0x45
push str.assertion_failed
lea ecx, [ebp - 0xc08]
call fcn.00403d40
mov byte [ebp - 4], 0x46
push str..ConsoleWindow.cpp
lea ecx, [ebp - 0x2a0]
call fcn.00403d40
mov byte [ebp - 4], 0x47
lea eax, [ebp - 0x230]
push eax
push 0
lea ecx, [ebp - 0x968]
push ecx
call fcn.0045cdf0
push eax
lea edx, [ebp - 0x268]
push edx
lea eax, [ebp - 0xc08]
push eax
push 0x92e
lea ecx, [ebp - 0x2a0]
push ecx
lea ecx, [ebp - 0xeb8]
call fcn.0054a580
push 0x5d7834
lea edx, [ebp - 0xeb8]
push edx
call fcn.0055a7d2
mov eax, dword [ebp - 0x20]
push eax
push edi
push ebx
push esi
call fcn.0045ce70
push eax
call fcn.0045cdf0
push eax
call fcn.0045df60
add esp, 4
add eax, 4
push eax
call fcn.00549a20
add esp, 0x18
push 0xffffffffffffffff
call fcn.0045cdf0
push eax
call fcn.0045df60
add esp, 4
add eax, 4
push eax
push edi
call fcn.00550c70
add esp, 0xc
test eax, eax
je 0x42896c
push esi
push edi
push ebx
call fcn.004076c0
add esp, 0xc
jmp 0x42896c
cmp dword [ebp - 0x20], 0xffffffff
jne 0x428e2e
push str.ChannelID__1
lea ecx, [ebp - 0x9a0]
call fcn.00403d40
mov byte [ebp - 4], 0x48
push 0x5b45eb
lea ecx, [ebp - 0x2d8]
call fcn.00403d40
mov byte [ebp - 4], 0x49
push 0x5b45eb
lea ecx, [ebp - 0xc40]
call fcn.00403d40
mov byte [ebp - 4], 0x4a
push str.assertion_failed
lea ecx, [ebp - 0x310]
call fcn.00403d40
mov byte [ebp - 4], 0x4b
push str..ConsoleWindow.cpp
lea ecx, [ebp - 0x9d8]
call fcn.00403d40
mov byte [ebp - 4], 0x4c
lea ecx, [ebp - 0x9a0]
push ecx
push edi
lea edx, [ebp - 0x2d8]
push edx
push edi
lea eax, [ebp - 0xc40]
push eax
lea ecx, [ebp - 0x310]
push ecx
push 0x937
lea edx, [ebp - 0x9d8]
push edx
lea ecx, [ebp - 0x1278]
call fcn.0054a580
push 0x5d7834
lea eax, [ebp - 0x1278]
push eax
call fcn.0055a7d2
push esi
mov ecx, dword [ebp - 0x20]
push ecx
push ebx
call fcn.00407b70
add esp, 0xc
jmp case.0x428958.0
mov edi, dword [ebp - 0x18]
test edi, edi
jne 0x428ef6
push str.Addressee_NULL
lea ecx, [ebp - 0x348]
call fcn.00403d40
mov byte [ebp - 4], 0x4d
push 0x5b45eb
lea ecx, [ebp - 0xc78]
call fcn.00403d40
mov byte [ebp - 4], 0x4e
push 0x5b45eb
lea ecx, [ebp - 0x380]
call fcn.00403d40
mov byte [ebp - 4], 0x4f
push str.assertion_failed
lea ecx, [ebp - 0xa10]
call fcn.00403d40
mov byte [ebp - 4], 0x50
push str..ConsoleWindow.cpp
lea ecx, [ebp - 0x3b8]
call fcn.00403d40
mov byte [ebp - 4], 0x51
lea edx, [ebp - 0x348]
push edx
push edi
lea eax, [ebp - 0xc78]
push eax
push edi
lea ecx, [ebp - 0x380]
push ecx
lea edx, [ebp - 0xa10]
push edx
push 0x93b
lea eax, [ebp - 0x3b8]
push eax
lea ecx, [ebp - 0xf30]
call fcn.0054a580
push 0x5d7834
lea ecx, [ebp - 0xf30]
push ecx
call fcn.0055a7d2
call fcn.0045cdf0
push eax
call fcn.0045df60
add esp, 4
test eax, eax
jne 0x428fbc
push str.GetCreature_GetPlayerID___
lea ecx, [ebp - 0xcb0]
call fcn.00403d40
mov byte [ebp - 4], 0x52
push 0x5b45eb
lea ecx, [ebp - 0x3f0]
call fcn.00403d40
mov byte [ebp - 4], 0x53
push str.GetPlayerID__
lea ecx, [ebp - 0xa48]
call fcn.00403d40
mov byte [ebp - 4], 0x54
push str.assertion_failed
lea ecx, [ebp - 0x428]
call fcn.00403d40
mov byte [ebp - 4], 0x55
push str..ConsoleWindow.cpp
lea ecx, [ebp - 0xce8]
call fcn.00403d40
mov byte [ebp - 4], 0x56
lea edx, [ebp - 0xcb0]
push edx
push 0
lea eax, [ebp - 0x3f0]
push eax
call fcn.0045cdf0
push eax
lea ecx, [ebp - 0xa48]
push ecx
lea edx, [ebp - 0x428]
push edx
push 0x93c
lea eax, [ebp - 0xce8]
push eax
lea ecx, [ebp - 0x1188]
call fcn.0054a580
push 0x5d7834
lea ecx, [ebp - 0x1188]
push ecx
call fcn.0055a7d2
push esi
push edi
push 0xa
call fcn.004076c0
add esp, 0xc
push 0xffffffffffffffff
push edi
push 0xb
push esi
call fcn.0045ce70
push eax
call fcn.0045cdf0
push eax
call fcn.0045df60
add esp, 4
add eax, 4
push eax
call fcn.00549a20
add esp, 0x18
jmp 0x42896c
call fcn.0045cdf0
push eax
call fcn.0045df60
add esp, 4
test eax, eax
jne 0x4290b8
push str.GetCreature_GetPlayerID___
lea ecx, [ebp - 0x460]
call fcn.00403d40
mov byte [ebp - 4], 0x57
push 0x5b45eb
lea ecx, [ebp - 0xa80]
call fcn.00403d40
mov byte [ebp - 4], 0x58
push str.GetPlayerID__
lea ecx, [ebp - 0x498]
call fcn.00403d40
mov byte [ebp - 4], 0x59
push str.assertion_failed
lea ecx, [ebp - 0xd20]
call fcn.00403d40
mov byte [ebp - 4], 0x5a
push str..ConsoleWindow.cpp
lea ecx, [ebp - 0x4d0]
call fcn.00403d40
mov byte [ebp - 4], 0x5b
lea edx, [ebp - 0x460]
push edx
push edi
lea eax, [ebp - 0xa80]
push eax
call fcn.0045cdf0
push eax
lea ecx, [ebp - 0x498]
push ecx
lea edx, [ebp - 0xd20]
push edx
push 0x941
lea eax, [ebp - 0x4d0]
push eax
lea ecx, [ebp - 0xfa8]
call fcn.0054a580
push 0x5d7834
lea ecx, [ebp - 0xfa8]
push ecx
call fcn.0055a7d2
push esi
push 0xb
call fcn.00407310
add esp, 8
push 0xffffffffffffffff
push 0x5b45eb
push 0xa
push esi
call fcn.0045ce70
push eax
call fcn.0045cdf0
push eax
call fcn.0045df60
add esp, 4
add eax, 4
push eax
call fcn.00549a20
add esp, 0x18
jmp case.0x428958.0
push 0x5b45eb
lea ecx, [ebp - 0xab8]
call fcn.00403d40
mov byte [ebp - 4], 0x5c
push 0x5b45eb
lea ecx, [ebp - 0x508]
call fcn.00403d40
mov byte [ebp - 4], 0x5d
push str.TalkMode
lea ecx, [ebp - 0xd58]
call fcn.00403d40
mov byte [ebp - 4], 0x5e
push str.unknown_talk_mode
lea ecx, [ebp - 0x540]
call fcn.00403d40
mov byte [ebp - 4], 0x5f
push str..ConsoleWindow.cpp
lea ecx, [ebp - 0xaf0]
call fcn.00403d40
mov byte [ebp - 4], 0x60
lea edx, [ebp - 0xab8]
push edx
push edi
lea eax, [ebp - 0x508]
push eax
push ebx
lea ecx, [ebp - 0xd58]
push ecx
lea edx, [ebp - 0x540]
push edx
push 0x947
lea eax, [ebp - 0xaf0]
push eax
lea ecx, [ebp - 0x1368]
call fcn.0054a580
push 0x5d7834
lea ecx, [ebp - 0x1368]
push ecx
call fcn.0055a7d2
mov byte [ebp + esi - 0xfc], 0x2a
mov byte [ebp + esi - 0xfb], 0x20
mov byte [ebp + esi - 0xfa], 0
mov ecx, dword [ebx + 0x40]
mov edx, dword [ecx]
lea eax, [ebp - 0xfc]
push eax
call dword [edx + 0xa0]
mov dword [ebp - 4], 0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret