Function at 0x4d3170
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x56c812
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3e0
movzx eax, word [ebp + 0xc]
push ebx
push esi
push edi
push eax
mov esi, ecx
push str._MSG_:__05X__r_n
mov dword [esp + 0x2c], esi
call fcn.004d2e60
add esp, 8
cmp eax, 0x21f0
jg 0x4d62b4
je 0x4d6194
cmp eax, 0x2111
jg 0x4d4629
je 0x4d3d66
cmp eax, 0x201f
jg 0x4d3659
je 0x4d35b0
cmp eax, 0x1101
je 0x4d32ab
cmp eax, 0x2001
jne case.default.0x4d62d3
mov eax, dword [ebp + 0x10]
cmp word [eax], 0
jne case.default.0x4d62d3
push 0
push 0x5e59d8
push 0x5e4138
push 0
call fcn.004cecd0
mov ebx, 0xc8
mov edi, eax
call fcn.004032b0
push eax
call fcn.00554aa1
add esp, 0x14
test eax, eax
je 0x4d3235
mov esi, eax
call fcn.004ff750
mov ecx, dword [0x887734]
cmp byte [ecx + 0x1ff64], 2
push 1
mov eax, 0x90bee0
jne 0x4d324f
push 0x28
jmp 0x4d3251
push 0x20
call fcn.004d07e0
push 1
push 0x1f
mov eax, 0x90bee0
call fcn.004d07e0
mov ebx, dword [0x887acc]
test ebx, ebx
je 0x4d328a
call fcn.00408380
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0x903658
call fcn.00406610
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 1
push 0x28
mov eax, 0x90bee0
call fcn.004d07e0
push 1
push 0x1f
mov eax, 0x90bee0
call fcn.004d07e0
mov edi, dword [ebp + 0x10]
cmp word [edi], 0
jne case.default.0x4d62d3
push str.Recv_NS_GRANDPRIXACTIVE__0x2103__n
call fcn.004d2e60
mov bx, word [edi + 2]
add edi, 2
add esp, 4
add edi, 2
test bx, bx
jbe 0x4d33a0
movzx eax, bx
lea edx, [eax + eax*2]
shl edx, 3
push edx
call fcn.0054bf24
add esp, 4
test bx, bx
mov dword [esi + 0x298], eax
jbe 0x4d33a0
movzx ecx, bx
xor eax, eax
mov dword [esp + 0x1c], ecx
mov edi, edi
mov ecx, dword [edi]
mov edx, dword [esi + 0x298]
mov dword [eax + edx], ecx
mov edx, dword [esi + 0x298]
mov ecx, dword [edi + 4]
add edi, 4
mov dword [eax + edx + 4], ecx
mov edx, dword [esi + 0x298]
lea ecx, [eax + edx + 4]
mov edx, dword [ecx]
test edx, edx
je 0x4d334f
neg edx
mov dword [ecx], edx
mov edx, dword [edi + 4]
mov ecx, dword [esi + 0x298]
mov dword [eax + ecx + 8], edx
mov ecx, dword [esi + 0x298]
add edi, 4
mov edx, dword [edi + 4]
add edi, 4
mov dword [eax + ecx + 0xc], edx
mov edx, dword [edi + 4]
mov ecx, dword [esi + 0x298]
add edi, 4
mov dword [eax + ecx + 0x10], edx
mov ecx, dword [esi + 0x298]
mov edx, dword [edi + 4]
add edi, 4
mov dword [eax + ecx + 0x14], edx
mov ecx, dword [esp + 0x1c]
add edi, 4
add eax, 0x18
dec ecx
mov dword [esp + 0x1c], ecx
jne 0x4d3320
mov word [esi + 0x27a], bx
xor ebx, ebx
mov bx, word [edi]
add edi, 2
test bx, bx
mov dword [esp + 0x18], ebx
jbe 0x4d34bc
movzx eax, bx
lea eax, [eax + eax*4]
shl eax, 3
push eax
call fcn.0054bf24
add esp, 4
test bx, bx
mov dword [esi + 0x2c4], eax
jbe 0x4d34bc
movzx ecx, bx
xor eax, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esi + 0x2c4]
add ecx, eax
xor edx, edx
mov dword [ecx], edx
mov dword [ecx + 4], edx
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], edx
mov dword [ecx + 0x10], edx
mov dword [ecx + 0x14], edx
add ecx, 0x18
xor ebx, ebx
mov dword [ecx], ebx
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebx
mov byte [ecx + 0xc], bl
mov ebx, dword [edi]
mov ecx, dword [esi + 0x2c4]
mov dword [eax + ecx], ebx
mov ecx, dword [esi + 0x2c4]
mov ebx, dword [edi + 4]
add edi, 4
mov dword [eax + ecx + 4], ebx
mov ecx, dword [esi + 0x2c4]
mov ebx, dword [eax + ecx + 4]
cmp ebx, edx
lea ecx, [eax + ecx + 4]
je 0x4d3444
mov edx, ebx
neg edx
mov dword [ecx], edx
mov edx, dword [edi + 4]
mov ecx, dword [esi + 0x2c4]
mov dword [eax + ecx + 8], edx
mov ecx, dword [esi + 0x2c4]
add edi, 4
mov edx, dword [edi + 4]
mov dword [eax + ecx + 0xc], edx
mov ecx, dword [esi + 0x2c4]
add edi, 4
mov edx, dword [edi + 4]
mov dword [eax + ecx + 0x10], edx
mov ecx, dword [esi + 0x2c4]
add edi, 4
mov edx, dword [edi + 4]
mov dword [eax + ecx + 0x14], edx
mov ecx, dword [esi + 0x2c4]
add edi, 4
lea edx, [eax + ecx + 0x18]
add edi, 4
mov ecx, edi
mov ebx, dword [ecx]
mov dword [edx], ebx
mov ebx, dword [ecx + 4]
mov dword [edx + 4], ebx
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x1c]
add edi, 0xc
add eax, 0x28
dec ecx
mov dword [esp + 0x1c], ecx
jne 0x4d33e6
mov ebx, dword [esp + 0x18]
mov word [esi + 0x27c], bx
mov al, byte [edi]
inc edi
test al, al
je 0x4d3519
mov edx, dword [edi]
add edi, 4
mov dword [esi + 0x280], edx
mov eax, dword [edi]
test eax, eax
mov dword [esi + 0x284], eax
je 0x4d34e9
neg eax
mov dword [esi + 0x284], eax
mov eax, dword [edi + 4]
add edi, 4
add edi, 4
mov dword [esi + 0x288], eax
mov ecx, dword [edi]
add edi, 4
mov dword [esi + 0x28c], ecx
mov edx, dword [edi]
add edi, 4
mov dword [esi + 0x290], edx
mov eax, dword [edi]
mov dword [esi + 0x294], eax
add edi, 4
mov al, byte [edi]
inc edi
test al, al
je case.default.0x4d62d3
lea ebx, [esi + 0x29c]
mov eax, ebx
call fcn.004d30b0
mov ecx, dword [edi]
add edi, 4
mov dword [ebx], ecx
mov eax, dword [edi]
test eax, eax
mov dword [esi + 0x2a0], eax
je 0x4d354c
neg eax
mov dword [esi + 0x2a0], eax
mov edx, dword [edi + 4]
mov dword [esi + 0x2a4], edx
add edi, 4
mov eax, dword [edi + 4]
mov dword [esi + 0x2a8], eax
mov eax, dword [0x887734]
add edi, 4
mov ecx, dword [edi + 4]
add edi, 4
mov dword [esi + 0x2ac], ecx
mov edx, dword [edi + 4]
mov dword [esi + 0x2b0], edx
add eax, 0x19f01
mov ecx, dword [eax]
add esi, 0x2b4
mov dword [esi], ecx
mov edx, dword [eax + 4]
mov dword [esi + 4], edx
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov esi, dword [ebp + 0x10]
movzx ecx, byte [esi]
mov eax, dword [0x887734]
imul ecx, ecx, 0xd
lea ecx, [ecx + eax + 0x2006d]
push eax
call fcn.0042bfb0
cmp eax, 0xffffffff
jne case.default.0x4d62d3
push 0
push 0x5e5a88
push 0x5e4138
push 0
call fcn.004cecd0
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.00554aa1
movzx ecx, byte [esi]
mov edx, dword [0x887734]
add esp, 0x14
push 0
push 0
add esi, 0xe
push esi
mov edi, eax
movzx eax, byte [esi - 1]
mov esi, ecx
imul esi, esi, 0xd
lea esi, [esi + edx + 0x2006d]
push esi
lea esi, [edx + ecx*8]
lea ecx, [ecx + esi + 0x22570]
push ecx
push 0
push edx
call fcn.004218d0
test edi, edi
je case.default.0x4d62d3
mov eax, edi
call fcn.005068d0
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
sub eax, 0x2103
je 0x4d3a05
sub eax, 2
jne case.default.0x4d62d3
mov edx, dword [0x887734]
cmp byte [edx + 0x1ff64], 2
push 1
mov eax, 0x90bee0
jne 0x4d3687
push 0x28
jmp 0x4d3689
push 0x20
call fcn.004d07e0
push 1
push 0x1f
mov eax, 0x90bee0
call fcn.004d07e0
mov eax, dword [ebp + 0x10]
cmp word [eax], 0
jne 0x4d39e4
mov cl, byte [eax + 2]
mov edx, dword [esp + 0x24]
mov edi, dword [edx + 0x124]
mov ebx, dword [0x887734]
movzx ecx, cl
add eax, 2
mov dword [esp + 0x18], ecx
shl edi, 7
lea edi, [edi + ebx + 0x23bbc]
mov ebx, ecx
shr ecx, 2
inc eax
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [edx + 0x124]
mov esi, dword [0x887734]
mov ecx, ebx
shl edi, 7
add edi, ecx
add eax, ecx
mov byte [edi + esi + 0x23bbc], 0
mov ecx, dword [edx + 0x124]
shl ecx, 7
lea edi, [ecx + esi + 0x23bbc]
lea ecx, [edx + 0x12c]
mov bl, byte [edi]
inc edi
mov byte [ecx], bl
inc ecx
test bl, bl
jne 0x4d3714
mov cl, byte [eax]
mov edi, dword [edx + 0x124]
mov byte [edx + 0x1ac], cl
mov byte [esi + edi + 0x2403c], cl
mov ecx, dword [eax + 1]
mov edi, dword [edx + 0x124]
mov dword [edx + 0x1b0], ecx
mov dword [esi + edi*4 + 0x24048], ecx
mov ecx, dword [edx + 0x124]
inc eax
mov bl, byte [eax + 4]
mov byte [esi + ecx + 0x2406c], bl
mov edi, dword [edx + 0x124]
add eax, 4
mov cl, byte [eax + 1]
inc eax
mov byte [edx + 0x1b4], cl
mov byte [esi + edi + 0x2407e], cl
mov cl, byte [eax + 1]
mov edi, dword [edx + 0x124]
inc eax
mov byte [edx + 0x1b5], cl
mov byte [esi + edi + 0x24087], cl
mov cl, byte [eax + 1]
mov edi, dword [edx + 0x124]
inc eax
mov byte [edx + 0x1b6], cl
mov byte [esi + edi + 0x24090], cl
mov cl, byte [eax + 1]
mov edi, dword [edx + 0x124]
inc eax
mov byte [edx + 0x1b7], cl
mov byte [esi + edi + 0x24099], cl
mov cl, byte [edx + 0x1b4]
xor edi, edi
inc eax
test cl, cl
mov dword [esp + 0x1c], edi
jbe 0x4d38c5
lea ecx, [edx + 0x268]
mov dword [esp + 0x28], ecx
lea ebx, [esp + 0x2c]
mov ecx, edx
sub ecx, ebx
add ecx, 0x220
mov dword [esp + 0x18], ecx
mov ecx, edx
lea ebx, [esp + 0x38]
sub ecx, ebx
add ecx, 0x1b8
mov byte [esp + 0x44], 0
mov byte [esp + 0x34], 0
mov dword [esp + 0x20], ecx
mov ecx, eax
mov ebx, dword [ecx]
mov dword [esp + 0x38], ebx
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x40], ecx
mov cl, byte [eax + 0xd]
add eax, 0xd
inc eax
mov byte [edi + esi + 0x241d4], cl
mov ecx, dword [eax]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x30], ecx
mov ebx, dword [esp + 0x30]
mov cl, 0x80
shr ebx, 0x18
test cl, bl
je 0x4d3854
mov ebx, dword [esp + 0x30]
shr ebx, 0x10
test cl, bl
jne 0x4d3854
mov byte [esp + 0x33], 0
mov cx, word [eax + 8]
mov ebx, dword [esp + 0x20]
add eax, 8
mov word [esp + 0x14], cx
add eax, 8
lea edi, [esp + 0x38]
jmp 0x4d3870
mov cl, byte [edi]
mov byte [edi + ebx], cl
inc edi
test cl, cl
jne 0x4d3870
mov ebx, dword [esp + 0x18]
lea edi, [esp + 0x2c]
mov cl, byte [edi]
mov byte [edi + ebx], cl
inc edi
test cl, cl
jne 0x4d3882
mov ecx, dword [esp + 0x14]
lea edi, [ecx + 5]
mov ecx, dword [esp + 0x28]
mov word [ecx], di
mov edi, dword [esp + 0x1c]
add ecx, 2
mov dword [esp + 0x28], ecx
add dword [esp + 0x20], 0xd
movzx ecx, byte [edx + 0x1b4]
inc edi
add ebx, 9
cmp edi, ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], ebx
jl 0x4d3806
mov eax, 0x1e
mov dword [esp + 0x6c], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x84], eax
mov eax, 9
push 0
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov eax, 0x4f
push 0x5e7650
mov edx, 0x118
mov ecx, 0x212
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov eax, 0x95
push 0x5e4138
push 0
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
call fcn.004cecd0
mov ebx, 0x25
mov edi, eax
call fcn.004032b0
push eax
call fcn.00554aa1
add esp, 0x14
test eax, eax
jne case.default.0x4d62d3
push 0x90
call fcn.0054bf29
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x3f4], 1
je 0x4d39b6
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x124]
mov edx, dword [esp + ecx*4 + 0x48]
push ecx
mov ecx, dword [esp + ecx*4 + 0x70]
add edx, 0x11
push edx
add ecx, 0xa
push ecx
mov esi, eax
call fcn.005236e0
mov esi, eax
jmp 0x4d39b8
xor esi, esi
mov dword [esp + 0x3f4], 0xffffffff
call fcn.004cecd0
call fcn.00403460
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov dword [esi + 0x124], 0xffffffff
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 1
push 0x20
mov eax, 0x90bee0
call fcn.004d07e0
push 1
push 0x1f
mov eax, 0x90bee0
call fcn.004d07e0
mov eax, dword [ebp + 0x10]
cmp word [eax], 0
jne 0x4d3d23
push str.Recv_NS_CAHNNEL_GAMELIST__0x2103__n
call fcn.004d2e60
mov cl, byte [eax + 2]
mov edx, dword [0x887734]
add eax, 2
add esp, 4
add eax, 2
test cl, cl
mov byte [edx + 0x23b70], cl
je 0x4d3a60
mov ecx, dword [esi + 0x11c]
mov dword [esi + 0x118], ecx
xor ecx, ecx
lea ebx, [edx + 0x23b74]
mov edi, ebx
mov dword [edi], ecx
mov dword [edi + 4], ecx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], ecx
mov dword [edi + 0x10], ecx
mov dword [edi + 0x14], ecx
mov dword [edi + 0x18], ecx
mov dword [edi + 0x1c], ecx
mov dword [edi + 0x20], ecx
mov cl, byte [edx + 0x23b70]
xor edi, edi
test cl, cl
mov dword [esp + 0x28], edi
jbe 0x4d3bc7
lea ecx, [edx + 0x23bda]
mov dword [esp + 0x20], ecx
mov ecx, 0xfffdc426
sub ecx, edx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], ecx
cmp edi, 9
jge 0x4d3bc7
movzx ecx, word [eax]
add eax, 2
mov dword [ebx + 0x24], ecx
movzx ecx, byte [eax]
inc eax
test ecx, ecx
mov dword [esp + 0x18], ecx
je 0x4d3b9e
cmp ecx, 0x32
jle 0x4d3ae1
mov ecx, 0x32
mov dword [esp + 0x18], ecx
cmp ecx, 0x1e
mov dword [ebx], 1
jg 0x4d3af4
test ecx, ecx
jge 0x4d3af9
xor ecx, ecx
jmp 0x4d3af9
mov ecx, 0x1e
mov edi, dword [esp + 0x20]
add edi, 0xffffffe2
mov ebx, ecx
shr ecx, 2
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
xor bl, bl
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
add eax, esi
lea edi, [esi + ecx]
mov ecx, dword [esp + 0x20]
add edi, ecx
mov byte [edi + edx + 0x23bbc], bl
mov edi, dword [esp + 0x28]
mov byte [ecx], bl
mov byte [ecx + 1], bl
mov bl, byte [eax]
mov byte [edi + edx + 0x2403c], bl
mov esi, dword [eax + 1]
mov ebx, dword [esp + 0x1c]
mov dword [ebx + 0x4d4], esi
mov esi, dword [esp + 0x24]
inc eax
mov bl, byte [eax + 4]
add eax, 4
inc eax
mov byte [edi + edx + 0x2406c], bl
mov bl, byte [eax]
inc eax
mov byte [edi + edx + 0x24075], bl
mov bl, byte [eax]
inc eax
mov byte [edi + edx + 0x2407e], bl
mov bl, byte [eax]
inc eax
mov byte [edi + edx + 0x24087], bl
mov bl, byte [eax]
inc eax
mov byte [edi + edx + 0x24090], bl
mov bl, byte [eax]
mov byte [edi + edx + 0x24099], bl
mov ebx, dword [esp + 0x1c]
inc eax
mov byte [edi + edx + 0x240a2], 0
jmp 0x4d3ba2
mov ecx, dword [esp + 0x20]
add ecx, 0x80
mov dword [esp + 0x20], ecx
movzx ecx, byte [edx + 0x23b70]
inc edi
add ebx, 4
cmp edi, ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], ebx
jl 0x4d3ab1
push 0
push 0x5e5a88
push 0x5e4138
push 0
call fcn.004cecd0
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.00554aa1
mov edi, eax
add esp, 0x14
test edi, edi
je 0x4d3c1d
mov edx, dword [0x887734]
mov al, byte [edx + 0x23b70]
xor ebx, ebx
test al, al
jbe 0x4d3c1d
call fcn.005068a0
mov eax, dword [0x887734]
movzx ecx, byte [eax + 0x23b70]
inc ebx
cmp ebx, ecx
jl 0x4d3c07
mov edx, dword [0x887734]
mov ebx, dword [edx + 0x1a764]
call fcn.004ce8c0
mov edi, eax
lea eax, [edi + 0x34]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [edi + 0x30]
test al, al
je 0x4d3c52
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4d3c7e
mov eax, dword [edi + 0x2c]
mov edx, dword [edi + 0x24]
mov edi, dword [edi + 0x1c]
xor eax, ebx
mov ecx, eax
shr ecx, 3
mov ebx, dword [edx + ecx*4]
mov edx, dword [edi + eax*4]
mov eax, dword [esp + 0x18]
push eax
xor ebx, edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp bl, 1
jne case.default.0x4d62d3
mov ecx, dword [0x887734]
mov ax, word [ecx + 0x1a76c]
cmp ax, 0xffff
je case.default.0x4d62d3
movsx eax, ax
cdq
mov edi, 9
idiv edi
mov dword [esi + 8], edx
mov eax, dword [ecx + edx*4 + 0x23b74]
test eax, eax
je 0x4d3cff
mov al, byte [edx + ecx + 0x24090]
test al, al
jne 0x4d3cff
mov al, byte [edx + ecx + 0x2407e]
cmp al, byte [edx + ecx + 0x24087]
je 0x4d3cff
mov al, byte [edx + ecx + 0x24099]
test al, al
je 0x4d3ce1
lea edi, [ecx + 0x1a760]
xor al, al
call fcn.00417e70
mov edi, esi
call fcn.004d7860
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
lea edi, [ecx + 0x1a760]
xor al, al
call fcn.00417e70
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [0x887734]
add ecx, 0x1a760
call fcn.0052c2f0
test al, al
je case.default.0x4d62d3
mov edi, dword [0x887734]
add edi, 0x1a760
xor al, al
call fcn.00417e70
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp + 0x10]
xor ecx, ecx
cmp word [eax], cx
jne 0x4d45a3
push ecx
push 0x5e5a88
push 0x5e4138
push ecx
call fcn.004cecd0
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.00554aa1
add esp, 0x14
mov eax, 0x90a278
mov byte [esi + 0x11], 0
call fcn.00453050
mov edx, dword [0x887734]
call fcn.004217f0
lea eax, [edx + 0x2603c]
call fcn.0041a120
mov ebx, dword [ebp + 0x10]
lea eax, [edx + 0x244e2]
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
movzx eax, byte [ebx + 2]
add ebx, 2
lea edi, [edx + 0x1a680]
call fcn.00417c30
mov edi, dword [0x887734]
movzx eax, byte [ebx + 1]
inc ebx
add edi, 0x1a674
call fcn.00417c30
mov ecx, dword [0x887734]
inc ebx
add ecx, 0x1a674
mov dword [ebp + 0x10], ebx
call fcn.0042e300
mov ebx, eax
mov eax, 0x90a278
call fcn.00452ff0
mov edx, dword [ebp + 0x10]
movzx ecx, word [edx]
mov eax, dword [0x887734]
mov dword [eax + 0x241dc], ecx
xor ecx, ecx
mov word [esi + 0x114], cx
mov dword [esi + 0x11c], ecx
mov byte [esi + 0x113], 2
mov cl, byte [edx + 2]
movzx ebx, cl
add edx, 2
inc edx
mov dword [ebp + 0x10], edx
mov esi, edx
mov ecx, ebx
mov edx, ecx
shr ecx, 2
lea edi, [eax + 0x241e0]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0x10]
mov byte [ebx + eax + 0x241e0], 0
mov cl, byte [esi + ebx]
add esi, ebx
mov byte [eax + 0x24274], cl
inc esi
lea edi, [eax + 0x24278]
mov eax, dword [esi]
mov dword [esp + 0x24], ebx
call fcn.00417c30
mov edx, dword [esi + 4]
mov eax, dword [0x887734]
add esi, 4
mov dword [eax + 0x242ad], edx
mov ecx, dword [esi + 4]
add esi, 8
mov dword [eax + 0x242b1], ecx
mov dl, byte [esi]
mov byte [eax + 0x24284], dl
mov cl, byte [esi + 1]
inc esi
inc esi
push str.Join_ROOM___n
mov byte [eax + 0x24285], cl
mov dword [ebp + 0x10], esi
call fcn.004d2e60
mov cl, byte [eax + 0x24285]
add esp, 4
test cl, cl
mov dword [esp + 0x28], 0
jbe 0x4d4309
mov ebx, dword [0x887734]
mov al, byte [esi]
mov edi, dword [ebx + 0x2605c]
add ebx, 0x2603c
inc esi
inc edi
push str.Insert_Slot
mov dword [ebx + 0x20], edi
call fcn.004d2e60
movzx edi, al
add esp, 4
push edi
mov dword [esp + 0x20], edi
call fcn.0041a1b0
mov eax, dword [0x887734]
lea ecx, [edi + edi*4]
shl ecx, 2
mov dword [esp + 0x14], ecx
lea edx, [ecx + eax + 0x242fd]
mov ecx, esi
mov ebx, dword [ecx]
mov dword [edx], ebx
mov ebx, dword [ecx + 4]
mov dword [edx + 4], ebx
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
mov edx, dword [esp + 0x14]
mov byte [edx + eax + 0x24309], 0
mov cl, byte [esi + 0xc]
add esi, 0xc
test cl, cl
sete cl
mov byte [edi + eax + 0x2439d], cl
inc esi
mov byte [esp + 0x10], cl
mov ecx, dword [esi]
mov dword [eax + edi*4 + 0x243a8], ecx
mov dx, word [esi + 4]
add esi, 4
mov word [eax + edi*2 + 0x243e8], dx
mov ecx, dword [esi + 2]
add esi, 2
mov dword [eax + edi*4 + 0x243c8], ecx
mov dx, word [esi + 4]
add esi, 4
mov word [eax + edi*2 + 0x243f8], dx
mov cl, byte [esi + 2]
add esi, 2
mov byte [eax + edi*2 + 0x244ca], cl
mov dl, byte [esi + 1]
inc esi
mov byte [eax + edi*2 + 0x244cb], dl
mov cl, byte [esi + 1]
inc esi
mov byte [edi + eax + 0x244da], cl
mov edx, dword [eax + 0x1a678]
inc esi
mov dword [esp + 0x14], edx
call fcn.004ce8c0
mov ebx, eax
lea eax, [ebx + 0x34]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [ebx + 0x30]
test al, al
je 0x4d3fe9
mov eax, dword [esp + 0x18]
mov ebx, 1
push eax
jmp 0x4d4010
mov eax, dword [ebx + 0x2c]
mov ecx, dword [esp + 0x14]
mov edx, dword [ebx + 0x24]
mov ebx, dword [ebx + 0x1c]
xor eax, ecx
mov ecx, eax
shr ecx, 3
mov dword [esp + 0x14], ebx
mov ebx, dword [edx + ecx*4]
mov ecx, dword [esp + 0x14]
xor ebx, dword [ecx + eax*4]
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp edi, ebx
mov eax, dword [0x887734]
jne 0x4d402c
mov cl, byte [edi + eax + 0x244da]
mov byte [eax + 0x1a67c], cl
mov dl, byte [esi]
mov byte [edi + eax + 0x244e2], dl
mov edx, dword [esi + 1]
inc esi
lea ecx, [eax + edi*8 + 0x20268]
mov dword [edi + ecx + 0x404d], edx
mov edx, dword [esi + 4]
mov dword [edi + ecx + 0x4051], edx
lea ecx, [eax + edi*8]
mov bl, byte [ecx + edi + 0x242bc]
add ecx, edi
mov dl, 0x80
test dl, bl
je 0x4d4072
test byte [ecx + 0x242bb], dl
jne 0x4d4072
mov byte [ecx + 0x242bc], 0
add esi, 8
mov byte [ecx + 0x242bd], 0
mov dx, word [esi]
add dx, 5
add esi, 2
mov word [eax + edi*2 + 0x244ea], dx
mov cx, word [esi]
add esi, 2
add cx, 5
mov word [eax + edi*2 + 0x244fa], cx
mov dx, word [esi]
add dx, 5
add esi, 2
mov word [eax + edi*2 + 0x2451a], dx
mov cx, word [esi]
add esi, 2
mov word [eax + edi*2 + 0x2450a], cx
movzx edx, word [esi]
mov dword [esp + 0x14], edx
add esi, 2
lea edx, [edi*4 + 0x12204]
mov dword [ebp + 0x10], esi
xor ecx, ecx
mov dword [esp + 0x20], edx
lea ebx, [ebx]
cmp ecx, 3
jne 0x4d40ee
mov word [eax + edx*2 + 6], 0x8000
jmp 0x4d4106
mov bl, byte [esp + 0x10]
neg bl
sbb ebx, ebx
and ebx, 0x8000
add edx, ecx
mov word [eax + edx*2], bx
mov edx, dword [esp + 0x20]
lea ebx, [ecx + edi*4 + 0x9112]
inc ecx
cmp ecx, 4
mov dword [eax + ebx*4], 0
jl 0x4d40e0
mov ecx, dword [esp + 0x14]
test ecx, ecx
jle 0x4d423a
mov edx, dword [esp + 0x20]
mov dword [esp + 0x18], ecx
mov edi, edi
mov ebx, dword [esi]
cmp ebx, 0x31999
jle 0x4d41e6
cmp ebx, 0x34000
jge 0x4d41e6
lea ecx, [esp + 0x90]
call fcn.00412740
mov dword [esp + 0x3f4], 2
mov eax, dword [0x887734]
push ebx
push eax
mov al, 1
lea edi, [esp + 0x98]
call fcn.00429540
movzx eax, byte [esp + 0x99]
dec eax
je 0x4d41a3
dec eax
jne 0x4d41c0
mov ecx, dword [esp + 0x1c]
mov eax, dword [0x887734]
lea edx, [ecx + 0x2445]
shl edx, 4
mov dword [edx + eax], ebx
mov byte [ecx + eax + 0x25fd4], 1
jmp 0x4d41c0
mov ecx, dword [esp + 0x1c]
mov eax, dword [0x887734]
mov edx, ecx
shl edx, 4
mov dword [edx + eax + 0x2444c], ebx
mov byte [ecx + eax + 0x25fcc], 1
lea ecx, [esp + 0x90]
mov dword [esp + 0x3f4], 0xffffffff
call fcn.00412cb0
mov eax, dword [0x887734]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
jmp 0x4d4225
mov ecx, ebx
sar ecx, 0x10
and cl, 0xf
and ebx, 0x7fff
cmp cl, 3
mov dword [esp + 0x14], ebx
jne 0x4d420a
or ebx, 0x8000
mov word [eax + edx*2 + 6], bx
jmp 0x4d4225
mov bl, byte [esp + 0x10]
neg bl
movzx ecx, cl
sbb ebx, ebx
and ebx, 0x8000
or ebx, dword [esp + 0x14]
add ecx, edx
mov word [eax + ecx*2], bx
mov ecx, dword [esp + 0x18]
add esi, 4
dec ecx
mov dword [esp + 0x18], ecx
jne 0x4d4130
mov dword [ebp + 0x10], esi
mov cl, byte [esi]
lea esi, [eax + edi*8 + 0x25f8c]
test byte [0x90c2dc], 1
mov byte [esp + 0x10], cl
jne 0x4d4284
or dword [0x90c2dc], 1
push 0x90c290
mov dword [esp + 0x3f8], 3
call fcn.004ce530
push 0x5707b0
call fcn.005535b5
add esp, 4
mov dword [esp + 0x3f4], 0xffffffff
mov eax, dword [esi + 4]
push 1
lea edx, [esp + 0x14]
push edx
push eax
mov esi, 0x90c290
call fcn.0040aeb0
call fcn.00554f6c
cdq
mov ecx, 6
idiv ecx
mov ecx, dword [0x887734]
inc dword [ebp + 0x10]
mov eax, dword [ecx + edi*4 + 0x243c8]
mov esi, edi
mov dword [ecx + edi*4 + 0x25fdc], edx
xor edx, edx
mov dx, word [ecx + edi*2 + 0x243f8]
push edx
push eax
mov ax, word [ecx + edi*2 + 0x243e8]
mov ecx, dword [ecx + edi*4 + 0x243a8]
mov edx, 0x90a278
call fcn.00453110
mov ecx, dword [0x887734]
mov eax, dword [esp + 0x28]
movzx edx, byte [ecx + 0x24285]
mov esi, dword [ebp + 0x10]
inc eax
cmp eax, edx
mov dword [esp + 0x28], eax
jl 0x4d3ee1
mov ebx, dword [esp + 0x24]
mov eax, dword [0x887734]
mov ecx, dword [eax + 0x1a678]
mov dword [esp + 0x14], ecx
call fcn.004ce8c0
mov edi, eax
lea eax, [edi + 0x34]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [edi + 0x30]
test al, al
je 0x4d4343
mov edx, dword [esp + 0x18]
mov dword [esp + 0x38], 1
push edx
jmp 0x4d4368
mov eax, dword [edi + 0x2c]
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x24]
mov edi, dword [edi + 0x1c]
xor eax, ecx
mov ecx, eax
shr ecx, 3
mov ecx, dword [edx + ecx*4]
mov edx, dword [edi + eax*4]
mov eax, dword [esp + 0x18]
xor ecx, edx
mov dword [esp + 0x38], ecx
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x38]
mov ecx, dword [0x90a28c]
mov byte [0x90b191], al
mov dword [0x90aaac], eax
xor eax, eax
mov ax, word [ecx + 4]
push 1
push eax
call dword [sym.imp.WS2_32.dll_htons]
mov edi, 0x90a278
push eax
mov eax, dword [esp + 0x40]
push 0x100007f
call fcn.00453ff0
mov edx, dword [0x887734]
mov ax, word [edx + 0x241dc]
mov cx, word [edx + 0x1e604]
movzx edi, ax
push edi
movzx edi, cx
push edi
push str.Set_Key_with__d___d_n
call fcn.004d2e60
mov word [0x5e46c8], cx
mov word [0x5e46d0], ax
mov word [0x5e46d8], cx
mov word [0x5e46e0], ax
push 9
mov byte [edx + 0x242a0], 0
call fcn.00413d00
mov eax, dword [0x887acc]
mov edx, dword [0x887734]
add esp, 0x10
test eax, eax
mov dword [edx + 0x1ff68], 0xffffffff
je 0x4d441c
mov ebx, eax
call fcn.00408380
mov ebx, dword [esp + 0x24]
jmp 0x4d4426
push 0x903658
call fcn.00406610
mov eax, dword [0x887734]
mov ecx, dword [eax + 0x1a764]
mov dword [esp + 0x14], ecx
call fcn.004ce8c0
mov edi, eax
lea eax, [edi + 0x34]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [edi + 0x30]
test al, al
je 0x4d445e
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4d4491
mov eax, dword [edi + 0x2c]
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x24]
mov edi, dword [edi + 0x1c]
xor eax, ecx
mov ecx, eax
shr ecx, 3
mov ecx, dword [edx + ecx*4]
mov edx, dword [edi + eax*4]
mov eax, dword [esp + 0x18]
xor ecx, edx
push eax
mov dword [esp + 0x18], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, byte [esp + 0x14]
test al, al
je 0x4d44b9
mov edx, dword [0x887734]
mov eax, dword [edx + 0x1a764]
push 1
lea ecx, [esp + 0x14]
push ecx
push eax
mov byte [esp + 0x1c], 0
call fcn.004ce8c0
mov esi, eax
call fcn.0040aeb0
mov esi, dword [ebp + 0x10]
mov ecx, dword [0x887734]
movzx edx, byte [ecx + 0x24285]
imul edx, edx, 0x31
mov eax, 0xffffffea
sub eax, edx
mov edx, dword [ebp + 8]
sub eax, ebx
add edx, eax
xor eax, eax
mov byte [esp + 0x90], 0
mov ecx, 0x3f
lea edi, [esp + 0x91]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
xor ebx, ebx
test edx, edx
mov dword [ebp + 8], edx
jle 0x4d455b
lea ecx, [ecx]
mov cl, byte [ebx + esi]
cmp cl, 0xa
jne 0x4d454b
lea eax, [esp + 0x90]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4d4512
push 1
push 0
lea ecx, [esp + 0x98]
push ecx
push 0
push 0
sub eax, edx
mov edx, dword [0x887734]
push 2
push edx
call fcn.004218d0
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x90]
rep stosd dword es:[edi], eax
jmp 0x4d4553
mov byte [esp + eax + 0x90], cl
inc eax
mov ecx, dword [ebp + 8]
inc ebx
cmp ebx, ecx
jl 0x4d4500
lea eax, [esp + 0x90]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4d4565
push 1
push 0
lea ecx, [esp + 0x98]
push ecx
push 0
push 0
sub eax, edx
mov edx, dword [0x887734]
push 2
push edx
call fcn.004218d0
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov byte [esi + 0x11], cl
cmp word [eax], 0x1d
mov eax, dword [0x887734]
jne 0x4d45c2
mov edx, dword [esi + 8]
mov dword [eax + edx*4 + 0x23b74], ecx
mov dword [esi + 8], 0xffffffff
lea ecx, [eax + 0x1a760]
call fcn.0052c2f0
test al, al
je 0x4d45e4
mov edi, dword [0x887734]
add edi, 0x1a760
xor al, al
call fcn.00417e70
mov eax, dword [0x887734]
cmp byte [eax + 0x1ff64], 2
mov eax, 0x90bee0
push 1
jne 0x4d45fd
push 0x28
jmp 0x4d45ff
push 0x20
call fcn.004d07e0
push 1
push 0x1f
mov eax, 0x90bee0
call fcn.004d07e0
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
sub eax, 0x2121
cmp eax, 0x12
ja case.default.0x4d62d3
movzx ecx, byte [eax + 0x4d6584]
jmp dword [ecx*4 + 0x4d6570]
mov edx, dword [ebp + 0x10]
cmp byte [edx], 0
je case.default.0x4d62d3
push 0
push 0xc3500
push 0x88a3dc
call fcn.004475f0
mov esi, eax
call fcn.00414320
jmp 0x4d6553
push 0
push 0x5e5a88
push 0x5e4138
push 0
call fcn.004cecd0
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.00554aa1
add esp, 0x14
test eax, eax
mov dword [esp + 0x14], eax
je case.default.0x4d62d3
push 0
push 0x5e59d8
push 0x5e4138
push 0
call fcn.004cecd0
mov ebx, 0xc8
mov edi, eax
call fcn.004032b0
push eax
call fcn.00554aa1
add esp, 0x14
test eax, eax
je 0x4d46d9
mov esi, eax
call fcn.004ff750
mov esi, dword [esp + 0x24]
mov eax, dword [ebp + 0x10]
cmp word [eax], 0
jne 0x4d4fe3
mov ecx, dword [0x887734]
mov byte [ecx + 0x24114], 1
call fcn.004d7940
mov eax, dword [0x887734]
add eax, 0x2603c
call fcn.0041a120
mov eax, 0x90a278
call fcn.00453050
mov ecx, dword [0x887734]
mov ebx, dword [ebp + 0x10]
mov byte [ecx + 0x1a67c], 0
movzx eax, byte [ebx + 2]
add ebx, 2
lea edi, [ecx + 0x1a680]
call fcn.00417c30
mov edi, dword [0x887734]
movzx eax, byte [ebx]
add edi, 0x1a674
call fcn.00417c30
mov ecx, dword [0x887734]
inc ebx
add ecx, 0x1a674
mov dword [ebp + 0x10], ebx
call fcn.0042e300
mov ebx, eax
mov eax, 0x90a278
call fcn.00452ff0
mov eax, dword [0x887734]
lea ecx, [eax + 0x1a674]
lea ebx, [eax + 0x77744]
call fcn.0042e300
mov edx, dword [0x887734]
lea edi, [edx + eax*8 + 0x25f8c]
mov ecx, ebx
call fcn.0042e330
mov ecx, dword [0x887734]
add ecx, 0x1a674
call fcn.0042e300
mov ebx, dword [0x887734]
lea ecx, [ebx + 0x2603c]
call fcn.0041a170
mov eax, dword [ebp + 0x10]
movzx ecx, word [eax]
mov dword [ebx + 0x241dc], ecx
xor ecx, ecx
mov word [esi + 0x114], cx
mov dword [esi + 0x11c], ecx
mov byte [esi + 0x113], 2
xor edx, edx
add eax, 2
lea ecx, [ebx + 0x244e2]
mov dword [ecx], edx
mov dword [ecx + 4], edx
mov dl, byte [eax]
inc eax
mov byte [ebx + 0x24284], dl
mov cl, byte [eax]
movzx edx, cl
inc eax
mov esi, eax
mov dword [ebp + 0x10], eax
mov ecx, edx
mov eax, ecx
shr ecx, 2
lea edi, [ebx + 0x241e0]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp + 0x10]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
add eax, edx
mov byte [ebx + 0x24260], 0
mov cl, byte [eax]
mov byte [ebx + 0x24274], cl
mov eax, dword [eax + 1]
lea edi, [ebx + 0x24278]
call fcn.00417c30
mov eax, dword [0x887734]
mov bl, 1
mov byte [eax + 0x24285], bl
or edx, 0xffffffff
lea ecx, [eax + 0x242ad]
mov dword [ecx], edx
mov dword [ecx + 4], edx
lea ecx, [eax + 0x1a674]
lea esi, [eax + 0x19f01]
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [eax + edx*4 + 0x242fd]
lea ecx, [ecx]
mov dl, byte [esi]
inc esi
mov byte [ecx], dl
inc ecx
test dl, dl
jne 0x4d4870
lea ecx, [eax + 0x1a674]
lea esi, [eax + 0x244c8]
call fcn.0042e300
mov ecx, dword [0x887734]
mov dl, byte [esi]
mov byte [ecx + eax*2 + 0x244ca], dl
lea esi, [ecx + 0x244c9]
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov dl, byte [esi]
mov byte [ecx + eax*2 + 0x244cb], dl
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov byte [eax + ecx + 0x244da], 0
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov byte [eax + ecx + 0x244e2], bl
lea esi, [ecx + 0x19ee4]
add ecx, 0x1a674
call fcn.0042e300
mov edx, dword [0x887734]
add eax, 0x404d
lea ecx, [edx + eax*8]
add ecx, eax
lea esp, [esp]
mov al, byte [esi]
inc esi
mov byte [ecx], al
inc ecx
test al, al
jne 0x4d4910
lea ecx, [edx + 0x19f40]
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x245ac], esi
lea esi, [ecx + 0x19f16]
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x244ea], dx
lea esi, [ecx + 0x19f18]
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x244fa], dx
add ecx, 0x19f28
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x2454c], esi
add ecx, 0x19f30
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x2456c], esi
add ecx, 0x19f38
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x2458c], esi
lea esi, [ecx + 0x19f1a]
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x2451a], dx
lea esi, [ecx + 0x19f24]
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x2450a], dx
add ecx, 0x19f1c
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x2452c], esi
add ecx, 0x1a62c
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, dword [0x887734]
mov word [ecx + eax*8 + 0x24408], si
add ecx, 0x1a634
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, dword [0x887734]
mov word [ecx + eax*8 + 0x2440a], si
add ecx, 0x1a63c
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, dword [0x887734]
mov word [ecx + eax*8 + 0x2440c], si
add ecx, 0x1a644
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, dword [0x887734]
mov word [ecx + eax*8 + 0x2440e], si
add ecx, 0x1a64c
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, eax
mov eax, dword [0x887734]
shl ecx, 4
mov dword [ecx + eax + 0x24448], esi
lea ecx, [eax + 0x1a654]
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov edx, eax
mov eax, dword [0x887734]
shl edx, 4
lea ecx, [eax + 0x1a65c]
mov dword [edx + eax + 0x2444c], esi
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, eax
mov eax, dword [0x887734]
add ecx, 0x2445
shl ecx, 4
mov dword [ecx + eax], esi
lea ecx, [eax + 0x1a664]
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov edx, eax
mov eax, dword [0x887734]
shl edx, 4
lea ecx, [eax + 0x1a674]
mov dword [edx + eax + 0x24454], esi
call fcn.0042e300
mov ecx, dword [0x887734]
xor esi, esi
mov dword [ecx + eax*4 + 0x2524c], esi
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x2526c], esi
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x25f4c], esi
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x25f6c], esi
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x25f0c], esi
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x25f2c], esi
mov edi, 0x1a088
mov edi, edi
lea ecx, [edi + ecx - 0xa0]
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov ebx, eax
call fcn.0042e300
lea eax, [eax + eax*4]
lea ecx, [esi + eax*4]
mov eax, dword [0x887734]
mov dword [eax + ecx*4 + 0x245cc], ebx
lea ecx, [edi + eax]
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov ebx, eax
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [esi + edx*4]
mov dword [eax + ecx*4 + 0x2484c], ebx
lea ecx, [eax + 0x1a674]
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [esi + edx*4]
lea ebx, [eax + ecx*4 + 0x2484c]
lea ecx, [eax + 0x1a674]
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [esi + edx*4]
mov ecx, dword [eax + ecx*4 + 0x245cc]
add ecx, dword [ebx]
mov dword [esp + 0x14], ecx
lea ecx, [eax + 0x1a674]
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [esi + edx*4]
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 0x24fcc], edx
lea ecx, [eax + 0x1a674]
call fcn.0042e300
mov ecx, dword [0x887734]
lea ebx, [ecx + eax*4 + 0x2524c]
add ecx, 0x1a674
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [esi + edx*4]
mov edx, dword [eax + ecx*4 + 0x245cc]
add dword [ebx], edx
lea ecx, [eax + 0x1a674]
call fcn.0042e300
mov ecx, dword [0x887734]
lea ebx, [ecx + eax*4 + 0x2526c]
add ecx, 0x1a674
call fcn.0042e300
lea eax, [eax + eax*4]
lea ecx, [esi + eax*4]
mov eax, dword [0x887734]
mov edx, dword [eax + ecx*4 + 0x2484c]
add dword [ebx], edx
lea ecx, [edi + eax + 0x280]
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov ebx, eax
call fcn.0042e300
lea eax, [eax + eax*4]
lea ecx, [esi + eax*4]
mov eax, dword [0x887734]
mov dword [eax + ecx*4 + 0x2528c], ebx
lea ecx, [edi + eax + 0x320]
call fcn.0042e300
mov ebx, eax
mov ecx, dword [0x887734]
add ecx, 0x1a674
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [esi + edx*4]
mov dword [eax + ecx*4 + 0x2550c], ebx
lea ecx, [eax + 0x1a674]
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [esi + edx*4]
lea ebx, [eax + ecx*4 + 0x2550c]
lea ecx, [eax + 0x1a674]
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [esi + edx*4]
mov ecx, dword [eax + ecx*4 + 0x2528c]
add ecx, dword [ebx]
mov dword [esp + 0x14], ecx
lea ecx, [eax + 0x1a674]
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [esi + edx*4]
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 0x25c8c], edx
lea ecx, [eax + 0x1a674]
call fcn.0042e300
mov ecx, dword [0x887734]
lea ebx, [ecx + eax*4 + 0x25f0c]
add ecx, 0x1a674
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [esi + edx*4]
mov edx, dword [eax + ecx*4 + 0x2528c]
add dword [ebx], edx
lea ecx, [eax + 0x1a674]
call fcn.0042e300
mov ecx, dword [0x887734]
lea ebx, [ecx + eax*4 + 0x25f2c]
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
lea eax, [eax + eax*4]
lea edx, [esi + eax*4]
mov eax, dword [ecx + edx*4 + 0x2550c]
mov edx, dword [ebx]
add edx, eax
add edi, 8
inc esi
cmp edi, 0x1a128
mov dword [ebx], edx
jl 0x4d4c80
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
lea esi, [ecx + eax*4 + 0x25f4c]
add ecx, 0x1a594
call fcn.0042e300
mov edx, dword [esi]
mov ecx, dword [0x887734]
add edx, eax
add ecx, 0x1a674
mov dword [esi], edx
call fcn.0042e300
mov ecx, dword [0x887734]
lea esi, [ecx + eax*4 + 0x25f6c]
add ecx, 0x1a58c
call fcn.0042e300
mov ecx, dword [esi]
push 0x257
xor ebx, ebx
push 0x31f
add ecx, eax
push ebx
mov dword [esi], ecx
push ebx
mov ecx, 0x903090
mov byte [0x887ae5], bl
call fcn.00537470
mov esi, dword [0x887734]
mov ax, word [esi + 0x241dc]
mov cx, word [esi + 0x1e604]
call fcn.00453020
mov eax, dword [0x887acc]
cmp eax, ebx
mov byte [esi + 0x242a0], bl
mov dword [esi + 0x1ff68], 0xffffffff
je 0x4d4fa4
mov ebx, eax
call fcn.00408380
jmp 0x4d4fae
push 0x903658
call fcn.00406610
mov ecx, dword [0x887734]
add ecx, 0x77b90
call fcn.0052c2f0
test al, al
jne case.default.0x4d62d3
call fcn.004d7aa0
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [esp + 0x14]
push ecx
call fcn.005064a0
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [ebp + 0x10]
mov ax, word [edx]
test ax, ax
jne 0x4d56c1
mov eax, 0x90a278
call fcn.00453050
mov edx, dword [0x887734]
call fcn.004217f0
lea eax, [edx + 0x2603c]
call fcn.0041a120
mov ebx, dword [ebp + 0x10]
xor eax, eax
lea ecx, [edx + 0x244e2]
mov dword [ecx], eax
mov dword [ecx + 4], eax
movzx eax, byte [ebx + 2]
add ebx, 2
lea edi, [edx + 0x1a680]
call fcn.00417c30
mov edi, dword [0x887734]
movzx eax, byte [ebx + 1]
inc ebx
add edi, 0x1a674
call fcn.00417c30
mov ecx, dword [0x887734]
inc ebx
add ecx, 0x1a674
mov dword [ebp + 0x10], ebx
call fcn.0042e300
mov ebx, eax
mov eax, 0x90a278
call fcn.00452ff0
mov eax, dword [0x887734]
mov edi, dword [ebp + 0x10]
movzx edx, word [edi]
xor ecx, ecx
mov dword [eax + 0x241dc], edx
mov word [esi + 0x114], cx
mov dword [esi + 0x11c], ecx
mov byte [esi + 0x113], 2
mov cl, byte [edi + 2]
movzx edx, cl
add edi, 2
inc edi
mov dword [ebp + 0x10], edi
mov ecx, edx
mov ebx, ecx
shr ecx, 2
mov esi, edi
lea edi, [eax + 0x241e0]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0x10]
mov byte [eax + 0x24260], 0
mov byte [edx + eax + 0x241e0], 0
mov cl, byte [esi + edx]
add esi, edx
mov byte [eax + 0x24274], cl
lea edi, [eax + 0x24278]
xor eax, eax
mov dword [esp + 0x28], edx
inc esi
call fcn.00417c30
mov edi, dword [0x887734]
mov eax, dword [esi]
add edi, 0x24278
call fcn.00417c30
mov edx, dword [esi + 4]
mov edi, dword [0x887734]
add esi, 4
mov dword [edi + 0x242ad], edx
mov eax, dword [esi + 4]
add esi, 8
mov dword [edi + 0x242b1], eax
mov cl, byte [esi]
inc esi
mov byte [edi + 0x24284], cl
mov dl, byte [esi]
push str.Join_ROOM___n
mov byte [edi + 0x24285], dl
inc esi
call fcn.004d2e60
add esp, 4
mov al, byte [edi + 0x24285]
test al, al
mov dword [esp + 0x20], 0
jbe 0x4d54f6
lea ecx, [ecx]
mov al, byte [esi]
movzx ebx, al
lea ecx, [edi + 0x2603c]
mov eax, ebx
inc esi
call fcn.0041a170
mov ecx, esi
mov edx, dword [ecx]
lea eax, [ebx + ebx*4]
shl eax, 2
mov dword [esp + 0x14], eax
lea eax, [eax + edi + 0x242fd]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
mov edx, dword [esp + 0x14]
mov dword [eax + 8], ecx
add esi, 0xc
mov byte [edx + edi + 0x24309], 0
mov cl, byte [esi]
mov eax, dword [esi + 1]
test cl, cl
sete byte [esp + 0x10]
inc esi
mov dword [edi + ebx*4 + 0x243a8], eax
mov cx, word [esi + 4]
add esi, 4
mov word [edi + ebx*2 + 0x243e8], cx
mov edx, dword [esi + 2]
add esi, 2
mov dword [edi + ebx*4 + 0x243c8], edx
mov ax, word [esi + 4]
add esi, 4
mov word [edi + ebx*2 + 0x243f8], ax
mov cl, byte [esi + 2]
add esi, 2
mov byte [edi + ebx*2 + 0x244ca], cl
mov dl, byte [esi + 1]
inc esi
mov byte [edi + ebx*2 + 0x244cb], dl
mov al, byte [esi + 1]
inc esi
lea ecx, [edi + 0x1a674]
mov byte [ebx + edi + 0x244da], al
inc esi
call fcn.0042e300
cmp ebx, eax
mov edi, dword [0x887734]
jne 0x4d523a
mov cl, byte [ebx + edi + 0x244da]
mov byte [edi + 0x1a67c], cl
mov dl, byte [esi]
mov byte [ebx + edi + 0x244e2], dl
mov ecx, dword [esi + 1]
inc esi
lea eax, [edi + ebx*8 + 0x20268]
mov dword [ebx + eax + 0x404d], ecx
mov edx, dword [esi + 4]
mov dword [ebx + eax + 0x4051], edx
lea eax, [edi + ebx*8]
mov dl, byte [eax + ebx + 0x242bc]
add eax, ebx
mov cl, 0x80
test cl, dl
je 0x4d5280
test byte [eax + 0x242bb], cl
jne 0x4d5280
mov byte [eax + 0x242bc], 0
add esi, 8
mov byte [eax + 0x242bd], 0
mov cx, word [esi]
add esi, 2
add cx, 5
mov word [edi + ebx*2 + 0x244ea], cx
mov dx, word [esi]
add esi, 2
add dx, 5
mov word [edi + ebx*2 + 0x244fa], dx
mov ax, word [esi]
add esi, 2
add ax, 5
mov word [edi + ebx*2 + 0x2451a], ax
mov cx, word [esi]
add esi, 2
mov word [edi + ebx*2 + 0x2450a], cx
movzx edx, word [esi]
add esi, 2
mov dword [esp + 0x14], edx
mov dword [ebp + 0x10], esi
xor eax, eax
lea ecx, [ecx]
cmp eax, 3
jne 0x4d52f5
lea ecx, [ebx*4 + 0x12204]
mov word [edi + ecx*2 + 6], 0x8000
jmp 0x4d530e
mov cl, byte [esp + 0x10]
neg cl
lea edx, [eax + ebx*4 + 0x12204]
sbb ecx, ecx
and ecx, 0x8000
mov word [edi + edx*2], cx
lea ecx, [eax + ebx*4 + 0x9112]
inc eax
cmp eax, 4
mov dword [edi + ecx*4], 0
jl 0x4d52e0
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x4d5463
mov dword [esp + 0x18], eax
mov ecx, dword [esi]
cmp ecx, 0x31999
mov dword [esp + 0x1c], ecx
jle 0x4d5409
cmp ecx, 0x34000
jge 0x4d5409
lea ecx, [esp + 0x90]
call fcn.00412740
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x3f4], 0
mov eax, dword [0x887734]
push edx
push eax
mov al, 1
lea edi, [esp + 0x98]
call fcn.00429540
movzx eax, byte [esp + 0x99]
dec eax
je 0x4d53bd
dec eax
jne 0x4d53ea
mov eax, dword [0x887734]
mov edx, dword [esp + 0x1c]
lea ecx, [ebx + 0x2445]
shl ecx, 4
mov dword [ecx + eax], edx
cmp dword [0x887aa0], 3
mov byte [ebx + eax + 0x25fd4], 1
je 0x4d53ea
push ebx
push eax
call fcn.0042d540
jmp 0x4d53ea
mov eax, dword [0x887734]
mov edx, dword [esp + 0x1c]
mov ecx, ebx
shl ecx, 4
mov dword [ecx + eax + 0x2444c], edx
cmp dword [0x887aa0], 3
mov byte [ebx + eax + 0x25fcc], 1
je 0x4d53ea
push ebx
push eax
call fcn.0042d420
lea ecx, [esp + 0x90]
mov dword [esp + 0x3f4], 0xffffffff
call fcn.00412cb0
mov edi, dword [0x887734]
jmp 0x4d544e
mov eax, ecx
sar eax, 0x10
and al, 0xf
and ecx, 0x7fff
cmp al, 3
jne 0x4d542e
or ecx, 0x8000
lea eax, [ebx*4 + 0x12204]
mov word [edi + eax*2 + 6], cx
jmp 0x4d544e
mov dl, byte [esp + 0x10]
neg dl
sbb edx, edx
and edx, 0x8000
or edx, ecx
movzx ecx, al
lea eax, [ebx*4 + 0x12204]
add ecx, eax
mov word [edi + ecx*2], dx
mov eax, dword [esp + 0x18]
add esi, 4
dec eax
mov dword [esp + 0x18], eax
jne 0x4d5332
mov dword [ebp + 0x10], esi
mov ecx, dword [edi + ebx*8 + 0x25f90]
mov dl, byte [esi]
push 1
lea eax, [esp + 0x14]
push eax
push ecx
mov byte [esp + 0x1c], dl
call fcn.004ce8c0
mov esi, eax
call fcn.0040aeb0
call fcn.00554f6c
cdq
mov ecx, 6
idiv ecx
mov ecx, dword [0x887734]
mov eax, dword [ecx + ebx*4 + 0x243c8]
mov edi, dword [ebp + 0x10]
inc edi
mov esi, ebx
mov dword [ebp + 0x10], edi
mov dword [ecx + ebx*4 + 0x25fdc], edx
xor edx, edx
mov dx, word [ecx + ebx*2 + 0x243f8]
push edx
push eax
mov ax, word [ecx + ebx*2 + 0x243e8]
mov ecx, dword [ecx + ebx*4 + 0x243a8]
mov edx, 0x90a278
call fcn.00453110
mov ecx, dword [esp + 0x20]
mov edi, dword [0x887734]
mov esi, dword [ebp + 0x10]
inc ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [edi + 0x24285]
cmp dword [esp + 0x20], ecx
jl 0x4d5170
lea ecx, [edi + 0x1a674]
call fcn.0042e300
mov ebx, eax
mov eax, 0x90a278
call fcn.00452ff0
mov edi, dword [0x887734]
mov ax, word [edi + 0x241dc]
mov cx, word [edi + 0x1e604]
call fcn.00453020
mov ebx, dword [0x887acc]
test ebx, ebx
mov byte [edi + 0x242a0], 0
mov dword [edi + 0x1ff68], 0xffffffff
je 0x4d5548
call fcn.00408380
jmp 0x4d5552
push 0x903658
call fcn.00406610
mov ecx, dword [0x887734]
add ecx, 0x1a760
call fcn.0052c2f0
test al, al
je 0x4d557a
mov edi, dword [0x887734]
add edi, 0x1a760
xor al, al
call fcn.00417e70
mov ebx, dword [0x887734]
movzx edx, byte [ebx + 0x24285]
mov edi, dword [esp + 0x28]
imul edx, edx, 0x31
mov eax, 0xffffffea
sub eax, edx
mov edx, dword [ebp + 8]
sub eax, edi
add edx, eax
xor eax, eax
mov byte [esp + 0x90], 0
mov ecx, 0x3f
lea edi, [esp + 0x91]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp + 8], edx
mov ecx, dword [ebp + 8]
stosb byte es:[edi], al
xor edx, edx
xor eax, eax
test ecx, ecx
mov dword [esp + 0x18], edx
jle 0x4d562d
lea esp, [esp]
mov cl, byte [edx + esi]
cmp cl, 0xa
jne 0x4d5619
lea eax, [esp + 0x90]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4d55e2
push 1
push 0
lea ecx, [esp + 0x98]
push ecx
push 0
push 0
push 2
sub eax, edx
push ebx
call fcn.004218d0
mov edx, dword [esp + 0x18]
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x90]
rep stosd dword es:[edi], eax
jmp 0x4d5621
mov byte [esp + eax + 0x90], cl
inc eax
mov ecx, dword [ebp + 8]
inc edx
cmp edx, ecx
mov dword [esp + 0x18], edx
jl 0x4d55d0
lea eax, [esp + 0x90]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4d5637
push 1
push 0
sub eax, edx
lea edx, [esp + 0x98]
push edx
push 0
push 0
push 2
push ebx
call fcn.004218d0
mov byte [ebx + 0x24114], 1
mov ebx, dword [ebx + 0x77b94]
call fcn.004ce8c0
mov esi, eax
lea edi, [esi + 0x34]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [esi + 0x30]
test al, al
push edi
je 0x4d5686
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4d56ab
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 0x24]
mov esi, dword [esi + 0x1c]
xor eax, ebx
mov ecx, eax
shr ecx, 3
mov ebx, dword [edx + ecx*4]
xor ebx, dword [esi + eax*4]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test bl, bl
jne 0x4d56ab
call fcn.004d7aa0
mov eax, dword [0x887734]
mov cl, byte [eax + 0x24285]
cmp cl, byte [eax + 0x24284]
jmp 0x4d654a
cmp ax, 0x1d
mov eax, dword [0x887734]
jne 0x4d56e1
mov edx, dword [esi + 8]
mov dword [eax + edx*4 + 0x23b74], 0
mov dword [esi + 8], 0xffffffff
lea ecx, [eax + 0x1a760]
jmp 0x4d3d2f
push 0
push 0x5e5a88
push 0x5e4138
push 0
call fcn.004cecd0
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.00554aa1
add esp, 0x14
test eax, eax
mov dword [esp + 0x18], eax
je case.default.0x4d62d3
push 0
push 0x5e7630
push 0x5e4138
push 0
call fcn.004cecd0
mov ebx, 0x22
mov edi, eax
call fcn.004032b0
push eax
call fcn.00554aa1
add esp, 0x14
test eax, eax
je case.default.0x4d62d3
mov eax, dword [ebp + 0x10]
cmp word [eax], 0
jne 0x4d6145
call fcn.004d7940
mov eax, dword [0x887734]
add eax, 0x2603c
call fcn.0041a120
mov eax, 0x90a278
call fcn.00453050
mov edx, dword [0x887734]
call fcn.004217f0
mov ebx, dword [ebp + 0x10]
mov byte [edx + 0x1a67c], 0
movzx eax, byte [ebx + 2]
add ebx, 2
lea edi, [edx + 0x1a680]
call fcn.00417c30
mov edi, dword [0x887734]
movzx eax, byte [ebx]
add edi, 0x1a674
call fcn.00417c30
mov ecx, dword [0x887734]
inc ebx
add ecx, 0x1a674
mov dword [ebp + 0x10], ebx
call fcn.0042e300
mov ebx, eax
mov eax, 0x90a278
call fcn.00452ff0
mov eax, dword [0x887734]
lea ecx, [eax + 0x1a674]
lea ebx, [eax + 0x77744]
call fcn.0042e300
mov ecx, dword [0x887734]
lea edi, [ecx + eax*8 + 0x25f8c]
mov ecx, ebx
call fcn.0042e330
mov ecx, dword [0x887734]
add ecx, 0x1a674
call fcn.0042e300
mov edi, dword [0x887734]
lea ecx, [edi + 0x2603c]
call fcn.0041a170
mov eax, dword [ebp + 0x10]
movzx edx, word [eax]
mov dword [edi + 0x241dc], edx
add eax, 2
mov dword [ebp + 0x10], eax
xor ebx, ebx
xor eax, eax
lea ecx, [edi + 0x244e2]
mov byte [esi + 0x113], 2
mov word [esi + 0x114], bx
mov dword [esi + 0x11c], ebx
mov dword [ecx], eax
mov dword [ecx + 4], eax
lea eax, [esi + 0x13]
mov edx, edi
sub edx, eax
add edx, 0x241e0
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x4d5865
lea eax, [esi + 0x93]
mov ecx, edi
sub ecx, eax
lea edx, [ecx + 0x24260]
nop
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x4d5880
mov esi, dword [esp + 0x18]
mov byte [edi + 0x24274], cl
mov eax, dword [esi + 0x8c]
add edi, 0x24278
call fcn.00417c30
mov dl, byte [esi + 0x90]
mov eax, dword [0x887734]
mov byte [eax + 0x24284], dl
or ecx, 0xffffffff
lea edx, [eax + 0x242ad]
mov byte [eax + 0x24285], 1
mov dword [edx], ecx
mov dword [edx + 4], ecx
lea ecx, [eax + 0x1a674]
lea esi, [eax + 0x19f01]
call fcn.0042e300
lea ecx, [eax + eax*4]
mov eax, dword [0x887734]
lea edi, [eax + ecx*4 + 0x242fd]
jmp 0x4d58f0
mov cl, byte [esi]
inc esi
mov byte [edi], cl
inc edi
test cl, cl
jne 0x4d58f0
lea ecx, [eax + 0x1a674]
lea esi, [eax + 0x244c8]
call fcn.0042e300
mov dl, byte [esi]
mov esi, dword [0x887734]
lea ecx, [esi + 0x1a674]
mov byte [esi + eax*2 + 0x244ca], dl
lea edi, [esi + 0x244c9]
call fcn.0042e300
mov cl, byte [edi]
mov esi, dword [0x887734]
mov byte [esi + eax*2 + 0x244cb], cl
lea ecx, [esi + 0x1a674]
call fcn.0042e300
mov ecx, dword [0x887734]
mov byte [eax + ecx + 0x244da], 0
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov byte [eax + ecx + 0x244e2], 1
lea edi, [ecx + 0x19ee4]
add ecx, 0x1a674
call fcn.0042e300
mov esi, dword [0x887734]
add eax, 0x404d
lea ecx, [esi + eax*8]
add ecx, eax
lea ecx, [ecx]
mov al, byte [edi]
inc edi
mov byte [ecx], al
inc ecx
test al, al
jne 0x4d5990
lea ecx, [esi + 0x19f40]
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x245ac], esi
lea esi, [ecx + 0x19f16]
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x244ea], dx
lea esi, [ecx + 0x19f18]
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x244fa], dx
add ecx, 0x19f28
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x2454c], esi
add ecx, 0x19f30
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x2456c], esi
add ecx, 0x19f38
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x2458c], esi
lea esi, [ecx + 0x19f1a]
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x2451a], dx
lea esi, [ecx + 0x19f24]
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x2450a], dx
add ecx, 0x19f1c
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x2452c], esi
add ecx, 0x1a62c
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, dword [0x887734]
mov word [ecx + eax*8 + 0x24408], si
add ecx, 0x1a634
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, dword [0x887734]
mov word [ecx + eax*8 + 0x2440a], si
add ecx, 0x1a63c
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, dword [0x887734]
mov word [ecx + eax*8 + 0x2440c], si
add ecx, 0x1a644
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, dword [0x887734]
mov word [ecx + eax*8 + 0x2440e], si
add ecx, 0x1a64c
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, eax
mov eax, dword [0x887734]
shl ecx, 4
mov dword [ecx + eax + 0x24448], esi
lea ecx, [eax + 0x1a654]
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov edx, eax
mov eax, dword [0x887734]
shl edx, 4
lea ecx, [eax + 0x1a65c]
mov dword [edx + eax + 0x2444c], esi
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov ecx, eax
mov eax, dword [0x887734]
add ecx, 0x2445
shl ecx, 4
mov dword [ecx + eax], esi
lea ecx, [eax + 0x1a664]
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
mov edx, eax
mov eax, dword [0x887734]
shl edx, 4
lea ecx, [eax + 0x1a674]
mov dword [edx + eax + 0x24454], esi
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x2524c], ebx
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x2526c], ebx
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x25f4c], ebx
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x25f6c], ebx
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x25f0c], ebx
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
mov dword [ecx + eax*4 + 0x25f2c], ebx
xor edi, edi
mov ebx, 0x1a088
mov edi, edi
lea ecx, [ebx + ecx - 0xa0]
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
lea eax, [eax + eax*4]
lea ecx, [edi + eax*4]
mov eax, dword [0x887734]
mov dword [eax + ecx*4 + 0x245cc], esi
lea ecx, [ebx + eax]
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [edi + edx*4]
mov dword [eax + ecx*4 + 0x2484c], esi
lea ecx, [eax + 0x1a674]
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [edi + edx*4]
lea esi, [eax + ecx*4 + 0x2484c]
lea ecx, [eax + 0x1a674]
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [edi + edx*4]
mov ecx, dword [eax + ecx*4 + 0x245cc]
add ecx, dword [esi]
mov dword [esp + 0x14], ecx
lea ecx, [eax + 0x1a674]
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [edi + edx*4]
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 0x24fcc], edx
lea ecx, [eax + 0x1a674]
call fcn.0042e300
mov ecx, dword [0x887734]
lea esi, [ecx + eax*4 + 0x2524c]
add ecx, 0x1a674
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [edi + edx*4]
mov edx, dword [eax + ecx*4 + 0x245cc]
add dword [esi], edx
lea ecx, [eax + 0x1a674]
call fcn.0042e300
mov ecx, dword [0x887734]
lea esi, [ecx + eax*4 + 0x2526c]
add ecx, 0x1a674
call fcn.0042e300
lea eax, [eax + eax*4]
lea ecx, [edi + eax*4]
mov eax, dword [0x887734]
mov edx, dword [eax + ecx*4 + 0x2484c]
add dword [esi], edx
lea ecx, [ebx + eax + 0x280]
call fcn.0042e300
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov esi, eax
call fcn.0042e300
lea eax, [eax + eax*4]
lea ecx, [edi + eax*4]
mov eax, dword [0x887734]
mov dword [eax + ecx*4 + 0x2528c], esi
lea ecx, [ebx + eax + 0x320]
call fcn.0042e300
mov esi, eax
mov ecx, dword [0x887734]
add ecx, 0x1a674
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [edi + edx*4]
mov dword [eax + ecx*4 + 0x2550c], esi
lea ecx, [eax + 0x1a674]
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [edi + edx*4]
lea esi, [eax + ecx*4 + 0x2550c]
lea ecx, [eax + 0x1a674]
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [edi + edx*4]
mov ecx, dword [eax + ecx*4 + 0x2528c]
add ecx, dword [esi]
mov dword [esp + 0x14], ecx
lea ecx, [eax + 0x1a674]
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [edi + edx*4]
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 0x25c8c], edx
lea ecx, [eax + 0x1a674]
call fcn.0042e300
mov ecx, dword [0x887734]
lea esi, [ecx + eax*4 + 0x25f0c]
add ecx, 0x1a674
call fcn.0042e300
lea edx, [eax + eax*4]
mov eax, dword [0x887734]
lea ecx, [edi + edx*4]
mov edx, dword [eax + ecx*4 + 0x2528c]
add dword [esi], edx
lea ecx, [eax + 0x1a674]
call fcn.0042e300
mov ecx, dword [0x887734]
lea esi, [ecx + eax*4 + 0x25f2c]
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
lea eax, [eax + eax*4]
lea edx, [edi + eax*4]
mov eax, dword [ecx + edx*4 + 0x2550c]
mov edx, dword [esi]
add edx, eax
add ebx, 8
inc edi
cmp ebx, 0x1a128
mov dword [esi], edx
jl 0x4d5d00
add ecx, 0x1a674
call fcn.0042e300
mov ecx, dword [0x887734]
lea esi, [ecx + eax*4 + 0x25f4c]
add ecx, 0x1a594
call fcn.0042e300
mov edx, dword [esi]
mov ecx, dword [0x887734]
add edx, eax
add ecx, 0x1a674
mov dword [esi], edx
call fcn.0042e300
mov ecx, dword [0x887734]
lea esi, [ecx + eax*4 + 0x25f6c]
add ecx, 0x1a58c
call fcn.0042e300
mov ecx, dword [esi]
push 0x257
push 0x31f
add ecx, eax
push 0
mov dword [esi], ecx
push 0
mov ecx, 0x903090
mov byte [0x887ae5], 0
call fcn.00537470
mov ecx, dword [0x887abc]
mov esi, dword [0x887734]
mov byte [ecx + 8], 0
mov ax, word [esi + 0x241dc]
mov cx, word [esi + 0x1e604]
call fcn.00453020
push 9
mov byte [esi + 0x242a0], 0
call fcn.00413d00
mov ebx, dword [0x887acc]
mov edx, dword [0x887734]
add esp, 4
test ebx, ebx
mov dword [edx + 0x1ff68], 0xffffffff
je 0x4d603f
call fcn.00408380
jmp 0x4d6049
push 0x903658
call fcn.00406610
mov edx, dword [ebp + 8]
mov esi, dword [0x887734]
xor eax, eax
mov byte [esp + 0x90], 0
mov ecx, 0x7f
lea edi, [esp + 0x91]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
sub edx, 5
stosb byte es:[edi], al
xor eax, eax
xor ebx, ebx
test edx, edx
mov dword [ebp + 8], edx
jle 0x4d60d8
jmp 0x4d6080
mov ecx, dword [ebp + 0x10]
mov cl, byte [ebx + ecx]
cmp cl, 0xa
jne 0x4d60c8
lea eax, [esp + 0x90]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4d6095
push 1
push 0
sub eax, edx
lea edx, [esp + 0x98]
push edx
push 0
push 0
push 2
push esi
call fcn.004218d0
mov ecx, 0x80
xor eax, eax
lea edi, [esp + 0x90]
rep stosd dword es:[edi], eax
jmp 0x4d60d0
mov byte [esp + eax + 0x90], cl
inc eax
mov ecx, dword [ebp + 8]
inc ebx
cmp ebx, ecx
jl 0x4d6080
lea eax, [esp + 0x90]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4d60e2
push 1
push 0
lea ecx, [esp + 0x98]
push ecx
push 0
push 0
push 2
sub eax, edx
push esi
call fcn.004218d0
lea ecx, [esi + 0x1a66c]
call fcn.0052c2f0
mov ecx, dword [0x887734]
add ecx, 0x1a674
mov bl, al
call fcn.0042e300
mov edx, dword [0x887734]
mov byte [eax + edx + 0x2439d], bl
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [0x887734]
cmp byte [eax + 0x1ff64], 2
mov eax, 0x90bee0
push 1
jne 0x4d615e
push 0x28
jmp 0x4d6160
push 0x20
call fcn.004d07e0
push 1
push 0x1f
mov eax, 0x90bee0
call fcn.004d07e0
mov ecx, dword [esp + 0x18]
push ecx
call fcn.005064a0
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ebx, dword [0x887734]
mov eax, dword [ebp + 0x10]
movzx esi, byte [ebx + 0x23b70]
mov cx, word [eax]
add eax, 2
xor edx, edx
test esi, esi
jle case.default.0x4d62d3
movzx edi, cx
lea ecx, [ebx + 0x23b98]
lea ecx, [ecx]
cmp dword [ecx], edi
je 0x4d61e3
inc edx
add ecx, 4
cmp edx, esi
jl 0x4d61c0
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp edx, 0xffffffff
je case.default.0x4d62d3
movzx esi, byte [eax]
inc eax
test esi, esi
mov dword [esp + 0x18], esi
jne 0x4d6216
mov dword [ebx + edx*4 + 0x23b74], esi
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
xor ecx, ecx
mov dword [ebx + edx*4 + 0x23b74], 1
mov edi, edx
shl edi, 7
test esi, esi
setl cl
mov dword [esp + 0x14], edi
lea edi, [edi + ebx + 0x23bbc]
dec ecx
and ecx, esi
mov ebx, ecx
shr ecx, 2
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
add eax, ecx
lea edi, [esi + ecx]
mov esi, dword [0x887734]
mov byte [edi + esi + 0x23bbc], 0
mov cl, byte [eax]
mov byte [edx + esi + 0x2403c], cl
mov ecx, dword [eax + 1]
inc eax
mov dword [esi + edx*4 + 0x24048], ecx
mov cl, byte [eax + 4]
add eax, 4
inc eax
mov byte [edx + esi + 0x2406c], cl
mov cl, byte [eax]
inc eax
mov byte [edx + esi + 0x2407e], cl
mov cl, byte [eax]
inc eax
mov byte [edx + esi + 0x24087], cl
mov cl, byte [eax]
mov byte [edx + esi + 0x24090], cl
mov al, byte [eax + 1]
mov byte [edx + esi + 0x24099], al
jmp 0x4d64b6
cmp eax, 0x3010
jg 0x4d6545
je 0x4d6504
sub eax, 0x21f1
cmp eax, 6
ja case.default.0x4d62d3
jmp dword [eax*4 + 0x4d6598]
mov ecx, dword [ebp + 0x10]
mov si, word [ecx]
mov edi, dword [0x887734]
mov ecx, edi
call fcn.004220b0
cmp eax, 0xffffffff
je case.default.0x4d62d3
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 8], eax
jne 0x4d6306
mov dword [ecx + 8], 0xffffffff
mov dword [edi + eax*4 + 0x23b74], 0
jmp 0x4d64b6
mov edi, dword [ebp + 0x10]
mov ecx, dword [0x887734]
xor esi, esi
mov si, word [edi]
add edi, 2
call fcn.004220b0
cmp eax, 0xffffffff
je case.default.0x4d62d3
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 8], eax
jne 0x4d6345
mov dword [ecx + 8], 0xffffffff
mov edx, dword [ebp + 8]
mov esi, dword [0x887734]
xor ebx, ebx
lea ecx, [edx - 2]
test ecx, ecx
setl bl
shl eax, 7
add eax, esi
mov esi, edi
lea edi, [eax + 0x23bbc]
dec ebx
and ecx, ebx
mov ebx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [eax + edx + 0x23bba], 0
jmp 0x4d64b6
mov edi, dword [ebp + 0x10]
mov ebx, dword [0x887734]
xor esi, esi
mov si, word [edi]
mov ecx, ebx
add edi, 2
call fcn.004220b0
cmp eax, 0xffffffff
je case.default.0x4d62d3
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 8], eax
jne 0x4d63b4
mov dword [ecx + 8], 0xffffffff
mov dl, byte [edi]
mov byte [eax + ebx + 0x2403c], dl
jmp 0x4d64b6
mov edi, dword [ebp + 0x10]
mov ebx, dword [0x887734]
xor esi, esi
mov si, word [edi]
mov ecx, ebx
add edi, 2
call fcn.004220b0
cmp eax, 0xffffffff
je case.default.0x4d62d3
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 8], eax
jne 0x4d63f3
mov dword [ecx + 8], 0xffffffff
mov ecx, dword [edi]
mov dword [ebx + eax*4 + 0x24048], ecx
jmp 0x4d64b6
mov edi, dword [ebp + 0x10]
mov ebx, dword [0x887734]
xor esi, esi
mov si, word [edi]
mov ecx, ebx
add edi, 2
call fcn.004220b0
cmp eax, 0xffffffff
je case.default.0x4d62d3
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 8], eax
jne 0x4d6432
mov dword [ecx + 8], 0xffffffff
mov dl, byte [edi]
mov byte [eax + ebx + 0x2407e], dl
jmp 0x4d64b6
mov edi, dword [ebp + 0x10]
mov ebx, dword [0x887734]
xor esi, esi
mov si, word [edi]
mov ecx, ebx
add edi, 2
call fcn.004220b0
cmp eax, 0xffffffff
je case.default.0x4d62d3
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 8], eax
jne 0x4d6471
mov dword [ecx + 8], 0xffffffff
mov cl, byte [edi]
mov byte [eax + ebx + 0x24087], cl
jmp 0x4d64b6
mov edi, dword [ebp + 0x10]
mov ebx, dword [0x887734]
xor esi, esi
mov si, word [edi]
mov ecx, ebx
add edi, 2
call fcn.004220b0
cmp eax, 0xffffffff
je case.default.0x4d62d3
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 8], eax
jne 0x4d64ad
mov dword [ecx + 8], 0xffffffff
mov dl, byte [edi]
mov byte [eax + ebx + 0x24090], dl
push 0
push 0x5e5a88
push 0x5e4138
push 0
call fcn.004cecd0
mov ebx, 0x1f
mov edi, eax
call fcn.004032b0
push eax
call fcn.00554aa1
add esp, 0x14
test eax, eax
je case.default.0x4d62d3
mov edi, eax
call fcn.005068a0
mov ecx, dword [esp + 0x3ec]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [0x8876cc]
test ecx, ecx
je case.default.0x4d62d3
call fcn.004f9e10
mov esi, dword [ebp + 0x10]
movzx ecx, byte [esi]
call fcn.004f9010
movzx edx, byte [esi]
mov eax, dword [0x887734]
mov cl, 1
mov byte [edx + eax + 0x244e2], cl
cmp byte [eax + 0x24114], cl
jne case.default.0x4d62d3
mov cl, byte [eax + 0x24285]
cmp cl, byte [eax + 0x24284]
jmp 0x4d654a
cmp eax, 0x3432
jne case.default.0x4d62d3
push 9
call fcn.00413d00
add esp, 4
mov ecx, dword [esp + 0x3ec]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc