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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5622f2
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3d8
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.0046c4c0
add esp, 8
cmp eax, 0x21f0
jg 0x4ce6e4
je 0x4ce5c1
cmp eax, 0x2111
jg 0x4cca60
je 0x4cc1b3
cmp eax, 0x201f
jg 0x4cbaab
je 0x4cba02
cmp eax, 0x1101
je 0x4cb72a
cmp eax, 0x2001
jne case.default.0x4ce703
mov eax, dword [ebp + 0x10]
cmp word [eax], 0
jne case.default.0x4ce703
push 0
push 0x5d995c
push 0x5d80f8
push 0
call fcn.004c75b0
mov ebx, 0xc8
mov edi, eax
call fcn.00403290
push eax
call fcn.0054a821
add esp, 0x14
test eax, eax
je 0x4cb685
mov esi, eax
call fcn.004f7f40
mov ecx, dword [0x87b40c]
mov eax, dword [ecx + 0x778d8]
cmp eax, 5
jne 0x4cb6ad
cmp byte [ecx + 0x1fecc], 2
mov bl, 1
mov eax, 0x8ff808
je 0x4cb6b9
mov edi, 0x20
jmp 0x4cb6be
cmp eax, 6
jne 0x4cb6c3
mov bl, 1
mov eax, 0x8ff808
mov edi, 0x28
call fcn.004c90a0
mov bl, 1
mov edi, 0x1f
mov eax, 0x8ff808
call fcn.004c90a0
mov edi, 0x20
mov eax, 0x8ff808
call fcn.004c90a0
mov ebx, dword [0x87b7a4]
test ebx, ebx
je 0x4cb709
call fcn.004082f0
mov ecx, dword [esp + 0x3e4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0x8f6f90
call fcn.00406550
mov ecx, dword [esp + 0x3e4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov bl, 1
mov edi, 0x28
mov eax, 0x8ff808
call fcn.004c90a0
mov edi, 0x1f
mov eax, 0x8ff808
call fcn.004c90a0
mov edi, dword [ebp + 0x10]
cmp word [edi], 0
jne case.default.0x4ce703
push str.Recv_NS_GRANDPRIXACTIVE__0x2103__n
call fcn.0046c4c0
mov bx, word [edi + 2]
add edi, 2
add esp, 4
add edi, 2
test bx, bx
jbe 0x4cb827
movzx eax, bx
lea ecx, [eax + eax*2]
shl ecx, 3
push ecx
call fcn.00541c84
add esp, 4
test bx, bx
mov dword [esi + 0x298], eax
jbe 0x4cb827
movzx edx, bx
xor eax, eax
mov dword [esp + 0x1c], edx
mov edx, dword [edi]
mov ecx, dword [esi + 0x298]
mov dword [eax + ecx], edx
mov ecx, dword [esi + 0x298]
mov edx, dword [edi + 4]
add edi, 4
mov dword [eax + ecx + 4], edx
mov ecx, dword [esi + 0x298]
mov edx, dword [eax + ecx + 4]
test edx, edx
lea ecx, [eax + ecx + 4]
je 0x4cb7d2
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 0x4cb7a1
mov word [esi + 0x27a], bx
xor ebx, ebx
mov bx, word [edi]
add edi, 2
test bx, bx
mov dword [esp + 0x18], ebx
jbe 0x4cb917
movzx eax, bx
lea eax, [eax + eax*8]
shl eax, 2
push eax
call fcn.00541c84
add esp, 4
test bx, bx
mov dword [esi + 0x2c0], eax
jbe 0x4cb917
movzx ecx, bx
xor eax, eax
mov dword [esp + 0x1c], ecx
lea ecx, [ecx]
mov ecx, dword [edi]
mov edx, dword [esi + 0x2c0]
mov dword [eax + edx], ecx
mov edx, dword [esi + 0x2c0]
mov ecx, dword [edi + 4]
add edi, 4
mov dword [eax + edx + 4], ecx
mov edx, dword [esi + 0x2c0]
lea ecx, [eax + edx + 4]
mov edx, dword [ecx]
test edx, edx
je 0x4cb89f
neg edx
mov dword [ecx], edx
mov edx, dword [edi + 4]
mov ecx, dword [esi + 0x2c0]
mov dword [eax + ecx + 8], edx
mov ecx, dword [esi + 0x2c0]
add edi, 4
mov edx, dword [edi + 4]
mov dword [eax + ecx + 0xc], edx
mov ecx, dword [esi + 0x2c0]
add edi, 4
mov edx, dword [edi + 4]
mov dword [eax + ecx + 0x10], edx
mov ecx, dword [esi + 0x2c0]
add edi, 4
mov edx, dword [edi + 4]
mov dword [eax + ecx + 0x14], edx
mov ecx, dword [esi + 0x2c0]
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, 0x24
dec ecx
mov dword [esp + 0x1c], ecx
jne 0x4cb870
mov ebx, dword [esp + 0x18]
mov word [esi + 0x27c], bx
mov al, byte [edi]
inc edi
test al, al
je 0x4cb974
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 0x4cb944
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.0x4ce703
mov ecx, dword [edi]
add edi, 4
mov dword [esi + 0x29c], ecx
mov eax, dword [edi]
test eax, eax
mov dword [esi + 0x2a0], eax
je 0x4cb99e
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 [0x87b40c]
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, 0x19ec1
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 + 0x3e4]
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 [0x87b40c]
imul ecx, ecx, 0xd
lea ecx, [ecx + eax + 0x1ffd5]
push eax
call fcn.0042acf0
cmp eax, 0xffffffff
jne case.default.0x4ce703
push 0
push 0x5d99f0
push 0x5d80f8
push 0
call fcn.004c75b0
mov ebx, 0x1f
mov edi, eax
call fcn.00403290
push eax
call fcn.0054a821
movzx ecx, byte [esi]
mov edx, dword [0x87b40c]
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 + 0x1ffd5]
push esi
lea esi, [edx + ecx*8]
lea ecx, [ecx + esi + 0x224d8]
push ecx
push 0
push edx
call fcn.00420660
test edi, edi
je case.default.0x4ce703
mov eax, edi
call fcn.004fe7c0
mov ecx, dword [esp + 0x3e4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
sub eax, 0x2103
je 0x4cbe4a
sub eax, 2
jne case.default.0x4ce703
mov bl, 1
mov edi, 0x20
mov eax, 0x8ff808
call fcn.004c90a0
mov edi, 0x1f
mov eax, 0x8ff808
call fcn.004c90a0
mov eax, dword [ebp + 0x10]
cmp word [eax], 0
jne 0x4cbe29
mov cl, byte [eax + 2]
mov edx, dword [esp + 0x24]
mov edi, dword [edx + 0x124]
mov ebx, dword [0x87b40c]
movzx ecx, cl
add eax, 2
mov dword [esp + 0x18], ecx
shl edi, 7
lea edi, [edi + ebx + 0x23a24]
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 [0x87b40c]
mov ecx, ebx
shl edi, 7
add edi, ecx
add eax, ecx
mov byte [edi + esi + 0x23a24], 0
mov ecx, dword [edx + 0x124]
shl ecx, 7
lea edi, [ecx + esi + 0x23a24]
lea ecx, [edx + 0x12c]
mov bl, byte [edi]
inc edi
mov byte [ecx], bl
inc ecx
test bl, bl
jne 0x4cbb57
mov cl, byte [eax]
mov edi, dword [edx + 0x124]
mov byte [edx + 0x1ac], cl
mov byte [edi + esi + 0x23ea4], cl
mov ecx, dword [eax + 1]
mov edi, dword [edx + 0x124]
mov dword [edx + 0x1b0], ecx
mov dword [esi + edi*4 + 0x23eb0], ecx
mov ecx, dword [edx + 0x124]
inc eax
mov bl, byte [eax + 4]
mov byte [ecx + esi + 0x23ed4], bl
mov edi, dword [edx + 0x124]
add eax, 4
mov cl, byte [eax + 1]
inc eax
mov byte [edx + 0x1b4], cl
mov byte [edi + esi + 0x23ee6], cl
mov cl, byte [eax + 1]
mov edi, dword [edx + 0x124]
inc eax
mov byte [edx + 0x1b5], cl
mov byte [edi + esi + 0x23eef], cl
mov cl, byte [eax + 1]
mov edi, dword [edx + 0x124]
inc eax
mov byte [edx + 0x1b6], cl
mov byte [edi + esi + 0x23ef8], cl
mov cl, byte [eax + 1]
mov edi, dword [edx + 0x124]
inc eax
mov byte [edx + 0x1b7], cl
mov byte [edi + esi + 0x23f01], cl
mov cl, byte [edx + 0x1b4]
xor edi, edi
inc eax
test cl, cl
mov dword [esp + 0x1c], edi
jbe 0x4cbd0a
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
lea esp, [esp]
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 + 0x2403c], 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 0x4cbc9e
mov ebx, dword [esp + 0x30]
shr ebx, 0x10
test cl, bl
jne 0x4cbc9e
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]
mov cl, byte [edi]
mov byte [edi + ebx], cl
inc edi
test cl, cl
jne 0x4cbcb5
mov ebx, dword [esp + 0x18]
lea edi, [esp + 0x2c]
mov cl, byte [edi]
mov byte [edi + ebx], cl
inc edi
test cl, cl
jne 0x4cbcc7
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 0x4cbc50
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 0x5db3b8
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 0x5d80f8
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.004c75b0
mov ebx, 0x25
mov edi, eax
call fcn.00403290
push eax
call fcn.0054a821
add esp, 0x14
test eax, eax
jne case.default.0x4ce703
push 0x8c
call fcn.00541c89
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x3ec], 1
je 0x4cbdfb
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.0051adc0
mov esi, eax
jmp 0x4cbdfd
xor esi, esi
mov dword [esp + 0x3ec], 0xffffffff
call fcn.004c75b0
call fcn.004033f0
mov ecx, dword [esp + 0x3e4]
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 + 0x3e4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov bl, 1
mov edi, 0x20
mov eax, 0x8ff808
call fcn.004c90a0
mov edi, 0x1f
mov eax, 0x8ff808
call fcn.004c90a0
mov eax, dword [ebp + 0x10]
cmp word [eax], 0
jne 0x4cc170
push str.Recv_NS_CAHNNEL_GAMELIST__0x2103__n
call fcn.0046c4c0
mov cl, byte [eax + 2]
mov edx, dword [0x87b40c]
add eax, 2
add esp, 4
add eax, 2
test cl, cl
mov byte [edx + 0x239d8], cl
je 0x4cbea9
mov ecx, dword [esi + 0x11c]
mov dword [esi + 0x118], ecx
xor ecx, ecx
lea ebx, [edx + 0x239dc]
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 + 0x239d8]
xor edi, edi
test cl, cl
mov dword [esp + 0x28], edi
jbe 0x4cc016
lea ecx, [edx + 0x23a42]
mov dword [esp + 0x20], ecx
mov ecx, 0xfffdc5be
sub ecx, edx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], ecx
lea ebx, [ebx]
cmp edi, 9
jge 0x4cc016
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 0x4cbfed
cmp ecx, 0x32
jle 0x4cbf30
mov ecx, 0x32
mov dword [esp + 0x18], ecx
cmp ecx, 0x1e
mov dword [ebx], 1
jg 0x4cbf43
test ecx, ecx
jge 0x4cbf48
xor ecx, ecx
jmp 0x4cbf48
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 + 0x23a24], bl
mov edi, dword [esp + 0x28]
mov byte [ecx], bl
mov byte [ecx + 1], bl
mov bl, byte [eax]
mov byte [edi + edx + 0x23ea4], 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 + 0x23ed4], bl
mov bl, byte [eax]
inc eax
mov byte [edi + edx + 0x23edd], bl
mov bl, byte [eax]
inc eax
mov byte [edi + edx + 0x23ee6], bl
mov bl, byte [eax]
inc eax
mov byte [edi + edx + 0x23eef], bl
mov bl, byte [eax]
inc eax
mov byte [edi + edx + 0x23ef8], bl
mov bl, byte [eax]
mov byte [edi + edx + 0x23f01], bl
mov ebx, dword [esp + 0x1c]
inc eax
mov byte [edi + edx + 0x23f0a], 0
jmp 0x4cbff1
mov ecx, dword [esp + 0x20]
add ecx, 0x80
mov dword [esp + 0x20], ecx
movzx ecx, byte [edx + 0x239d8]
inc edi
add ebx, 4
cmp edi, ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], ebx
jl 0x4cbf00
push 0
push 0x5d99f0
push 0x5d80f8
push 0
call fcn.004c75b0
mov ebx, 0x1f
mov edi, eax
call fcn.00403290
push eax
call fcn.0054a821
mov edi, eax
add esp, 0x14
test edi, edi
je 0x4cc06c
mov edx, dword [0x87b40c]
mov al, byte [edx + 0x239d8]
xor ebx, ebx
test al, al
jbe 0x4cc06c
call fcn.004fe790
mov eax, dword [0x87b40c]
movzx ecx, byte [eax + 0x239d8]
inc ebx
cmp ebx, ecx
jl 0x4cc056
mov edx, dword [0x87b40c]
mov eax, dword [edx + 0x1a6cc]
mov dword [esp + 0x14], eax
call fcn.004c7160
mov edi, eax
lea ebx, [edi + 0x30]
push ebx
mov dword [esp + 0x1c], ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [edi + 0x2c]
test al, al
je 0x4cc0a1
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4cc0cc
mov eax, dword [esp + 0x14]
mov edx, dword [edi + 0x24]
mov edi, dword [edi + 0x1c]
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.0x4ce703
mov ecx, dword [0x87b40c]
mov ax, word [ecx + 0x1a6d4]
cmp ax, 0xffff
je case.default.0x4ce703
movsx eax, ax
cdq
mov edi, 9
idiv edi
mov dword [esi + 8], edx
mov eax, dword [ecx + edx*4 + 0x239dc]
test eax, eax
je 0x4cc14c
mov al, byte [edx + ecx + 0x23ef8]
test al, al
jne 0x4cc14c
mov al, byte [edx + ecx + 0x23ee6]
cmp al, byte [edx + ecx + 0x23eef]
je 0x4cc14c
mov al, byte [edx + ecx + 0x23f01]
test al, al
je 0x4cc12f
lea edi, [ecx + 0x1a6c8]
xor al, al
call fcn.00416f20
push esi
call fcn.004cfc70
mov ecx, dword [esp + 0x3e4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
lea edi, [ecx + 0x1a6c8]
xor al, al
call fcn.00416f20
mov ecx, dword [esp + 0x3e4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [0x87b40c]
add ecx, 0x1a6c8
call fcn.00523700
test al, al
je case.default.0x4ce703
mov edi, dword [0x87b40c]
add edi, 0x1a6c8
xor al, al
call fcn.00416f20
mov ecx, dword [esp + 0x3e4]
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 0x4cc9d3
push ecx
push 0x5d99f0
push 0x5d80f8
push ecx
call fcn.004c75b0
mov ebx, 0x1f
mov edi, eax
call fcn.00403290
push eax
call fcn.0054a821
add esp, 0x14
mov eax, 0x8fdbb0
mov byte [esi + 0x11], 0
call fcn.0044dd10
mov edx, dword [0x87b40c]
call fcn.00420580
lea eax, [edx + 0x25e9c]
call fcn.004192b0
mov ebx, dword [ebp + 0x10]
lea eax, [edx + 0x24342]
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
movzx eax, byte [ebx + 2]
add ebx, 2
lea edi, [edx + 0x1a640]
call fcn.00416ce0
mov ecx, eax
inc ebx
call fcn.0042c6d0
mov edi, dword [0x87b40c]
movzx eax, byte [ebx]
add edi, 0x1a634
call fcn.00416ce0
inc ebx
mov ecx, eax
mov dword [ebp + 0x10], ebx
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
call fcn.0042c6d0
mov ebx, eax
mov eax, 0x8fdbb0
call fcn.0044dcb0
mov edx, dword [ebp + 0x10]
movzx ecx, word [edx]
mov eax, dword [0x87b40c]
mov dword [eax + 0x24044], 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 + 0x24048]
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 + 0x24048], 0
mov cl, byte [esi + ebx]
add esi, ebx
mov byte [eax + 0x240dc], cl
inc esi
lea edi, [eax + 0x240e0]
mov eax, dword [esi]
mov dword [esp + 0x24], ebx
call fcn.00416ce0
mov ecx, eax
call fcn.0042c6d0
mov edx, dword [esi + 4]
mov eax, dword [0x87b40c]
add esi, 4
mov dword [eax + 0x24115], edx
mov ecx, dword [esi + 4]
add esi, 8
mov dword [eax + 0x24119], ecx
mov dl, byte [esi]
inc esi
mov byte [eax + 0x240ec], dl
mov cl, byte [esi]
inc esi
push str.Join_ROOM___n
mov byte [eax + 0x240ed], cl
mov dword [ebp + 0x10], esi
call fcn.0046c4c0
mov cl, byte [eax + 0x240ed]
add esp, 4
test cl, cl
mov dword [esp + 0x28], 0
jbe 0x4cc74f
mov ebx, dword [0x87b40c]
mov al, byte [esi]
mov edi, dword [ebx + 0x25ebc]
add ebx, 0x25e9c
inc esi
inc edi
push str.Insert_Slot
mov dword [ebx + 0x20], edi
call fcn.0046c4c0
movzx edi, al
add esp, 4
push edi
mov dword [esp + 0x20], edi
call fcn.00419340
mov eax, dword [0x87b40c]
lea ecx, [edi + edi*4]
shl ecx, 2
mov dword [esp + 0x14], ecx
lea edx, [ecx + eax + 0x24165]
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 + 0x24171], 0
mov cl, byte [esi + 0xc]
add esi, 0xc
test cl, cl
mov ecx, dword [esi + 1]
sete byte [esp + 0x10]
inc esi
mov dword [eax + edi*4 + 0x24208], ecx
mov dx, word [esi + 4]
add esi, 4
mov word [eax + edi*2 + 0x24248], dx
mov ecx, dword [esi + 2]
add esi, 2
mov dword [eax + edi*4 + 0x24228], ecx
mov dx, word [esi + 4]
add esi, 4
mov word [eax + edi*2 + 0x24258], dx
mov cl, byte [esi + 2]
add esi, 2
mov byte [eax + edi*2 + 0x2432a], cl
mov dl, byte [esi + 1]
inc esi
mov byte [eax + edi*2 + 0x2432b], dl
mov cl, byte [esi + 1]
inc esi
mov byte [edi + eax + 0x2433a], cl
mov edx, dword [eax + 0x1a638]
inc esi
mov dword [esp + 0x14], edx
call fcn.004c7160
mov ebx, eax
lea eax, [ebx + 0x30]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [ebx + 0x2c]
test al, al
je 0x4cc441
mov eax, dword [esp + 0x18]
mov ebx, 1
push eax
jmp 0x4cc463
mov eax, dword [esp + 0x14]
mov edx, dword [ebx + 0x24]
mov ebx, dword [ebx + 0x1c]
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 [0x87b40c]
jne 0x4cc47f
mov cl, byte [edi + eax + 0x2433a]
mov byte [eax + 0x1a63c], cl
mov dl, byte [esi]
mov byte [edi + eax + 0x24342], dl
mov edx, dword [esi + 1]
inc esi
lea ecx, [eax + edi*8]
add ecx, edi
mov dword [ecx + 0x2411d], edx
mov edx, dword [esi + 4]
mov dword [ecx + 0x24121], edx
mov bl, byte [ecx + 0x24124]
mov dl, 0x80
test dl, bl
je 0x4cc4bb
test byte [ecx + 0x24123], dl
jne 0x4cc4bb
mov byte [ecx + 0x24124], 0
mov byte [ecx + 0x24125], 0
mov cx, word [esi + 8]
add esi, 8
add cx, 5
add esi, 2
mov word [eax + edi*2 + 0x2434a], cx
mov dx, word [esi]
add dx, 5
add esi, 2
mov word [eax + edi*2 + 0x2435a], dx
mov cx, word [esi]
add cx, 5
add esi, 2
mov word [eax + edi*2 + 0x2437a], cx
mov dx, word [esi]
add esi, 2
mov word [eax + edi*2 + 0x2436a], dx
movzx ecx, word [esi]
add esi, 2
lea edx, [edi*4 + 0x12134]
mov dword [esp + 0x14], ecx
mov dword [ebp + 0x10], esi
xor ecx, ecx
mov dword [esp + 0x20], edx
cmp ecx, 3
jne 0x4cc532
mov word [eax + edx*2 + 6], 0x8000
jmp 0x4cc54a
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 + 0x90aa]
inc ecx
cmp ecx, 4
mov dword [eax + ebx*4], 0
jl 0x4cc524
mov ecx, dword [esp + 0x14]
test ecx, ecx
jle 0x4cc67c
mov edx, dword [esp + 0x20]
mov dword [esp + 0x18], ecx
mov ebx, dword [esi]
cmp ebx, 0x31999
jle 0x4cc628
cmp ebx, 0x34000
jge 0x4cc628
lea ecx, [esp + 0x90]
call fcn.004123c0
mov dword [esp + 0x3ec], 2
mov eax, dword [0x87b40c]
push ebx
push eax
mov al, 1
lea edi, [esp + 0x98]
call fcn.00428360
movzx eax, byte [esp + 0x99]
dec eax
je 0x4cc5e5
dec eax
jne 0x4cc602
mov ecx, dword [esp + 0x1c]
mov eax, dword [0x87b40c]
lea edx, [ecx + 0x242b]
shl edx, 4
mov dword [edx + eax], ebx
mov byte [ecx + eax + 0x25e34], 1
jmp 0x4cc602
mov ecx, dword [esp + 0x1c]
mov eax, dword [0x87b40c]
mov edx, ecx
shl edx, 4
mov dword [edx + eax + 0x242ac], ebx
mov byte [ecx + eax + 0x25e2c], 1
lea ecx, [esp + 0x90]
mov dword [esp + 0x3ec], 0xffffffff
call fcn.004128f0
mov eax, dword [0x87b40c]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
jmp 0x4cc667
mov ecx, ebx
sar ecx, 0x10
and cl, 0xf
and ebx, 0x7fff
cmp cl, 3
mov dword [esp + 0x14], ebx
jne 0x4cc64c
or ebx, 0x8000
mov word [eax + edx*2 + 6], bx
jmp 0x4cc667
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 0x4cc572
mov dword [ebp + 0x10], esi
cmp byte [esi], 0
lea esi, [eax + edi*8 + 0x25dec]
mov al, byte [0x8ffc08]
setne cl
test al, 1
mov byte [esp + 0x10], cl
jne 0x4cc6ca
or dword [0x8ffc08], 1
push 0x8ffbc0
mov dword [esp + 0x3f0], 3
call fcn.004c6de0
push 0x566120
call fcn.00549335
add esp, 4
mov dword [esp + 0x3ec], 0xffffffff
mov eax, dword [esi + 4]
push 1
lea edx, [esp + 0x14]
push edx
push eax
mov esi, 0x8ffbc0
call fcn.0040ad80
call fcn.0054ad4a
cdq
mov ecx, 6
idiv ecx
mov ecx, dword [0x87b40c]
inc dword [ebp + 0x10]
mov eax, dword [ecx + edi*4 + 0x24228]
mov esi, edi
mov dword [ecx + edi*4 + 0x25e3c], edx
xor edx, edx
mov dx, word [ecx + edi*2 + 0x24258]
push edx
push eax
mov ax, word [ecx + edi*2 + 0x24248]
mov ecx, dword [ecx + edi*4 + 0x24208]
mov edx, 0x8fdbb0
call fcn.0044ddd0
mov ecx, dword [0x87b40c]
mov eax, dword [esp + 0x28]
movzx edx, byte [ecx + 0x240ed]
mov esi, dword [ebp + 0x10]
inc eax
cmp eax, edx
mov dword [esp + 0x28], eax
jl 0x4cc341
mov ebx, dword [esp + 0x24]
mov eax, dword [0x87b40c]
mov ecx, dword [eax + 0x1a638]
mov dword [esp + 0x14], ecx
call fcn.004c7160
mov edi, eax
lea eax, [edi + 0x30]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [edi + 0x2c]
test al, al
je 0x4cc789
mov edx, dword [esp + 0x18]
mov dword [esp + 0x38], 1
push edx
jmp 0x4cc7a7
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x24]
mov edi, dword [edi + 0x1c]
mov eax, ecx
shr eax, 3
mov eax, dword [edx + eax*4]
xor eax, dword [edi + ecx*4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x38]
push 1
push 0x20ab
mov byte [0x8feac9], al
mov dword [0x8fe3e4], eax
call dword [sym.imp.WS2_32.dll_htons]
mov edi, 0x8fdbb0
push eax
mov eax, dword [esp + 0x40]
push 0x100007f
call fcn.0044eca0
mov edx, dword [0x87b40c]
mov ax, word [edx + 0x24044]
mov cx, word [edx + 0x1e56c]
movzx edi, ax
push edi
movzx edi, cx
push edi
push str.Set_Key_with__d___d_n
call fcn.0046c4c0
mov word [0x5d8688], cx
mov word [0x5d8690], ax
mov word [0x5d8698], cx
mov word [0x5d86a0], ax
push 9
mov byte [edx + 0x24108], 0
call fcn.00413940
mov eax, dword [0x87b7a4]
mov ecx, dword [0x87b40c]
add esp, 0x10
test eax, eax
mov dword [ecx + 0x1fed0], 0xffffffff
je 0x4cc853
mov ebx, eax
call fcn.004082f0
mov ebx, dword [esp + 0x24]
jmp 0x4cc85d
push 0x8f6f90
call fcn.00406550
mov edx, dword [0x87b40c]
mov eax, dword [edx + 0x1a6cc]
mov dword [esp + 0x14], eax
call fcn.004c7160
mov edi, eax
lea eax, [edi + 0x30]
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [edi + 0x2c]
test al, al
je 0x4cc896
mov ecx, dword [esp + 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4cc8c4
mov ecx, dword [esp + 0x14]
mov eax, dword [edi + 0x24]
mov edi, dword [edi + 0x1c]
mov edx, ecx
shr edx, 3
mov eax, dword [eax + edx*4]
mov edx, dword [edi + ecx*4]
mov ecx, dword [esp + 0x18]
xor eax, edx
push ecx
mov dword [esp + 0x18], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, byte [esp + 0x14]
test al, al
je 0x4cc8eb
mov eax, dword [0x87b40c]
mov ecx, dword [eax + 0x1a6cc]
push 1
lea edx, [esp + 0x14]
push edx
push ecx
mov byte [esp + 0x1c], 0
call fcn.004c7160
mov esi, eax
call fcn.0040ad80
mov esi, dword [ebp + 0x10]
mov edx, dword [0x87b40c]
movzx eax, byte [edx + 0x240ed]
mov edx, dword [ebp + 8]
imul eax, eax, 0x31
mov ecx, 0xffffffea
sub ecx, eax
sub ecx, ebx
add edx, ecx
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 0x4cc98b
nop
mov cl, byte [ebx + esi]
cmp cl, 0xa
jne 0x4cc97b
lea eax, [esp + 0x90]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4cc942
mov ecx, dword [0x87b40c]
push 1
push 0
sub eax, edx
lea edx, [esp + 0x98]
push edx
push 0
push 0
push 2
push ecx
call fcn.00420660
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x90]
rep stosd dword es:[edi], eax
jmp 0x4cc983
mov byte [esp + eax + 0x90], cl
inc eax
mov ecx, dword [ebp + 8]
inc ebx
cmp ebx, ecx
jl 0x4cc930
lea eax, [esp + 0x90]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4cc995
mov ecx, dword [0x87b40c]
push 1
push 0
sub eax, edx
lea edx, [esp + 0x98]
push edx
push 0
push 0
push 2
push ecx
call fcn.00420660
mov ecx, dword [esp + 0x3e4]
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 [0x87b40c]
jne 0x4cc9f2
mov edx, dword [esi + 8]
mov dword [eax + edx*4 + 0x239dc], ecx
mov dword [esi + 8], 0xffffffff
lea ecx, [eax + 0x1a6c8]
call fcn.00523700
test al, al
je 0x4cca14
mov edi, dword [0x87b40c]
add edi, 0x1a6c8
xor al, al
call fcn.00416f20
mov eax, dword [0x87b40c]
cmp byte [eax + 0x1fecc], 2
mov eax, 0x8ff808
mov bl, 1
mov edi, 0x28
je 0x4cca33
mov edi, 0x20
call fcn.004c90a0
mov bl, 1
mov edi, 0x1f
mov eax, 0x8ff808
call fcn.004c90a0
mov ecx, dword [esp + 0x3e4]
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.0x4ce703
movzx ecx, byte [eax + 0x4ce9a0]
jmp dword [ecx*4 + 0x4ce98c]
mov edx, dword [ebp + 0x10]
cmp byte [edx], 0
je case.default.0x4ce703
push 0
push 0xc3500
push 0x87e094
call fcn.004454c0
mov esi, eax
call fcn.00413e60
jmp 0x4ce971
push 0
push 0x5d99f0
push 0x5d80f8
push 0
call fcn.004c75b0
mov ebx, 0x1f
mov edi, eax
call fcn.00403290
push eax
call fcn.0054a821
add esp, 0x14
test eax, eax
mov dword [esp + 0x14], eax
je case.default.0x4ce703
push 0
push 0x5d995c
push 0x5d80f8
push 0
call fcn.004c75b0
mov ebx, 0xc8
mov edi, eax
call fcn.00403290
push eax
call fcn.0054a821
add esp, 0x14
test eax, eax
je 0x4ccb10
mov esi, eax
call fcn.004f7f40
mov esi, dword [esp + 0x24]
mov eax, dword [ebp + 0x10]
cmp word [eax], 0
jne 0x4cd42b
mov ecx, dword [0x87b40c]
mov byte [ecx + 0x23f7c], 1
call fcn.004cfd60
mov eax, dword [0x87b40c]
add eax, 0x25e9c
call fcn.004192b0
mov eax, 0x8fdbb0
call fcn.0044dd10
mov ecx, dword [0x87b40c]
mov ebx, dword [ebp + 0x10]
mov byte [ecx + 0x1a63c], 0
movzx eax, byte [ebx + 2]
add ebx, 2
lea edi, [ecx + 0x1a634]
call fcn.00416ce0
mov edi, dword [0x87b40c]
add edi, 0x1a640
mov ecx, eax
call fcn.00416c90
mov ecx, dword [0x87b40c]
inc ebx
add ecx, 0x1a634
mov dword [ebp + 0x10], ebx
call fcn.0042c6d0
mov ebx, eax
mov eax, 0x8fdbb0
call fcn.0044dcb0
mov eax, dword [0x87b40c]
mov ecx, dword [eax + 0x77524]
test ecx, ecx
lea ecx, [eax + 0x1a634]
je 0x4ccbc9
call fcn.0042c6d0
mov edx, dword [0x87b40c]
lea edi, [edx + eax*8 + 0x25dec]
mov al, 1
jmp 0x4ccbdd
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
lea edi, [ecx + eax*8 + 0x25dec]
xor al, al
call fcn.00416f20
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
call fcn.0042c6d0
mov ebx, dword [0x87b40c]
lea ecx, [ebx + 0x25e9c]
call fcn.00419300
mov eax, dword [ebp + 0x10]
movzx edx, word [eax]
xor ecx, ecx
mov dword [ebx + 0x24044], edx
mov word [esi + 0x114], cx
mov dword [esi + 0x11c], ecx
mov byte [esi + 0x113], 2
add eax, 2
lea edx, [ebx + 0x24342]
mov dword [edx], ecx
mov dword [edx + 4], ecx
mov cl, byte [eax]
mov byte [ebx + 0x240ec], cl
mov cl, byte [eax + 1]
inc 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 + 0x24048]
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 + 0x240c8], 0
mov cl, byte [eax]
mov byte [ebx + 0x240dc], cl
mov eax, dword [eax + 1]
lea edi, [ebx + 0x240e0]
call fcn.00416ce0
mov eax, dword [0x87b40c]
lea ecx, [eax + 0x24115]
mov byte [eax + 0x240ed], 1
or edx, 0xffffffff
mov dword [ecx], edx
mov dword [ecx + 4], edx
lea ecx, [eax + 0x1a634]
lea esi, [eax + 0x19ec1]
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [eax + edx*4 + 0x24165]
jmp 0x4cccc0
mov dl, byte [esi]
inc esi
mov byte [ecx], dl
inc ecx
test dl, dl
jne 0x4cccc0
lea ecx, [eax + 0x1a634]
lea esi, [eax + 0x24328]
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dl, byte [esi]
mov byte [ecx + eax*2 + 0x2432a], dl
lea esi, [ecx + 0x24329]
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dl, byte [esi]
mov byte [ecx + eax*2 + 0x2432b], dl
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov byte [eax + ecx + 0x2433a], 0
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov byte [eax + ecx + 0x24342], 1
lea esi, [ecx + 0x19ea4]
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
lea edx, [ecx + eax*8]
lea eax, [eax + edx + 0x2411d]
lea ecx, [ecx]
mov dl, byte [esi]
inc esi
mov byte [eax], dl
inc eax
test dl, dl
jne 0x4ccd60
add ecx, 0x19f00
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x2440c], esi
lea esi, [ecx + 0x19ed6]
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x2434a], dx
lea esi, [ecx + 0x19ed8]
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x2435a], dx
add ecx, 0x19ee8
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x243ac], esi
add ecx, 0x19ef0
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x243cc], esi
add ecx, 0x19ef8
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x243ec], esi
lea esi, [ecx + 0x19eda]
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x2437a], dx
lea esi, [ecx + 0x19ee4]
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x2436a], dx
add ecx, 0x19edc
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x2438c], esi
add ecx, 0x1a5ec
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov word [ecx + eax*8 + 0x24268], si
add ecx, 0x1a5f4
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov word [ecx + eax*8 + 0x2426a], si
add ecx, 0x1a5fc
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov word [ecx + eax*8 + 0x2426c], si
add ecx, 0x1a604
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov word [ecx + eax*8 + 0x2426e], si
add ecx, 0x1a60c
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, eax
mov eax, dword [0x87b40c]
shl ecx, 4
mov dword [ecx + eax + 0x242a8], esi
lea ecx, [eax + 0x1a614]
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov edx, eax
mov eax, dword [0x87b40c]
shl edx, 4
lea ecx, [eax + 0x1a61c]
mov dword [edx + eax + 0x242ac], esi
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, eax
mov eax, dword [0x87b40c]
add ecx, 0x242b
shl ecx, 4
mov dword [ecx + eax], esi
lea ecx, [eax + 0x1a624]
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov edx, eax
mov eax, dword [0x87b40c]
shl edx, 4
lea ecx, [eax + 0x1a634]
mov dword [edx + eax + 0x242b4], esi
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
xor esi, esi
mov dword [ecx + eax*4 + 0x250ac], esi
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x250cc], esi
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x25dac], esi
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x25dcc], esi
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x25d6c], esi
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x25d8c], esi
mov edi, 0x1a048
mov edi, edi
lea ecx, [edi + ecx - 0xa0]
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov ebx, eax
call fcn.0042c6d0
lea eax, [eax + eax*4]
lea ecx, [esi + eax*4]
mov eax, dword [0x87b40c]
mov dword [eax + ecx*4 + 0x2442c], ebx
lea ecx, [edi + eax]
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov ebx, eax
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [esi + edx*4]
mov dword [eax + ecx*4 + 0x246ac], ebx
lea ecx, [eax + 0x1a634]
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [esi + edx*4]
lea ebx, [eax + ecx*4 + 0x246ac]
lea ecx, [eax + 0x1a634]
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [esi + edx*4]
mov ecx, dword [eax + ecx*4 + 0x2442c]
add ecx, dword [ebx]
mov dword [esp + 0x14], ecx
lea ecx, [eax + 0x1a634]
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [esi + edx*4]
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 0x24e2c], edx
lea ecx, [eax + 0x1a634]
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
lea ebx, [ecx + eax*4 + 0x250ac]
add ecx, 0x1a634
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [esi + edx*4]
mov edx, dword [eax + ecx*4 + 0x2442c]
add dword [ebx], edx
lea ecx, [eax + 0x1a634]
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
lea ebx, [ecx + eax*4 + 0x250cc]
add ecx, 0x1a634
call fcn.0042c6d0
lea eax, [eax + eax*4]
lea ecx, [esi + eax*4]
mov eax, dword [0x87b40c]
mov edx, dword [eax + ecx*4 + 0x246ac]
add dword [ebx], edx
lea ecx, [edi + eax + 0x280]
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov ebx, eax
call fcn.0042c6d0
lea eax, [eax + eax*4]
lea ecx, [esi + eax*4]
mov eax, dword [0x87b40c]
mov dword [eax + ecx*4 + 0x250ec], ebx
lea ecx, [edi + eax + 0x320]
call fcn.0042c6d0
mov ebx, eax
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [esi + edx*4]
mov dword [eax + ecx*4 + 0x2536c], ebx
lea ecx, [eax + 0x1a634]
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [esi + edx*4]
lea ebx, [eax + ecx*4 + 0x2536c]
lea ecx, [eax + 0x1a634]
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [esi + edx*4]
mov ecx, dword [eax + ecx*4 + 0x250ec]
add ecx, dword [ebx]
mov dword [esp + 0x14], ecx
lea ecx, [eax + 0x1a634]
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [esi + edx*4]
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 0x25aec], edx
lea ecx, [eax + 0x1a634]
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
lea ebx, [ecx + eax*4 + 0x25d6c]
add ecx, 0x1a634
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [esi + edx*4]
mov edx, dword [eax + ecx*4 + 0x250ec]
add dword [ebx], edx
lea ecx, [eax + 0x1a634]
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
lea ebx, [ecx + eax*4 + 0x25d8c]
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
lea eax, [eax + eax*4]
lea edx, [esi + eax*4]
mov eax, dword [ecx + edx*4 + 0x2536c]
mov edx, dword [ebx]
add edx, eax
add edi, 8
inc esi
cmp edi, 0x1a0e8
mov dword [ebx], edx
jl 0x4cd0d0
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
lea esi, [ecx + eax*4 + 0x25dac]
add ecx, 0x1a554
call fcn.0042c6d0
add dword [esi], eax
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
lea esi, [ecx + eax*4 + 0x25dcc]
add ecx, 0x1a54c
call fcn.0042c6d0
mov ebx, dword [esi]
push 0x257
push 0x31f
push 0
add ebx, eax
push 0
mov ecx, 0x8f69c8
mov dword [esi], ebx
mov byte [0x87b7bd], 0
call fcn.0052ca30
mov esi, dword [0x87b40c]
mov ax, word [esi + 0x24044]
mov cx, word [esi + 0x1e56c]
call fcn.0044dce0
mov ebx, dword [0x87b7a4]
test ebx, ebx
mov byte [esi + 0x24108], 0
mov dword [esi + 0x1fed0], 0xffffffff
je 0x4cd3f1
call fcn.004082f0
jmp 0x4cd3fb
push 0x8f6f90
call fcn.00406550
mov ecx, dword [0x87b40c]
mov al, byte [ecx + 0x7796c]
test al, al
jne case.default.0x4ce703
call fcn.004cfec0
mov ecx, dword [esp + 0x3e4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [esp + 0x14]
push edx
call fcn.004fe390
mov ecx, dword [esp + 0x3e4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp + 0x10]
mov ax, word [eax]
test ax, ax
jne 0x4cdaf3
mov eax, 0x8fdbb0
call fcn.0044dd10
mov edx, dword [0x87b40c]
call fcn.00420580
lea eax, [edx + 0x25e9c]
call fcn.004192b0
mov ebx, dword [ebp + 0x10]
lea eax, [edx + 0x24342]
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
movzx eax, byte [ebx + 2]
add ebx, 2
lea edi, [edx + 0x1a640]
call fcn.00416ce0
mov ecx, eax
inc ebx
call fcn.0042c6d0
mov edi, dword [0x87b40c]
movzx eax, byte [ebx]
add edi, 0x1a634
call fcn.00416ce0
inc ebx
mov ecx, eax
mov dword [ebp + 0x10], ebx
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
call fcn.0042c6d0
mov ebx, eax
mov eax, 0x8fdbb0
call fcn.0044dcb0
mov edx, dword [ebp + 0x10]
movzx ecx, word [edx]
mov eax, dword [0x87b40c]
mov dword [eax + 0x24044], 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 + 0x24048]
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 [eax + 0x240c8], 0
mov cl, byte [esi + ebx]
add esi, ebx
mov byte [eax + 0x240dc], cl
lea edi, [eax + 0x240e0]
xor eax, eax
mov dword [esp + 0x28], ebx
inc esi
call fcn.00416ce0
mov edi, dword [0x87b40c]
mov eax, dword [esi]
add edi, 0x240e0
call fcn.00416ce0
mov edx, dword [esi + 4]
mov edi, dword [0x87b40c]
add esi, 4
mov dword [edi + 0x24115], edx
mov eax, dword [esi + 4]
add esi, 8
mov dword [edi + 0x24119], eax
mov cl, byte [esi]
inc esi
mov byte [edi + 0x240ec], cl
mov dl, byte [esi]
mov byte [edi + 0x240ed], dl
inc esi
push str.Join_ROOM___n
call fcn.0046c4c0
mov al, byte [edi + 0x240ed]
add esp, 4
test al, al
mov dword [esp + 0x20], 0
jbe 0x4cd964
lea ebx, [ebx]
mov al, byte [esi]
movzx ebx, al
lea ecx, [edi + 0x25e9c]
mov eax, ebx
inc esi
call fcn.00419300
mov ecx, esi
mov edx, dword [ecx]
lea eax, [ebx + ebx*4]
shl eax, 2
mov dword [esp + 0x14], eax
lea eax, [eax + edi + 0x24165]
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
mov byte [edx + edi + 0x24171], 0
mov cl, byte [esi + 0xc]
add esi, 0xc
mov eax, dword [esi + 1]
test cl, cl
sete byte [esp + 0x10]
inc esi
mov dword [edi + ebx*4 + 0x24208], eax
mov cx, word [esi + 4]
add esi, 4
mov word [edi + ebx*2 + 0x24248], cx
mov edx, dword [esi + 2]
add esi, 2
mov dword [edi + ebx*4 + 0x24228], edx
mov ax, word [esi + 4]
add esi, 4
mov word [edi + ebx*2 + 0x24258], ax
mov cl, byte [esi + 2]
add esi, 2
mov byte [edi + ebx*2 + 0x2432a], cl
mov dl, byte [esi + 1]
inc esi
mov byte [edi + ebx*2 + 0x2432b], dl
mov al, byte [esi + 1]
inc esi
lea ecx, [edi + 0x1a634]
mov byte [ebx + edi + 0x2433a], al
inc esi
call fcn.0042c6d0
cmp ebx, eax
mov edi, dword [0x87b40c]
jne 0x4cd68b
mov cl, byte [ebx + edi + 0x2433a]
mov byte [edi + 0x1a63c], cl
mov dl, byte [esi]
mov byte [ebx + edi + 0x24342], dl
mov ecx, dword [esi + 1]
inc esi
lea eax, [edi + ebx*8]
add eax, ebx
mov dword [eax + 0x2411d], ecx
mov edx, dword [esi + 4]
mov dword [eax + 0x24121], edx
mov dl, byte [eax + 0x24124]
mov cl, 0x80
test cl, dl
je 0x4cd6c7
test byte [eax + 0x24123], cl
jne 0x4cd6c7
mov byte [eax + 0x24124], 0
add esi, 8
mov byte [eax + 0x24125], 0
mov ax, word [esi]
add esi, 2
add ax, 5
mov word [edi + ebx*2 + 0x2434a], ax
mov cx, word [esi]
add esi, 2
add cx, 5
mov word [edi + ebx*2 + 0x2435a], cx
mov dx, word [esi]
add esi, 2
add dx, 5
mov word [edi + ebx*2 + 0x2437a], dx
mov ax, word [esi]
add esi, 2
mov word [edi + ebx*2 + 0x2436a], ax
movzx ecx, word [esi]
add esi, 2
mov dword [esp + 0x14], ecx
mov dword [ebp + 0x10], esi
xor eax, eax
cmp eax, 3
jne 0x4cd739
lea ecx, [ebx*4 + 0x12134]
mov word [edi + ecx*2 + 6], 0x8000
jmp 0x4cd752
mov dl, byte [esp + 0x10]
neg dl
lea ecx, [eax + ebx*4 + 0x12134]
sbb edx, edx
and edx, 0x8000
mov word [edi + ecx*2], dx
lea edx, [eax + ebx*4 + 0x90aa]
inc eax
cmp eax, 4
mov dword [edi + edx*4], 0
jl 0x4cd724
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x4cd8b2
mov dword [esp + 0x18], eax
jmp 0x4cd780
mov ecx, dword [esi]
cmp ecx, 0x31999
mov dword [esp + 0x1c], ecx
jle 0x4cd858
cmp ecx, 0x34000
jge 0x4cd858
lea ecx, [esp + 0x90]
call fcn.004123c0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3ec], 0
mov ecx, dword [0x87b40c]
push eax
push ecx
mov al, 1
lea edi, [esp + 0x98]
call fcn.00428360
movzx eax, byte [esp + 0x99]
dec eax
je 0x4cd80c
dec eax
jne 0x4cd839
mov eax, dword [0x87b40c]
mov ecx, dword [esp + 0x1c]
lea edx, [ebx + 0x242b]
shl edx, 4
mov dword [edx + eax], ecx
cmp dword [0x87b77c], 3
mov byte [ebx + eax + 0x25e34], 1
je 0x4cd839
push ebx
push eax
call fcn.0042c280
jmp 0x4cd839
mov eax, dword [0x87b40c]
mov ecx, dword [esp + 0x1c]
mov edx, ebx
shl edx, 4
mov dword [edx + eax + 0x242ac], ecx
cmp dword [0x87b77c], 3
mov byte [ebx + eax + 0x25e2c], 1
je 0x4cd839
push ebx
push eax
call fcn.0042c160
lea ecx, [esp + 0x90]
mov dword [esp + 0x3ec], 0xffffffff
call fcn.004128f0
mov edi, dword [0x87b40c]
jmp 0x4cd89d
mov eax, ecx
sar eax, 0x10
and al, 0xf
and ecx, 0x7fff
cmp al, 3
jne 0x4cd87d
or ecx, 0x8000
lea eax, [ebx*4 + 0x12134]
mov word [edi + eax*2 + 6], cx
jmp 0x4cd89d
mov dl, byte [esp + 0x10]
neg dl
sbb edx, edx
and edx, 0x8000
or edx, ecx
movzx ecx, al
lea eax, [ebx*4 + 0x12134]
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 0x4cd780
mov dword [ebp + 0x10], esi
cmp byte [esi], 0
mov ecx, dword [edi + ebx*8 + 0x25df0]
push 1
lea eax, [esp + 0x14]
push eax
setne dl
push ecx
mov byte [esp + 0x1c], dl
call fcn.004c7160
mov esi, eax
call fcn.0040ad80
call fcn.004c7160
mov esi, eax
lea edi, [esi + 0x30]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [esi + 0x2c]
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call fcn.0054ad4a
cdq
mov ecx, 6
idiv ecx
mov ecx, dword [0x87b40c]
mov eax, dword [ecx + ebx*4 + 0x24228]
mov edi, dword [ebp + 0x10]
inc edi
mov esi, ebx
mov dword [ebp + 0x10], edi
mov dword [ecx + ebx*4 + 0x25e3c], edx
xor edx, edx
mov dx, word [ecx + ebx*2 + 0x24258]
push edx
push eax
mov ax, word [ecx + ebx*2 + 0x24248]
mov ecx, dword [ecx + ebx*4 + 0x24208]
mov edx, 0x8fdbb0
call fcn.0044ddd0
mov ecx, dword [esp + 0x20]
mov edi, dword [0x87b40c]
mov esi, dword [ebp + 0x10]
inc ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [edi + 0x240ed]
cmp dword [esp + 0x20], ecx
jl 0x4cd5c0
lea ecx, [edi + 0x1a634]
call fcn.0042c6d0
mov ebx, eax
mov eax, 0x8fdbb0
call fcn.0044dcb0
mov edi, dword [0x87b40c]
mov ax, word [edi + 0x24044]
mov cx, word [edi + 0x1e56c]
call fcn.0044dce0
mov ebx, dword [0x87b7a4]
test ebx, ebx
mov byte [edi + 0x24108], 0
mov dword [edi + 0x1fed0], 0xffffffff
je 0x4cd9b6
call fcn.004082f0
jmp 0x4cd9c0
push 0x8f6f90
call fcn.00406550
mov ecx, dword [0x87b40c]
add ecx, 0x1a6c8
call fcn.00523700
test al, al
je 0x4cd9e8
mov edi, dword [0x87b40c]
add edi, 0x1a6c8
xor al, al
call fcn.00416f20
mov ebx, dword [0x87b40c]
movzx edx, byte [ebx + 0x240ed]
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 0x4cda9b
mov cl, byte [edx + esi]
cmp cl, 0xa
jne 0x4cda87
lea eax, [esp + 0x90]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4cda50
push 1
push 0
lea ecx, [esp + 0x98]
push ecx
push 0
push 0
push 2
sub eax, edx
push ebx
call fcn.00420660
mov edx, dword [esp + 0x18]
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x90]
rep stosd dword es:[edi], eax
jmp 0x4cda8f
mov byte [esp + eax + 0x90], cl
inc eax
mov ecx, dword [ebp + 8]
inc edx
cmp edx, ecx
mov dword [esp + 0x18], edx
jl 0x4cda37
lea eax, [esp + 0x90]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4cdaa5
push 1
push 0
sub eax, edx
lea edx, [esp + 0x98]
push edx
push 0
push 0
push 2
push ebx
call fcn.00420660
mov al, byte [ebx + 0x7796c]
test al, al
mov byte [ebx + 0x23f7c], 1
jne 0x4cdae2
call fcn.004cfec0
mov ebx, dword [0x87b40c]
mov al, byte [ebx + 0x240ed]
cmp al, byte [ebx + 0x240ec]
jmp 0x4ce968
cmp ax, 0x1d
mov eax, dword [0x87b40c]
jne 0x4cdb13
mov ecx, dword [esi + 8]
mov dword [eax + ecx*4 + 0x239dc], 0
mov dword [esi + 8], 0xffffffff
lea ecx, [eax + 0x1a6c8]
jmp 0x4cc17c
push 0
push 0x5d99f0
push 0x5d80f8
push 0
call fcn.004c75b0
mov ebx, 0x1f
mov edi, eax
call fcn.00403290
push eax
call fcn.0054a821
add esp, 0x14
test eax, eax
mov dword [esp + 0x18], eax
je case.default.0x4ce703
push 0
push 0x5db398
push 0x5d80f8
push 0
call fcn.004c75b0
mov ebx, 0x22
mov edi, eax
call fcn.00403290
push eax
call fcn.0054a821
add esp, 0x14
test eax, eax
je case.default.0x4ce703
mov edx, dword [ebp + 0x10]
cmp word [edx], 0
jne 0x4ce56a
call fcn.004cfd60
mov eax, dword [0x87b40c]
add eax, 0x25e9c
call fcn.004192b0
mov eax, 0x8fdbb0
call fcn.0044dd10
mov edx, dword [0x87b40c]
call fcn.00420580
mov ebx, dword [ebp + 0x10]
mov byte [edx + 0x1a63c], 0
movzx eax, byte [ebx + 2]
add ebx, 2
lea edi, [edx + 0x1a634]
call fcn.00416ce0
mov edi, dword [0x87b40c]
add edi, 0x1a640
mov ecx, eax
call fcn.00416c90
mov ecx, dword [0x87b40c]
inc ebx
add ecx, 0x1a634
mov dword [ebp + 0x10], ebx
call fcn.0042c6d0
mov ebx, eax
mov eax, 0x8fdbb0
call fcn.0044dcb0
mov eax, dword [0x87b40c]
mov ecx, dword [eax + 0x77524]
xor ebx, ebx
cmp ecx, ebx
lea ecx, [eax + 0x1a634]
je 0x4cdc35
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
lea edi, [ecx + eax*8 + 0x25dec]
mov al, 1
jmp 0x4cdc49
call fcn.0042c6d0
mov edx, dword [0x87b40c]
lea edi, [edx + eax*8 + 0x25dec]
xor al, al
call fcn.00416f20
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
call fcn.0042c6d0
mov edi, dword [0x87b40c]
lea ecx, [edi + 0x25e9c]
call fcn.00419300
mov eax, dword [ebp + 0x10]
movzx ecx, word [eax]
add eax, 2
mov dword [edi + 0x24044], ecx
mov dword [ebp + 0x10], eax
xor edx, edx
lea eax, [edi + 0x24342]
mov byte [esi + 0x113], 2
mov word [esi + 0x114], bx
mov dword [esi + 0x11c], ebx
mov dword [eax], edx
mov dword [eax + 4], edx
lea eax, [esi + 0x13]
mov ecx, edi
sub ecx, eax
lea edx, [ecx + 0x24048]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x4cdcb0
lea eax, [esi + 0x93]
mov edx, edi
sub edx, eax
add edx, 0x240c8
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x4cdcd0
mov esi, dword [esp + 0x18]
mov byte [edi + 0x240dc], cl
mov eax, dword [esi + 0x88]
add edi, 0x240e0
call fcn.00416ce0
mov cl, byte [esi + 0x8c]
mov eax, dword [0x87b40c]
mov byte [eax + 0x240ec], cl
lea ecx, [eax + 0x24115]
mov byte [eax + 0x240ed], 1
or edx, 0xffffffff
mov dword [ecx], edx
mov dword [ecx + 4], edx
lea ecx, [eax + 0x1a634]
lea esi, [eax + 0x19ec1]
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea edi, [eax + edx*4 + 0x24165]
jmp 0x4cdd40
mov cl, byte [esi]
inc esi
mov byte [edi], cl
inc edi
test cl, cl
jne 0x4cdd40
lea ecx, [eax + 0x1a634]
lea esi, [eax + 0x24328]
call fcn.0042c6d0
mov cl, byte [esi]
mov esi, dword [0x87b40c]
mov byte [esi + eax*2 + 0x2432a], cl
lea ecx, [esi + 0x1a634]
lea edi, [esi + 0x24329]
call fcn.0042c6d0
mov esi, dword [0x87b40c]
mov dl, byte [edi]
lea ecx, [esi + 0x1a634]
mov byte [esi + eax*2 + 0x2432b], dl
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov byte [eax + ecx + 0x2433a], 0
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov byte [eax + ecx + 0x24342], 1
lea esi, [ecx + 0x19ea4]
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
lea edx, [ecx + eax*8]
lea edi, [eax + edx + 0x2411d]
lea ecx, [ecx]
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
test al, al
jne 0x4cdde0
add ecx, 0x19f00
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x2440c], esi
lea esi, [ecx + 0x19ed6]
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x2434a], dx
lea esi, [ecx + 0x19ed8]
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x2435a], dx
add ecx, 0x19ee8
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x243ac], esi
add ecx, 0x19ef0
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x243cc], esi
add ecx, 0x19ef8
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x243ec], esi
lea esi, [ecx + 0x19eda]
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x2437a], dx
lea esi, [ecx + 0x19ee4]
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dx, word [esi]
mov word [ecx + eax*2 + 0x2436a], dx
add ecx, 0x19edc
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x2438c], esi
add ecx, 0x1a5ec
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov word [ecx + eax*8 + 0x24268], si
add ecx, 0x1a5f4
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov word [ecx + eax*8 + 0x2426a], si
add ecx, 0x1a5fc
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov word [ecx + eax*8 + 0x2426c], si
add ecx, 0x1a604
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov word [ecx + eax*8 + 0x2426e], si
add ecx, 0x1a60c
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, eax
mov eax, dword [0x87b40c]
shl ecx, 4
mov dword [ecx + eax + 0x242a8], esi
lea ecx, [eax + 0x1a614]
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov edx, eax
mov eax, dword [0x87b40c]
shl edx, 4
lea ecx, [eax + 0x1a61c]
mov dword [edx + eax + 0x242ac], esi
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov ecx, eax
mov eax, dword [0x87b40c]
add ecx, 0x242b
shl ecx, 4
mov dword [ecx + eax], esi
lea ecx, [eax + 0x1a624]
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
mov edx, eax
mov eax, dword [0x87b40c]
shl edx, 4
lea ecx, [eax + 0x1a634]
mov dword [edx + eax + 0x242b4], esi
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x250ac], ebx
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x250cc], ebx
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x25dac], ebx
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x25dcc], ebx
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x25d6c], ebx
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
mov dword [ecx + eax*4 + 0x25d8c], ebx
xor edi, edi
mov ebx, 0x1a048
mov edi, edi
lea ecx, [ebx + ecx - 0xa0]
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
lea eax, [eax + eax*4]
lea ecx, [edi + eax*4]
mov eax, dword [0x87b40c]
mov dword [eax + ecx*4 + 0x2442c], esi
lea ecx, [ebx + eax]
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [edi + edx*4]
mov dword [eax + ecx*4 + 0x246ac], esi
lea ecx, [eax + 0x1a634]
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [edi + edx*4]
lea esi, [eax + ecx*4 + 0x246ac]
lea ecx, [eax + 0x1a634]
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [edi + edx*4]
mov ecx, dword [eax + ecx*4 + 0x2442c]
add ecx, dword [esi]
mov dword [esp + 0x14], ecx
lea ecx, [eax + 0x1a634]
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [edi + edx*4]
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 0x24e2c], edx
lea ecx, [eax + 0x1a634]
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
lea esi, [ecx + eax*4 + 0x250ac]
add ecx, 0x1a634
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [edi + edx*4]
mov edx, dword [eax + ecx*4 + 0x2442c]
add dword [esi], edx
lea ecx, [eax + 0x1a634]
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
lea esi, [ecx + eax*4 + 0x250cc]
add ecx, 0x1a634
call fcn.0042c6d0
lea eax, [eax + eax*4]
lea ecx, [edi + eax*4]
mov eax, dword [0x87b40c]
mov edx, dword [eax + ecx*4 + 0x246ac]
add dword [esi], edx
lea ecx, [ebx + eax + 0x280]
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
mov esi, eax
call fcn.0042c6d0
lea eax, [eax + eax*4]
lea ecx, [edi + eax*4]
mov eax, dword [0x87b40c]
mov dword [eax + ecx*4 + 0x250ec], esi
lea ecx, [ebx + eax + 0x320]
call fcn.0042c6d0
mov esi, eax
mov ecx, dword [0x87b40c]
add ecx, 0x1a634
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [edi + edx*4]
mov dword [eax + ecx*4 + 0x2536c], esi
lea ecx, [eax + 0x1a634]
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [edi + edx*4]
lea esi, [eax + ecx*4 + 0x2536c]
lea ecx, [eax + 0x1a634]
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [edi + edx*4]
mov ecx, dword [eax + ecx*4 + 0x250ec]
add ecx, dword [esi]
mov dword [esp + 0x14], ecx
lea ecx, [eax + 0x1a634]
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [edi + edx*4]
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 0x25aec], edx
lea ecx, [eax + 0x1a634]
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
lea esi, [ecx + eax*4 + 0x25d6c]
add ecx, 0x1a634
call fcn.0042c6d0
lea edx, [eax + eax*4]
mov eax, dword [0x87b40c]
lea ecx, [edi + edx*4]
mov edx, dword [eax + ecx*4 + 0x250ec]
add dword [esi], edx
lea ecx, [eax + 0x1a634]
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
lea esi, [ecx + eax*4 + 0x25d8c]
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
lea eax, [eax + eax*4]
lea edx, [edi + eax*4]
mov eax, dword [ecx + edx*4 + 0x2536c]
mov edx, dword [esi]
add edx, eax
add ebx, 8
inc edi
cmp ebx, 0x1a0e8
mov dword [esi], edx
jl 0x4ce150
add ecx, 0x1a634
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
lea esi, [ecx + eax*4 + 0x25dac]
add ecx, 0x1a554
call fcn.0042c6d0
mov edx, dword [esi]
mov ecx, dword [0x87b40c]
add edx, eax
add ecx, 0x1a634
mov dword [esi], edx
call fcn.0042c6d0
mov ecx, dword [0x87b40c]
lea esi, [ecx + eax*4 + 0x25dcc]
add ecx, 0x1a54c
call fcn.0042c6d0
mov ecx, dword [esi]
push 0x257
push 0x31f
add ecx, eax
push 0
mov dword [esi], ecx
push 0
mov ecx, 0x8f69c8
mov byte [0x87b7bd], 0
call fcn.0052ca30
mov ecx, dword [0x87b794]
mov esi, dword [0x87b40c]
mov byte [ecx + 8], 0
mov ax, word [esi + 0x24044]
mov cx, word [esi + 0x1e56c]
call fcn.0044dce0
push 9
mov byte [esi + 0x24108], 0
call fcn.00413940
mov ebx, dword [0x87b7a4]
mov edx, dword [0x87b40c]
add esp, 4
test ebx, ebx
mov dword [edx + 0x1fed0], 0xffffffff
je 0x4ce48f
call fcn.004082f0
jmp 0x4ce499
push 0x8f6f90
call fcn.00406550
mov edx, dword [ebp + 8]
mov esi, dword [0x87b40c]
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 0x4ce528
jmp 0x4ce4d0
mov ecx, dword [ebp + 0x10]
mov cl, byte [ebx + ecx]
cmp cl, 0xa
jne 0x4ce518
lea eax, [esp + 0x90]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ce4e5
push 1
push 0
sub eax, edx
lea edx, [esp + 0x98]
push edx
push 0
push 0
push 2
push esi
call fcn.00420660
mov ecx, 0x80
xor eax, eax
lea edi, [esp + 0x90]
rep stosd dword es:[edi], eax
jmp 0x4ce520
mov byte [esp + eax + 0x90], cl
inc eax
mov ecx, dword [ebp + 8]
inc ebx
cmp ebx, ecx
jl 0x4ce4d0
lea eax, [esp + 0x90]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ce532
push 1
push 0
lea ecx, [esp + 0x98]
push ecx
push 0
push 0
push 2
sub eax, edx
push esi
call fcn.00420660
mov ecx, dword [esp + 0x3e4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [0x87b40c]
cmp byte [edx + 0x1fecc], 2
mov bl, 1
mov eax, 0x8ff808
mov edi, 0x28
je 0x4ce58a
mov edi, 0x20
call fcn.004c90a0
mov bl, 1
mov edi, 0x1f
mov eax, 0x8ff808
call fcn.004c90a0
mov eax, dword [esp + 0x18]
push eax
call fcn.004fe390
mov ecx, dword [esp + 0x3e4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ebx, dword [0x87b40c]
mov eax, dword [ebp + 0x10]
movzx esi, byte [ebx + 0x239d8]
mov cx, word [eax]
add eax, 2
xor edx, edx
test esi, esi
jle case.default.0x4ce703
movzx edi, cx
lea ecx, [ebx + 0x23a00]
lea ebx, [ebx]
cmp dword [ecx], edi
je 0x4ce613
inc edx
add ecx, 4
cmp edx, esi
jl 0x4ce5f0
mov ecx, dword [esp + 0x3e4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp edx, 0xffffffff
je case.default.0x4ce703
movzx esi, byte [eax]
inc eax
test esi, esi
mov dword [esp + 0x18], esi
jne 0x4ce646
mov dword [ebx + edx*4 + 0x239dc], esi
mov ecx, dword [esp + 0x3e4]
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 + 0x239dc], 1
mov edi, edx
shl edi, 7
test esi, esi
setl cl
mov dword [esp + 0x14], edi
lea edi, [edi + ebx + 0x23a24]
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 [0x87b40c]
mov byte [edi + esi + 0x23a24], 0
mov cl, byte [eax]
mov byte [edx + esi + 0x23ea4], cl
mov ecx, dword [eax + 1]
inc eax
mov dword [esi + edx*4 + 0x23eb0], ecx
mov cl, byte [eax + 4]
add eax, 4
inc eax
mov byte [edx + esi + 0x23ed4], cl
mov cl, byte [eax]
inc eax
mov byte [edx + esi + 0x23ee6], cl
mov cl, byte [eax]
inc eax
mov byte [edx + esi + 0x23eef], cl
mov cl, byte [eax]
mov byte [edx + esi + 0x23ef8], cl
mov al, byte [eax + 1]
mov byte [edx + esi + 0x23f01], al
jmp 0x4ce8e3
cmp eax, 0x3010
jg 0x4ce963
je 0x4ce92d
sub eax, 0x21f1
cmp eax, 6
ja case.default.0x4ce703
jmp dword [eax*4 + 0x4ce9b4]
mov ecx, dword [ebp + 0x10]
mov si, word [ecx]
mov edi, dword [0x87b40c]
mov ecx, edi
call fcn.00420e20
cmp eax, 0xffffffff
je case.default.0x4ce703
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 8], eax
jne 0x4ce736
mov dword [ecx + 8], 0xffffffff
mov dword [edi + eax*4 + 0x239dc], 0
jmp 0x4ce8e3
mov edi, dword [ebp + 0x10]
mov ecx, dword [0x87b40c]
xor esi, esi
mov si, word [edi]
add edi, 2
call fcn.00420e20
cmp eax, 0xffffffff
je case.default.0x4ce703
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 8], eax
jne 0x4ce775
mov dword [ecx + 8], 0xffffffff
mov edx, dword [ebp + 8]
mov esi, dword [0x87b40c]
xor ebx, ebx
lea ecx, [edx - 2]
test ecx, ecx
setl bl
shl eax, 7
add eax, esi
mov esi, edi
lea edi, [eax + 0x23a24]
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 + 0x23a22], 0
jmp 0x4ce8e3
mov edi, dword [ebp + 0x10]
mov ebx, dword [0x87b40c]
xor esi, esi
mov si, word [edi]
mov ecx, ebx
add edi, 2
call fcn.00420e20
cmp eax, 0xffffffff
je case.default.0x4ce703
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 8], eax
jne 0x4ce7e4
mov dword [ecx + 8], 0xffffffff
mov dl, byte [edi]
mov byte [eax + ebx + 0x23ea4], dl
jmp 0x4ce8e3
mov edi, dword [ebp + 0x10]
mov ebx, dword [0x87b40c]
xor esi, esi
mov si, word [edi]
mov ecx, ebx
add edi, 2
call fcn.00420e20
cmp eax, 0xffffffff
je case.default.0x4ce703
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 8], eax
jne 0x4ce823
mov dword [ecx + 8], 0xffffffff
mov ecx, dword [edi]
mov dword [ebx + eax*4 + 0x23eb0], ecx
jmp 0x4ce8e3
mov edi, dword [ebp + 0x10]
mov ebx, dword [0x87b40c]
xor esi, esi
mov si, word [edi]
mov ecx, ebx
add edi, 2
call fcn.00420e20
cmp eax, 0xffffffff
je case.default.0x4ce703
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 8], eax
jne 0x4ce862
mov dword [ecx + 8], 0xffffffff
mov dl, byte [edi]
mov byte [eax + ebx + 0x23ee6], dl
jmp 0x4ce8e3
mov edi, dword [ebp + 0x10]
mov ebx, dword [0x87b40c]
xor esi, esi
mov si, word [edi]
mov ecx, ebx
add edi, 2
call fcn.00420e20
cmp eax, 0xffffffff
je case.default.0x4ce703
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 8], eax
jne 0x4ce89e
mov dword [ecx + 8], 0xffffffff
mov cl, byte [edi]
mov byte [eax + ebx + 0x23eef], cl
jmp 0x4ce8e3
mov edi, dword [ebp + 0x10]
mov ebx, dword [0x87b40c]
xor esi, esi
mov si, word [edi]
mov ecx, ebx
add edi, 2
call fcn.00420e20
cmp eax, 0xffffffff
je case.default.0x4ce703
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 8], eax
jne 0x4ce8da
mov dword [ecx + 8], 0xffffffff
mov dl, byte [edi]
mov byte [eax + ebx + 0x23ef8], dl
push 0
push 0x5d99f0
push 0x5d80f8
push 0
call fcn.004c75b0
mov ebx, 0x1f
mov edi, eax
call fcn.00403290
push eax
call fcn.0054a821
add esp, 0x14
test eax, eax
je case.default.0x4ce703
mov edi, eax
call fcn.004fe790
mov ecx, dword [esp + 0x3e4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [0x87b3a4]
test ecx, ecx
je case.default.0x4ce703
call fcn.004f28d0
mov eax, dword [ebp + 0x10]
movzx ecx, byte [eax]
call fcn.004f1c80
mov eax, dword [0x87b40c]
cmp byte [eax + 0x23f7c], 1
jne case.default.0x4ce703
mov cl, byte [eax + 0x240ed]
cmp cl, byte [eax + 0x240ec]
jmp 0x4ce968
cmp eax, 0x3432
jne case.default.0x4ce703
push 9
call fcn.00413940
add esp, 4
mov ecx, dword [esp + 0x3e4]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc