Function at 0x428d00
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x585d57
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x1394
call fcn.0055f780
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 0x428dcf
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 0x428dcf
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 0x428db7
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 0x428de9
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.004650d0
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 0x428e01
sub eax, edx
mov dword [ebp - 0x70], eax
je 0x428e16
mov ecx, edi
call fcn.00424190
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.004244a0
mov dword [ebp - 4], esi
mov byte [ebp - 4], 0x22
cmp ebx, 0xffffffff
je 0x428e48
cmp ebx, 0xfffe
jne 0x428e6b
mov ebx, dword [ebp - 0x1c]
cmp ebx, 0xd
je 0x428e55
cmp ebx, 0x11
jne 0x428e6e
push 0
push str.This_is_not_a_chat_channel.
call fcn.00544a90
add esp, 8
xor esi, esi
mov dword [ebp - 0x24], esi
jmp 0x428e71
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.00547fc0
test al, al
je 0x428ebd
cmp esi, edi
je 0x428ebd
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x428e90
sub eax, edx
mov dword [ebp - 0xa8], eax
je 0x428ebd
mov al, byte [ebp - 0x11]
cmp al, 0x49
jne 0x428eb0
push esi
call fcn.00409460
jmp 0x428eba
cmp al, 0x58
jne 0x428ebd
push esi
call fcn.00409610
add esp, 4
mov dword [ebp - 4], edi
mov byte [ebp - 4], 0x38
cmp esi, edi
je case.0x428ed8.0
cmp ebx, 0x12
ja case.0x428ed8.5
movzx ecx, byte [ebx + 0x42a2b0]
jmp dword [ecx*4 + 0x42a290]
push esi
push ebx
call fcn.004073f0
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 0x429746
test edi, edi
je 0x429746
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 0x428f58
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.00556230
add esp, 0xc
test eax, eax
je 0x429746
push edi
push 0x5bbc9c
push 0x1f
lea eax, [ebp - 0xfc]
push eax
call fcn.00556ab0
add esp, 0x10
mov esi, eax
mov dword [ebp - 0x2c], esi
cmp esi, 0x1e
jle 0x42971c
push str.Position_CHARACTER_NAME_LENGTH
lea ecx, [ebp - 0x578]
call fcn.00403e20
mov byte [ebp - 4], 0x6c
push 0x5ba7cb
lea ecx, [ebp - 0xd90]
call fcn.00403e20
mov byte [ebp - 4], 0x6d
push str.Position
lea ecx, [ebp - 0x5b0]
call fcn.00403e20
mov byte [ebp - 4], 0x6e
push str.assertion_failed
lea ecx, [ebp - 0xb28]
call fcn.00403e20
mov byte [ebp - 4], 0x6f
push str..ConsoleWindow.cpp
lea ecx, [ebp - 0x5e8]
call fcn.00403e20
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.0054fb40
push 0x5e02c8
lea eax, [ebp - 0x1020]
push eax
call fcn.00560081
call fcn.0045d5c0
push eax
call fcn.0045e720
add esp, 4
test eax, eax
jne 0x4290ed
push str.GetCreature_GetPlayerID___
lea ecx, [ebp - 0x620]
call fcn.00403e20
mov byte [ebp - 4], 0x39
push 0x5ba7cb
lea ecx, [ebp - 0xb0c]
call fcn.00403e20
mov byte [ebp - 4], 0x3a
push str.GetPlayerID__
lea ecx, [ebp - 0x150]
call fcn.00403e20
mov byte [ebp - 4], 0x3b
push str.assertion_failed
lea ecx, [ebp - 0x8f8]
call fcn.00403e20
mov byte [ebp - 4], 0x3c
push str..ConsoleWindow.cpp
lea ecx, [ebp - 0x188]
call fcn.00403e20
mov byte [ebp - 4], 0x3d
lea edx, [ebp - 0x620]
push edx
push edi
lea eax, [ebp - 0xb0c]
push eax
call fcn.0045d5c0
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.0054fb40
push 0x5e02c8
lea ecx, [ebp - 0xe04]
push ecx
call fcn.00560081
mov edx, dword [ebp - 0x20]
push edx
push 0
push 4
push esi
call fcn.0045d640
push eax
call fcn.0045d5c0
push eax
call fcn.0045e720
add esp, 4
add eax, 4
push eax
call fcn.0054efe0
push esi
push 4
call fcn.004073f0
add esp, 0x20
jmp case.0x428ed8.0
mov edi, dword [ebp - 0x18]
test edi, edi
jne 0x4291d8
push str.Addressee_NULL
lea ecx, [ebp - 0xb98]
call fcn.00403e20
mov byte [ebp - 4], 0x3e
push 0x5ba7cb
lea ecx, [ebp - 0x1c0]
call fcn.00403e20
mov byte [ebp - 4], 0x3f
push 0x5ba7cb
lea ecx, [ebp - 0x930]
call fcn.00403e20
mov byte [ebp - 4], 0x40
push str.assertion_failed
lea ecx, [ebp - 0x1f8]
call fcn.00403e20
mov byte [ebp - 4], 0x41
push str..ConsoleWindow.cpp
lea ecx, [ebp - 0xbd0]
call fcn.00403e20
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.0054fb40
push 0x5e02c8
lea edx, [ebp - 0x1110]
push edx
call fcn.00560081
call fcn.0045d5c0
push eax
call fcn.0045e720
add esp, 4
test eax, eax
jne 0x42929e
push str.GetCreature_GetPlayerID___
lea ecx, [ebp - 0x230]
call fcn.00403e20
mov byte [ebp - 4], 0x43
push 0x5ba7cb
lea ecx, [ebp - 0x968]
call fcn.00403e20
mov byte [ebp - 4], 0x44
push str.GetPlayerID__
lea ecx, [ebp - 0x268]
call fcn.00403e20
mov byte [ebp - 4], 0x45
push str.assertion_failed
lea ecx, [ebp - 0xc08]
call fcn.00403e20
mov byte [ebp - 4], 0x46
push str..ConsoleWindow.cpp
lea ecx, [ebp - 0x2a0]
call fcn.00403e20
mov byte [ebp - 4], 0x47
lea eax, [ebp - 0x230]
push eax
push 0
lea ecx, [ebp - 0x968]
push ecx
call fcn.0045d5c0
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.0054fb40
push 0x5e02c8
lea edx, [ebp - 0xeb8]
push edx
call fcn.00560081
mov eax, dword [ebp - 0x20]
push eax
push edi
push ebx
push esi
call fcn.0045d640
push eax
call fcn.0045d5c0
push eax
call fcn.0045e720
add esp, 4
add eax, 4
push eax
call fcn.0054efe0
add esp, 0x18
push 0xffffffffffffffff
call fcn.0045d5c0
push eax
call fcn.0045e720
add esp, 4
add eax, 4
push eax
push edi
call fcn.00556230
add esp, 0xc
test eax, eax
je 0x428eec
push esi
push edi
push ebx
call fcn.004077a0
add esp, 0xc
jmp 0x428eec
cmp dword [ebp - 0x20], 0xffffffff
jne 0x4293ae
push str.ChannelID__1
lea ecx, [ebp - 0x9a0]
call fcn.00403e20
mov byte [ebp - 4], 0x48
push 0x5ba7cb
lea ecx, [ebp - 0x2d8]
call fcn.00403e20
mov byte [ebp - 4], 0x49
push 0x5ba7cb
lea ecx, [ebp - 0xc40]
call fcn.00403e20
mov byte [ebp - 4], 0x4a
push str.assertion_failed
lea ecx, [ebp - 0x310]
call fcn.00403e20
mov byte [ebp - 4], 0x4b
push str..ConsoleWindow.cpp
lea ecx, [ebp - 0x9d8]
call fcn.00403e20
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.0054fb40
push 0x5e02c8
lea eax, [ebp - 0x1278]
push eax
call fcn.00560081
push esi
mov ecx, dword [ebp - 0x20]
push ecx
push ebx
call fcn.00407c50
add esp, 0xc
jmp case.0x428ed8.0
mov edi, dword [ebp - 0x18]
test edi, edi
jne 0x429476
push str.Addressee_NULL
lea ecx, [ebp - 0x348]
call fcn.00403e20
mov byte [ebp - 4], 0x4d
push 0x5ba7cb
lea ecx, [ebp - 0xc78]
call fcn.00403e20
mov byte [ebp - 4], 0x4e
push 0x5ba7cb
lea ecx, [ebp - 0x380]
call fcn.00403e20
mov byte [ebp - 4], 0x4f
push str.assertion_failed
lea ecx, [ebp - 0xa10]
call fcn.00403e20
mov byte [ebp - 4], 0x50
push str..ConsoleWindow.cpp
lea ecx, [ebp - 0x3b8]
call fcn.00403e20
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.0054fb40
push 0x5e02c8
lea ecx, [ebp - 0xf30]
push ecx
call fcn.00560081
call fcn.0045d5c0
push eax
call fcn.0045e720
add esp, 4
test eax, eax
jne 0x42953c
push str.GetCreature_GetPlayerID___
lea ecx, [ebp - 0xcb0]
call fcn.00403e20
mov byte [ebp - 4], 0x52
push 0x5ba7cb
lea ecx, [ebp - 0x3f0]
call fcn.00403e20
mov byte [ebp - 4], 0x53
push str.GetPlayerID__
lea ecx, [ebp - 0xa48]
call fcn.00403e20
mov byte [ebp - 4], 0x54
push str.assertion_failed
lea ecx, [ebp - 0x428]
call fcn.00403e20
mov byte [ebp - 4], 0x55
push str..ConsoleWindow.cpp
lea ecx, [ebp - 0xce8]
call fcn.00403e20
mov byte [ebp - 4], 0x56
lea edx, [ebp - 0xcb0]
push edx
push 0
lea eax, [ebp - 0x3f0]
push eax
call fcn.0045d5c0
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.0054fb40
push 0x5e02c8
lea ecx, [ebp - 0x1188]
push ecx
call fcn.00560081
push esi
push edi
push 0xa
call fcn.004077a0
add esp, 0xc
push 0xffffffffffffffff
push edi
push 0xb
push esi
call fcn.0045d640
push eax
call fcn.0045d5c0
push eax
call fcn.0045e720
add esp, 4
add eax, 4
push eax
call fcn.0054efe0
add esp, 0x18
jmp 0x428eec
call fcn.0045d5c0
push eax
call fcn.0045e720
add esp, 4
test eax, eax
jne 0x429638
push str.GetCreature_GetPlayerID___
lea ecx, [ebp - 0x460]
call fcn.00403e20
mov byte [ebp - 4], 0x57
push 0x5ba7cb
lea ecx, [ebp - 0xa80]
call fcn.00403e20
mov byte [ebp - 4], 0x58
push str.GetPlayerID__
lea ecx, [ebp - 0x498]
call fcn.00403e20
mov byte [ebp - 4], 0x59
push str.assertion_failed
lea ecx, [ebp - 0xd20]
call fcn.00403e20
mov byte [ebp - 4], 0x5a
push str..ConsoleWindow.cpp
lea ecx, [ebp - 0x4d0]
call fcn.00403e20
mov byte [ebp - 4], 0x5b
lea edx, [ebp - 0x460]
push edx
push edi
lea eax, [ebp - 0xa80]
push eax
call fcn.0045d5c0
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.0054fb40
push 0x5e02c8
lea ecx, [ebp - 0xfa8]
push ecx
call fcn.00560081
push esi
push 0xb
call fcn.004073f0
add esp, 8
push 0xffffffffffffffff
push 0x5ba7cb
push 0xa
push esi
call fcn.0045d640
push eax
call fcn.0045d5c0
push eax
call fcn.0045e720
add esp, 4
add eax, 4
push eax
call fcn.0054efe0
add esp, 0x18
jmp case.0x428ed8.0
push 0x5ba7cb
lea ecx, [ebp - 0xab8]
call fcn.00403e20
mov byte [ebp - 4], 0x5c
push 0x5ba7cb
lea ecx, [ebp - 0x508]
call fcn.00403e20
mov byte [ebp - 4], 0x5d
push str.TalkMode
lea ecx, [ebp - 0xd58]
call fcn.00403e20
mov byte [ebp - 4], 0x5e
push str.unknown_talk_mode
lea ecx, [ebp - 0x540]
call fcn.00403e20
mov byte [ebp - 4], 0x5f
push str..ConsoleWindow.cpp
lea ecx, [ebp - 0xaf0]
call fcn.00403e20
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.0054fb40
push 0x5e02c8
lea ecx, [ebp - 0x1368]
push ecx
call fcn.00560081
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