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

Disassembly:
sub esp, 0x140
push ebx
push ebp
xor eax, eax
push esi
push edi
cmp dword [esp + 0x158], eax
jne 0x4c0100
cmp dword [esp + 0x16c], eax
jne 0x4c00e0
push 1
push eax
push eax
push eax
push eax
push eax
lea eax, [esp + 0x184]
push eax
call fcn.004c00a0
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
lea eax, [esp + 0x16c]
sub eax, dword [esp + 0x154]
cdq
xor eax, edx
sub eax, edx
neg eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov ebx, dword [esp + 0x164]
mov ecx, dword [ebx]
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], eax
cmp ecx, dword [ebx + 4]
jae 0x4c5a4e
mov ebp, dword [esp + 0x154]
jmp 0x4c0125
xor eax, eax
inc ecx
mov dword [ebx], ecx
mov ecx, dword [esp + 0x16c]
cmp ecx, dword [ebx + 8]
jae 0x4c5a60
cmp dword [ebx + 0x9c], 2
jne 0x4c0161
mov edx, dword [esp + 0x168]
lea ecx, [esp + 0x54]
mov dword [esp + 0x58], ebp
mov dword [esp + 0x54], edx
mov dword [esp + 0x168], ecx
mov dword [ebx + 0x9c], eax
mov esi, dword [esp + 0x158]
movzx eax, word [esi]
xor ecx, ecx
mov edx, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], edx
cmp edx, 0x9b
ja case.0x4c018e.98
movzx edi, byte [edx + 0x4c7fdc]
jmp dword [edi*4 + 0x4c7e94]
mov ebx, dword [esp + 0x164]
cmp dword [ebx + 0x70], ecx
je 0x4c5d1b
movzx edx, byte [edx + 0x4f5b68]
movzx eax, word [esi + 2]
add edx, eax
lea ecx, [esi + edx*2]
mov dword [esp + 0x158], ecx
jmp 0x4c0161
mov ebx, dword [esp + 0x164]
mov edx, dword [ebx + 0xb0]
mov edi, dword [esp + 0x15c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], edx
mov edi, edi
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x160]
mov esi, dword [esp + 0x158]
inc eax
push eax
push ecx
push ebx
push edx
push edi
lea eax, [esi + 4]
push eax
push ebp
call fcn.004c00a0
add esp, 0x1c
cmp eax, 1
je 0x4c02d5
cmp eax, 0xfffffc20
jne 0x4c023e
movzx ecx, word [esi + 2]
lea ecx, [esi + ecx*2]
cmp dword [ebx + 0x80], ecx
jae 0x4c7e86
cmp word [esi], 0x71
je 0x4c0246
cmp word [ecx], 0x71
jmp 0x4c0240
test eax, eax
jne 0x4c7e86
movzx edx, word [esi + 2]
mov ecx, dword [esp + 0x24]
lea eax, [esi + edx*2]
mov dword [ebx + 0xb0], ecx
cmp word [eax], 0x71
mov dword [esp + 0x158], eax
je 0x4c01e0
mov esi, eax
movzx eax, word [esi]
cmp eax, 0x7c
je 0x4c0280
cmp eax, 0x71
jne case.0x4c018e.151
jmp 0x4c0280
mov eax, dword [esp + 0x158]
movzx edx, word [eax + 2]
cmp word [eax + edx*2], 0x71
lea eax, [eax + edx*2]
mov dword [esp + 0x158], eax
je 0x4c0280
mov esi, dword [esp + 0x158]
cmp word [esi], 0x72
mov eax, dword [ebx + 0x90]
mov ebp, dword [ebx + 0x84]
mov dword [esp + 0x160], eax
je 0x4c02c6
cmp ebp, dword [esp + 0x20]
jne 0x4c56cd
add esi, 4
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov edi, dword [ebx + 0x80]
mov dword [esp + 0x15c], edi
jmp 0x4c026a
mov dword [esp + 0x24], ecx
jmp 0x4c0de9
cmp word [esi + 4], 0x70
movzx edi, word [esi + 2]
mov ebx, dword [esp + 0x164]
jne 0x4c03e4
mov ecx, dword [0x51c080]
test ecx, ecx
je 0x4c03da
mov dword [esp + 0xa0], 2
movzx eax, word [esi + 6]
mov dword [esp + 0xa4], eax
mov edx, dword [ebx + 0xc]
mov dword [esp + 0xa8], edx
mov eax, dword [ebx + 0x78]
mov dword [esp + 0xac], eax
mov edx, dword [ebx + 0x7c]
sub edx, dword [ebx + 0x78]
mov eax, dword [esp + 0x15c]
sar edx, 1
mov dword [esp + 0xb0], edx
sub eax, dword [ebx + 0x78]
mov edx, ebp
sar eax, 1
mov dword [esp + 0xb4], eax
sub edx, dword [ebx + 0x78]
sar edx, 1
mov dword [esp + 0xb8], edx
movzx eax, word [esi + 8]
mov dword [esp + 0xc8], eax
movzx edx, word [esi + 0xa]
mov eax, dword [esp + 0x160]
mov dword [esp + 0xcc], edx
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0xbc], eax
mov eax, dword [ebx + 0x94]
mov dword [esp + 0xc0], eax
mov edx, dword [ebx + 0xac]
mov dword [esp + 0xc4], edx
mov eax, dword [ebx + 0xb4]
lea edx, [esp + 0xa0]
push edx
mov dword [esp + 0xd4], eax
call ecx
add esp, 4
test eax, eax
jg case.0x4c018e.151
js 0x4c7e86
mov edx, dword [esp + 0x14]
add esi, 0xc
mov dword [esp + 0x158], esi
movzx ecx, word [esi + 4]
lea eax, [esi + 4]
cmp ecx, 0x89
je 0x4c05ea
cmp ecx, 0x8a
je 0x4c05ea
cmp ecx, 0x87
je 0x4c047b
cmp ecx, 0x88
je 0x4c047b
cmp ecx, 0x8b
jne 0x4c0427
movzx eax, word [esi + 2]
lea eax, [esi + eax*2]
jmp 0x4c0728
mov edx, dword [esp + 0x160]
mov dword [ebx + 0x9c], 1
mov ecx, dword [esp + 0x16c]
inc ecx
push ecx
mov ecx, dword [esp + 0x160]
push 0
push ebx
push edx
push ecx
push eax
push ebp
call fcn.004c00a0
add esp, 0x1c
cmp eax, 1
je 0x4c5670
test eax, eax
je 0x4c046f
cmp eax, 0xfffffc20
jne 0x4c7e86
mov edx, dword [esp + 0x14]
lea eax, [esi + edi*2]
jmp 0x4c0728
movzx eax, word [esi + 6]
add eax, eax
cmp eax, dword [esp + 0x160]
jge 0x4c0497
mov edi, dword [ebx + 0xc]
cmp dword [edi + eax*4], 0
jge 0x4c05d5
mov dword [esp + 0x20], 0
cmp ecx, 0x88
jne 0x4c059f
mov ecx, dword [ebx + 0x20]
mov esi, dword [ebx + 0x28]
sar eax, 1
xor edi, edi
mov dword [esp + 0x18], ecx
test ecx, ecx
jle 0x4c04d2
lea ecx, [ecx]
movzx edx, word [esi]
cmp edx, eax
je 0x4c04d2
mov edx, dword [ebx + 0x24]
inc edi
lea esi, [esi + edx*2]
cmp edi, ecx
jl 0x4c04c0
cmp edi, ecx
jge 0x4c059f
mov eax, dword [esp + 0x164]
mov eax, dword [eax + 0x28]
mov ebx, esi
mov dword [esp + 0x30], eax
cmp esi, eax
jbe 0x4c0543
mov ecx, dword [esp + 0x164]
mov eax, dword [ecx + 0x24]
add eax, eax
mov dword [esp + 0x24], eax
mov edi, edi
sub ebx, dword [esp + 0x24]
lea ecx, [esi + 2]
lea eax, [ebx + 2]
call fcn.004c92e0
test eax, eax
jne 0x4c0543
movzx eax, word [ebx]
add eax, eax
cmp eax, dword [esp + 0x160]
jge 0x4c0535
mov edx, dword [esp + 0x164]
mov ecx, dword [edx + 0xc]
cmp dword [ecx + eax*4], 0
jge 0x4c05c4
mov dword [esp + 0x20], 0
cmp ebx, dword [esp + 0x30]
ja 0x4c0500
inc edi
cmp edi, dword [esp + 0x18]
jge 0x4c059f
mov edx, dword [esp + 0x164]
mov ebx, dword [edx + 0x24]
lea eax, [esi + 2]
add ebx, ebx
mov dword [esp + 0x30], eax
lea ecx, [ecx]
mov ecx, dword [esp + 0x30]
add esi, ebx
lea eax, [esi + 2]
call fcn.004c92e0
test eax, eax
jne 0x4c059f
movzx eax, word [esi]
add eax, eax
cmp eax, dword [esp + 0x160]
jge 0x4c0590
mov ecx, dword [esp + 0x164]
mov edx, dword [ecx + 0xc]
cmp dword [edx + eax*4], 0
jge 0x4c05c8
inc edi
mov dword [esp + 0x20], 0
cmp edi, dword [esp + 0x18]
jl 0x4c0560
mov eax, dword [esp + 0x158]
movzx eax, word [eax + 2]
mov esi, dword [esp + 0x158]
mov ebx, dword [esp + 0x164]
mov edx, dword [esp + 0x14]
lea eax, [esi + eax*2]
jmp 0x4c071d
mov ebx, edx
jmp 0x4c05ca
mov ebx, ecx
mov esi, dword [esp + 0x158]
mov edx, dword [esp + 0x14]
mov eax, 2
mov dword [esp + 0x20], 1
lea eax, [esi + eax*2]
jmp 0x4c071d
cmp dword [ebx + 0xa8], 0
jne 0x4c05ff
movzx ecx, word [esi + 2]
lea eax, [esi + ecx*2]
jmp 0x4c0728
movzx edx, word [esi + 6]
cmp edx, 0xffff
je 0x4c0741
mov eax, dword [ebx + 0xa8]
mov eax, dword [eax + 4]
mov dword [esp + 0x30], eax
cmp edx, eax
je 0x4c0741
mov dword [esp + 0x20], 0
cmp ecx, 0x8a
jne 0x4c06f4
mov ecx, dword [esp + 0x164]
mov eax, dword [ecx + 0x20]
mov esi, dword [ecx + 0x28]
xor ebx, ebx
mov dword [esp + 0x18], eax
test eax, eax
jle 0x4c0662
nop
movzx edi, word [esi]
cmp edi, edx
je 0x4c0662
mov edi, dword [ecx + 0x24]
inc ebx
lea esi, [esi + edi*2]
cmp ebx, eax
jl 0x4c0650
cmp ebx, eax
jge 0x4c06f4
mov eax, dword [ecx + 0x28]
mov edi, esi
mov dword [esp + 0x34], eax
cmp esi, eax
jbe 0x4c06af
mov eax, dword [ecx + 0x24]
add eax, eax
mov dword [esp + 0x24], eax
sub edi, dword [esp + 0x24]
lea ecx, [esi + 2]
lea eax, [edi + 2]
call fcn.004c92e0
test eax, eax
jne 0x4c06af
movzx ecx, word [edi]
cmp ecx, dword [esp + 0x30]
sete al
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4c0749
cmp edi, dword [esp + 0x34]
ja 0x4c0680
inc ebx
cmp ebx, dword [esp + 0x18]
jge 0x4c06f4
mov edx, dword [esp + 0x164]
mov edi, dword [edx + 0x24]
lea eax, [esi + 2]
add edi, edi
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x34]
add esi, edi
lea eax, [esi + 2]
call fcn.004c92e0
test eax, eax
jne 0x4c06f4
movzx ecx, word [esi]
cmp ecx, dword [esp + 0x30]
sete al
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4c0749
inc ebx
cmp ebx, dword [esp + 0x18]
jl 0x4c06c9
mov edx, dword [esp + 0x158]
movzx eax, word [edx + 2]
mov ecx, dword [esp + 0x158]
mov ebx, dword [esp + 0x164]
lea edx, [ecx + eax*2]
mov dword [esp + 0x158], edx
mov eax, edx
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x20], 0
jne 0x4c56b2
cmp word [eax], 0x71
je 0x4c56b2
add eax, 4
mov dword [esp + 0x158], eax
jmp 0x4c0161
mov dword [esp + 0x20], 1
mov eax, 2
jmp 0x4c06ff
mov eax, dword [esp + 0x158]
movzx esi, word [eax + 2]
mov ecx, dword [esp + 0x164]
lea eax, [esi + esi]
mov dword [ecx + 0x94], esi
cmp eax, dword [ecx + 0x14]
jl 0x4c0784
add dword [esp + 0x158], 4
mov dword [ecx + 0x40], 1
jmp 0x4c0161
mov edi, dword [ecx + 0x10]
mov edx, dword [ecx + 0xc]
sub edi, esi
mov esi, dword [edx + edi*4]
mov dword [edx + eax*4], esi
mov edx, ebp
sub edx, dword [ecx + 0x78]
mov ecx, dword [ecx + 0xc]
sar edx, 1
mov dword [ecx + eax*4 + 4], edx
cmp dword [esp + 0x160], eax
jg 0x4c07b3
add eax, 2
mov dword [esp + 0x160], eax
add dword [esp + 0x158], 4
jmp 0x4c0161
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0xb0]
mov eax, 1
mov dword [esp + 0x24], edx
cmp dword [esi + 0x9c], eax
jne 0x4c07ea
mov dword [esp + 0x20], eax
mov dword [esi + 0x9c], ecx
jmp 0x4c07ee
mov dword [esp + 0x20], ecx
mov edi, dword [esp + 0x15c]
mov ebx, dword [esp + 0x160]
lea esp, [esp]
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x158]
inc eax
push eax
push 0
push esi
push ebx
push edi
add ecx, 4
push ecx
push ebp
call fcn.004c00a0
add esp, 0x1c
cmp eax, 1
je 0x4c0864
cmp eax, 0xfffffc19
je 0x4c0864
test eax, eax
je 0x4c083d
cmp eax, 0xfffffc20
jne 0x4c7e86
mov eax, dword [esp + 0x158]
movzx edx, word [eax + 2]
mov ecx, dword [esp + 0x24]
lea eax, [eax + edx*2]
mov dword [esi + 0xb0], ecx
cmp word [eax], 0x71
mov dword [esp + 0x158], eax
je 0x4c0800
jmp 0x4c0871
mov edx, dword [esi + 0x80]
mov dword [esp + 0x15c], edx
mov eax, dword [esp + 0x158]
cmp word [eax], 0x72
je case.0x4c018e.151
cmp dword [esp + 0x20], 0
jne 0x4c60d1
lea ecx, [ecx]
mov eax, dword [esp + 0x158]
movzx ecx, word [eax + 2]
cmp word [eax + ecx*2], 0x71
lea eax, [eax + ecx*2]
mov dword [esp + 0x158], eax
je 0x4c0890
mov edx, dword [esi + 0x90]
add dword [esp + 0x158], 4
mov dword [esp + 0x160], edx
jmp 0x4c0161
mov esi, dword [esp + 0x164]
mov eax, dword [esi + 0xb0]
mov dword [esp + 0x24], eax
mov eax, 1
cmp dword [esi + 0x9c], eax
jne 0x4c08f0
mov dword [esp + 0x20], eax
mov dword [esi + 0x9c], ecx
jmp 0x4c08f4
mov dword [esp + 0x20], ecx
mov ebx, dword [esp + 0x160]
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x15c]
mov edi, dword [esp + 0x158]
inc ecx
push ecx
push 0
push esi
push ebx
push edx
lea eax, [edi + 4]
push eax
push ebp
call fcn.004c00a0
mov ecx, dword [esp + 0x40]
add esp, 0x1c
mov dword [esi + 0xb0], ecx
cmp eax, 1
je case.0x4c018e.151
cmp eax, 0xfffffc19
je case.0x4c018e.151
cmp eax, 0xfffffc1e
je 0x4c0980
cmp eax, 0xfffffc1d
je 0x4c0980
cmp eax, 0xfffffc1a
je 0x4c0980
test eax, eax
je 0x4c0966
cmp eax, 0xfffffc20
jne 0x4c7e86
movzx edx, word [edi + 2]
cmp word [edi + edx*2], 0x71
lea eax, [edi + edx*2]
mov dword [esp + 0x158], eax
jne 0x4c099c
jmp 0x4c08fb
mov eax, dword [esp + 0x158]
movzx ecx, word [eax + 2]
cmp word [eax + ecx*2], 0x71
lea eax, [eax + ecx*2]
mov dword [esp + 0x158], eax
je 0x4c0980
cmp dword [esp + 0x20], 0
jne 0x4c60d1
add eax, 4
mov dword [esp + 0x158], eax
jmp 0x4c0161
movzx eax, word [esi + 2]
mov edx, dword [esp + 0x164]
cmp eax, ecx
jle 0x4c09f1
mov ecx, dword [edx + 0x78]
sub ebp, 2
dec eax
cmp ebp, ecx
jb case.0x4c018e.151
mov di, word [ebp]
mov ebx, 0xfc00
and di, bx
mov ebx, 0xdc00
cmp di, bx
jne 0x4c09ed
sub ebp, 2
test eax, eax
jg 0x4c09c8
cmp ebp, dword [edx + 0x88]
jae 0x4c09ff
mov dword [edx + 0x88], ebp
add esi, 4
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov esi, dword [0x51c080]
mov edi, dword [esp + 0x158]
test esi, esi
je 0x4c0ae4
mov ecx, dword [esp + 0x164]
mov dword [esp + 0x68], 2
movzx edx, word [edi + 2]
mov dword [esp + 0x6c], edx
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x70], eax
mov edx, dword [ecx + 0x78]
mov dword [esp + 0x74], edx
mov eax, dword [ecx + 0x7c]
sub eax, dword [ecx + 0x78]
mov edx, dword [esp + 0x15c]
sar eax, 1
mov dword [esp + 0x78], eax
sub edx, dword [ecx + 0x78]
mov eax, ebp
sar edx, 1
mov dword [esp + 0x7c], edx
sub eax, dword [ecx + 0x78]
sar eax, 1
mov dword [esp + 0x80], eax
movzx edx, word [edi + 8]
mov dword [esp + 0x90], edx
movzx eax, word [edi + 0xa]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x160]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x84], eax
mov edx, dword [ecx + 0x94]
mov dword [esp + 0x88], edx
mov eax, dword [ecx + 0xac]
mov dword [esp + 0x8c], eax
mov ecx, dword [ecx + 0xb4]
mov dword [esp + 0x98], ecx
mov edx, dword [edi + 4]
lea eax, [esp + 0x68]
push eax
mov dword [esp + 0xa0], edx
call esi
add esp, 4
test eax, eax
jg case.0x4c018e.151
js 0x4c7e86
add edi, 0xc
mov dword [esp + 0x158], edi
jmp 0x4c0161
mov ecx, dword [esp + 0x158]
movzx edx, word [ecx + 2]
mov ebx, dword [esp + 0x164]
mov eax, dword [ebx + 0x74]
lea esi, [eax + edx*2]
cmp esi, eax
jne 0x4c0b13
xor ecx, ecx
jmp 0x4c0b17
movzx ecx, word [esi + 4]
mov eax, dword [ebx + 0xa8]
test eax, eax
je 0x4c0b35
cmp ecx, dword [eax + 4]
jne 0x4c0b2f
cmp ebp, dword [eax + 0x10]
je 0x4c602c
mov eax, dword [eax]
test eax, eax
jne 0x4c0b21
add dword [esp + 0x158], 4
mov dword [esp + 0x44], ecx
mov dword [esp + 0x50], ebp
mov ecx, dword [ebx + 0xa8]
mov dword [esp + 0x40], ecx
lea edx, [esp + 0x40]
mov dword [ebx + 0xa8], edx
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x4c], ecx
cmp ecx, 0x1e
jg 0x4c0b72
lea eax, [esp + 0xd8]
mov dword [esp + 0x48], eax
jmp 0x4c0b93
lea eax, [ecx*4]
push eax
call dword [0x516380]
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
je 0x4c603c
mov ecx, dword [esp + 0x4c]
mov edx, dword [ebx + 0xc]
add ecx, ecx
add ecx, ecx
push ecx
push edx
push eax
call fcn.004d23c0
mov eax, 0x82
add esp, 0xc
cmp word [esi], ax
sbb eax, eax
inc eax
mov dword [esp + 0x20], eax
test eax, eax
je 0x4c0bc2
mov dword [ebx + 0x9c], 2
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x160]
inc ecx
push ecx
mov ecx, dword [esp + 0x160]
push edx
movzx edx, word [esi]
push ebx
push eax
movzx eax, byte [edx + 0x4f5b68]
push ecx
lea ecx, [esi + eax*2]
push ecx
push ebp
call fcn.004c00a0
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
add esp, 0x1c
mov edi, eax
lea eax, [edx*4]
mov edx, dword [ebx + 0xc]
push eax
push ecx
push edx
call fcn.004d23c0
mov eax, dword [esp + 0x4c]
add esp, 0xc
mov dword [ebx + 0xa8], eax
cmp edi, 1
je 0x4c0c66
cmp edi, 0xfffffc19
je 0x4c0c66
test edi, edi
je 0x4c0c41
cmp edi, 0xfffffc20
jne 0x4c604c
lea ecx, [esp + 0x40]
mov dword [ebx + 0xa8], ecx
movzx edx, word [esi + 2]
cmp word [esi + edx*2], 0x71
lea esi, [esi + edx*2]
jne 0x4c6076
mov eax, dword [esp + 0x20]
jmp 0x4c0bb4
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0xd8]
cmp eax, ecx
je 0x4c0c7f
push eax
call dword [0x516384]
add esp, 4
mov edx, dword [ebx + 0x80]
mov ebp, dword [ebx + 0x84]
mov dword [esp + 0x15c], edx
jmp 0x4c0161
mov eax, dword [esp + 0x158]
movzx ecx, word [eax + 2]
cmp word [eax + ecx*2], 0x71
lea eax, [eax + ecx*2]
mov dword [esp + 0x158], eax
je case.0x4c018e.113
jmp 0x4c0161
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
mov esi, dword [esp + 0x158]
inc edx
push edx
mov edx, dword [esp + 0x164]
push eax
mov eax, dword [esp + 0x164]
push ecx
push edx
push eax
add esi, 2
push esi
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
jmp 0x4c0d10
movzx ecx, word [esi + 2]
cmp word [esi + ecx*2], 0x71
lea esi, [esi + ecx*2]
je 0x4c0d10
add esi, 4
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov esi, dword [esp + 0x158]
add esi, 2
mov eax, esi
lea esp, [esp]
movzx edx, word [eax + 2]
cmp word [eax + edx*2], 0x71
lea eax, [eax + edx*2]
je 0x4c0d40
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
inc ecx
push ecx
mov ecx, dword [esp + 0x168]
push edx
mov edx, dword [esp + 0x168]
push ecx
mov ecx, dword [esp + 0x168]
push edx
push ecx
add eax, 4
push eax
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
mov dword [esp + 0x158], esi
jmp 0x4c0161
lea eax, [esi + 2]
jmp 0x4c0da0
movzx edx, word [eax + 2]
cmp word [eax + edx*2], 0x71
lea eax, [eax + edx*2]
je 0x4c0da0
add eax, 4
mov dword [esp + 0x158], eax
jmp 0x4c0161
movzx eax, word [esi + 2]
add esi, 2
mov dword [esp + 0x158], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], 1
cmp eax, 0x80
je 0x4c0de9
cmp eax, 0x85
jne 0x4c0f9b
movzx edx, word [esi + 4]
mov ebx, dword [esp + 0x164]
lea ecx, [edx + edx]
mov dword [esp + 0x28], edx
cmp ecx, dword [ebx + 0x14]
jge 0x4c0f93
mov eax, dword [ebx + 0xc]
mov edi, dword [eax + ecx*4]
mov ecx, dword [eax + ecx*4 + 4]
mov esi, dword [esp + 0x158]
sub esi, dword [ebx + 0x74]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebx + 0x10]
sar esi, 1
sub ecx, edx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebx + 0x94]
mov dword [esp + 0x18], 0
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], edx
mov dword [esp + 0x20], eax
mov edx, dword [ebx + 0x10]
sub edx, dword [esp + 0x28]
mov eax, dword [ebx + 0xc]
mov edi, dword [esp + 0x158]
mov ecx, ebp
sub ecx, dword [ebx + 0x78]
sar ecx, 1
cmp dword [esp + 0x14], 0x82
mov dword [eax + edx*4], ecx
jl 0x4c0e6f
mov dword [ebx + 0x9c], 2
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x160]
inc ecx
push ecx
mov ecx, dword [esp + 0x160]
push edx
movzx edx, word [edi]
push ebx
push eax
movzx eax, byte [edx + 0x4f5b68]
push ecx
lea ecx, [edi + eax*2]
push ecx
push ebp
call fcn.004c00a0
add esp, 0x1c
cmp eax, 0xfffffc1b
jne 0x4c0ee6
mov edx, dword [ebx + 0x90]
mov eax, dword [ebx + 0x74]
mov ebp, dword [ebx + 0x84]
mov dword [esp + 0x160], edx
mov edx, dword [ebx + 0x94]
lea ecx, [eax + esi*2]
mov dword [esp + 0x158], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], 1
jmp 0x4c0e40
cmp eax, 0xfffffc20
jne 0x4c0f0c
movzx ecx, word [edi + 2]
lea ecx, [edi + ecx*2]
cmp dword [ebx + 0x80], ecx
jae 0x4c7e86
cmp word [edi], 0x71
je 0x4c0f14
cmp word [ecx], 0x71
jmp 0x4c0f0e
test eax, eax
jne 0x4c7e86
mov edx, dword [esp + 0x20]
mov dword [ebx + 0x94], edx
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea eax, [edi + eax*2]
mov dword [esp + 0x158], eax
je 0x4c0e40
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x4c0f6a
mov ecx, dword [esp + 0x28]
mov esi, dword [ebx + 0xc]
mov edi, dword [esp + 0x34]
lea eax, [ecx + ecx]
mov dword [esi + eax*4], edi
mov esi, dword [ebx + 0xc]
mov edi, dword [esp + 0x1c]
mov dword [esi + eax*4 + 4], edi
mov eax, dword [ebx + 0x10]
mov esi, dword [esp + 0x30]
sub eax, ecx
mov ecx, dword [ebx + 0xc]
mov dword [ecx + eax*4], esi
cmp dword [esp + 0x24], 0
jne 0x4c0f79
test edx, edx
je case.0x4c018e.151
add dword [esp + 0x158], 4
jmp 0x4c0161
mov ebx, dword [esp + 0x164]
mov dword [esp + 0x24], ecx
jmp 0x4c0fa2
xor ecx, ecx
mov dword [esp + 0x24], ecx
jmp 0x4c0fa2
mov ebx, dword [esp + 0x164]
mov edi, dword [esp + 0x164]
mov eax, esi
sub eax, dword [ebx + 0x74]
mov esi, dword [esp + 0x158]
mov ebx, dword [esp + 0x160]
sar eax, 1
mov dword [esp + 0x18], ecx
mov dword [esp + 0x30], eax
cmp dword [esp + 0x14], 0x82
jl 0x4c0fda
mov dword [edi + 0x9c], 2
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x15c]
inc edx
push edx
movzx edx, word [esi]
push eax
movzx eax, byte [edx + 0x4f5b68]
push edi
push ebx
push ecx
lea ecx, [esi + eax*2]
push ecx
push ebp
call fcn.004c00a0
add esp, 0x1c
cmp eax, 0xfffffc1b
jne 0x4c103a
mov ebx, dword [edi + 0x90]
mov edx, dword [edi + 0x74]
mov eax, dword [esp + 0x30]
mov ebp, dword [edi + 0x84]
mov dword [esp + 0x160], ebx
lea esi, [edx + eax*2]
mov dword [esp + 0x18], 1
jmp 0x4c0fc6
cmp eax, 0xfffffc20
jne 0x4c1060
movzx ecx, word [esi + 2]
lea ecx, [esi + ecx*2]
cmp dword [edi + 0x80], ecx
jae 0x4c7e86
cmp word [esi], 0x71
je 0x4c1068
cmp word [ecx], 0x71
jmp 0x4c1062
test eax, eax
jne 0x4c7e86
movzx edx, word [esi + 2]
cmp word [esi + edx*2], 0x71
lea esi, [esi + edx*2]
je 0x4c0fc6
cmp dword [esp + 0x18], 0
jne 0x4c108c
cmp dword [esp + 0x24], 0
je case.0x4c018e.151
add esi, 4
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov ecx, dword [esp + 0x158]
movzx eax, word [ecx + 2]
add eax, eax
mov edi, ecx
sub edi, eax
movzx eax, word [edi]
mov edx, 0x82
mov dword [esp + 0x18], edi
cmp ax, dx
jae 0x4c10cc
cmp eax, 0x7b
je 0x4c10cc
mov dword [esp + 0x20], 0
jmp 0x4c10e3
mov edx, dword [esp + 0x168]
mov esi, dword [edx + 4]
mov edx, dword [edx]
mov dword [esp + 0x20], esi
mov dword [esp + 0x168], edx
cmp eax, 0x77
jb 0x4c10f1
cmp eax, 0x7a
jbe 0x4c60aa
cmp eax, 0x7c
je 0x4c60aa
cmp eax, 0x7f
je 0x4c1121
mov edx, 0x84
cmp ax, dx
je 0x4c1121
mov edx, 0x80
cmp ax, dx
je 0x4c1121
mov edx, 0x85
cmp ax, dx
jne 0x4c11bf
movzx eax, word [edi + 4]
mov ebx, dword [esp + 0x164]
cmp dword [ebx + 0xa8], 0
mov dword [esp + 0x28], eax
lea edx, [eax + eax]
je 0x4c114b
mov esi, dword [ebx + 0xa8]
cmp dword [esi + 4], eax
je 0x4c60e1
mov esi, dword [esp + 0x160]
mov dword [ebx + 0x94], eax
cmp edx, dword [ebx + 0x14]
jl 0x4c1169
mov dword [ebx + 0x40], 1
jmp 0x4c11cd
cmp edx, esi
jle 0x4c118a
mov eax, dword [ebx + 0xc]
lea edi, [eax + esi*4]
lea ecx, [eax + edx*4]
cmp edi, ecx
jae 0x4c1186
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x18]
mov ecx, dword [ebx + 0x10]
sub ecx, dword [esp + 0x28]
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + ecx*4]
mov dword [eax + edx*4], ecx
mov ecx, dword [ebx + 0xc]
mov eax, ebp
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ecx + edx*4 + 4], eax
mov ecx, dword [esp + 0x158]
cmp esi, edx
jg 0x4c11cd
lea esi, [edx + 2]
mov dword [esp + 0x160], esi
jmp 0x4c11cd
mov esi, dword [esp + 0x160]
mov ebx, dword [esp + 0x164]
cmp word [ecx], 0x72
je 0x4c11dd
cmp ebp, dword [esp + 0x20]
jne 0x4c5964
cmp word [edi], 0x7b
je 0x4c61a6
add ecx, 4
mov dword [esp + 0x158], ecx
jmp 0x4c0161
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x44], ecx
je 0x4c1214
cmp ebp, dword [eax + 0x78]
je case.0x4c018e.151
jmp 0x4c1214
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x78]
jne case.0x4c018e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x44], ecx
je 0x4c1241
cmp ebp, dword [eax + 0x78]
je case.0x4c018e.151
mov edx, dword [eax + 0x78]
cmp ebp, edx
je 0x4c12c0
cmp ebp, dword [eax + 0x7c]
je case.0x4c018e.151
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x4c1289
cmp ebp, edx
jbe case.0x4c018e.151
push 1
push ecx
lea esi, [eax + 0x1c]
mov ecx, ebp
call fcn.004c9450
add esp, 8
test eax, eax
je case.0x4c018e.151
add dword [esp + 0x158], 2
jmp 0x4c0161
mov esi, dword [eax + 0x1c]
mov ecx, dword [eax + 0x78]
lea edx, [esi + esi]
add ecx, edx
cmp ebp, ecx
jb case.0x4c018e.151
mov ecx, ebp
sub ecx, edx
mov dx, word [ecx]
cmp dx, word [eax + 0x2c]
jne case.0x4c018e.151
cmp esi, 1
je 0x4c12c0
mov cx, word [ecx + 2]
cmp cx, word [eax + 0x2e]
jne case.0x4c018e.151
add dword [esp + 0x158], 2
jmp 0x4c0161
mov eax, dword [esp + 0x164]
mov edx, dword [eax + 0x98]
mov eax, dword [eax + 0x78]
lea ecx, [eax + edx*2]
cmp ebp, ecx
jne case.0x4c018e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4c0161
add esi, 2
mov dword [esp + 0x15c], ebp
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c1398
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x4c1355
mov edx, dword [eax + 0x7c]
push 1
push ecx
lea esi, [eax + 0x1c]
mov ecx, ebp
call fcn.004c9390
add esp, 8
test eax, eax
je case.0x4c018e.151
mov esi, dword [esp + 0x158]
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov ecx, dword [eax + 0x1c]
mov edi, dword [eax + 0x7c]
lea edx, [ecx + ecx]
sub edi, edx
cmp ebp, edi
ja case.0x4c018e.151
mov dx, word [ebp]
cmp dx, word [eax + 0x2c]
jne case.0x4c018e.151
cmp ecx, 1
je 0x4c13c5
mov cx, word [ebp + 2]
cmp cx, word [eax + 0x2e]
jne case.0x4c018e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4c0161
cmp dword [eax + 0x48], ecx
jne case.0x4c018e.151
cmp dword [eax + 0x8c], ecx
je 0x4c13c5
cmp ebp, dword [eax + 0x88]
jbe 0x4c13c5
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jg 0x4c621f
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov ebx, dword [esp + 0x164]
cmp dword [ebx + 0x48], ecx
jne case.0x4c018e.151
cmp dword [ebx + 0x58], ecx
je 0x4c1435
jmp 0x4c13f2
mov ebx, dword [esp + 0x164]
cmp ebp, dword [ebx + 0x7c]
jb case.0x4c018e.151
cmp dword [ebx + 0x8c], ecx
je 0x4c141f
cmp ebp, dword [ebx + 0x88]
jbe 0x4c141f
mov eax, 1
mov dword [ebx + 0x64], eax
cmp dword [ebx + 0x8c], eax
jg 0x4c621f
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov ebx, dword [esp + 0x164]
cmp ebp, dword [ebx + 0x7c]
jae 0x4c14a6
mov eax, dword [ebx + 0x18]
lea esi, [ebx + 0x1c]
cmp eax, ecx
je 0x4c1462
mov edx, dword [ebx + 0x7c]
push 1
push eax
mov ecx, ebp
call fcn.004c9390
add esp, 8
test eax, eax
je case.0x4c018e.151
jmp 0x4c1495
mov eax, dword [esi]
mov ecx, dword [ebx + 0x7c]
lea edx, [eax + eax]
sub ecx, edx
cmp ebp, ecx
ja case.0x4c018e.151
mov dx, word [ebp]
cmp dx, word [ebx + 0x2c]
jne case.0x4c018e.151
cmp eax, 1
je 0x4c1495
mov ax, word [ebp + 2]
cmp ax, word [ebx + 0x2e]
jne case.0x4c018e.151
mov ecx, dword [esi]
mov edx, dword [ebx + 0x7c]
add ecx, ecx
sub edx, ecx
cmp ebp, edx
jne case.0x4c018e.151
cmp dword [ebx + 0x8c], 0
je 0x4c14cb
cmp ebp, dword [ebx + 0x88]
jbe 0x4c14cb
mov eax, 1
mov dword [ebx + 0x64], eax
cmp dword [ebx + 0x8c], eax
jg 0x4c621f
add dword [esp + 0x158], 2
jmp 0x4c0161
mov edx, dword [esp + 0x164]
cmp ebp, dword [edx + 0x78]
je 0x4c15a4
mov ax, word [ebp - 2]
lea ecx, [ebp - 2]
mov edi, 0xfc00
and ax, di
mov edi, 0xdc00
cmp ax, di
jne 0x4c1504
sub ecx, 2
cmp ecx, dword [edx + 0x88]
jae 0x4c1512
mov dword [edx + 0x88], ecx
movzx eax, word [ecx]
mov edi, eax
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4c153e
movzx ecx, word [ecx + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
cmp dword [edx + 0x54], 0
je 0x4c158d
cmp eax, 0x5f
jne 0x4c1551
lea ecx, [eax - 0x5e]
jmp 0x4c15a6
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x4f7490]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4f9690]
movzx ecx, byte [eax*8 + 0x4f63b1]
mov eax, dword [ecx*4 + 0x4f5c08]
cmp eax, 1
je 0x4c1586
cmp eax, 3
jne 0x4c15a4
mov ecx, 1
jmp 0x4c15a6
cmp eax, 0x100
jae 0x4c15a4
mov ecx, dword [edx + 0x3c]
test byte [eax + ecx], 0x10
je 0x4c15a4
mov ecx, 1
jmp 0x4c15a6
xor ecx, ecx
cmp ebp, dword [edx + 0x7c]
jb 0x4c15f5
cmp dword [edx + 0x8c], 0
je 0x4c15d0
cmp ebp, dword [edx + 0x88]
jbe 0x4c15d0
mov eax, 1
mov dword [edx + 0x64], eax
cmp dword [edx + 0x8c], eax
jg 0x4c621f
xor eax, eax
mov dx, word [esi]
add esi, 2
mov dword [esp + 0x158], esi
cmp dx, 5
jne 0x4c1699
xor edx, edx
cmp eax, ecx
sete dl
jmp 0x4c16a0
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4c1622
movzx edi, word [ebp + 2]
and eax, 0x3ff
and edi, 0x3ff
shl eax, 0xa
or eax, edi
add eax, 0x10000
cmp dword [edx + 0x54], 0
je 0x4c1677
cmp eax, 0x5f
jne 0x4c1634
mov eax, 1
jmp 0x4c15d2
mov edx, eax
shr edx, 7
movzx edx, byte [edx + 0x4f7490]
and eax, 0x7f
shl edx, 7
add edx, eax
movzx eax, word [edx*2 + 0x4f9690]
movzx edx, byte [eax*8 + 0x4f63b1]
mov eax, dword [edx*4 + 0x4f5c08]
cmp eax, 1
je 0x4c166d
cmp eax, 3
jne 0x4c15d0
mov eax, 1
jmp 0x4c15d2
cmp eax, 0x100
jae 0x4c15d0
mov edx, dword [edx + 0x3c]
test byte [eax + edx], 0x10
je 0x4c15d0
mov eax, 1
jmp 0x4c15d2
xor edx, edx
cmp eax, ecx
setne dl
mov eax, edx
test eax, eax
je 0x4c0161
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov ebx, dword [esp + 0x164]
mov eax, dword [ebx + 0x18]
cmp eax, ecx
je 0x4c16f4
cmp ebp, dword [ebx + 0x7c]
jae 0x4c172d
mov edx, dword [ebx + 0x7c]
push 1
lea esi, [ebx + 0x1c]
push eax
mov ecx, ebp
call fcn.004c9390
add esp, 8
test eax, eax
jne case.0x4c018e.151
mov esi, dword [esp + 0x158]
xor ecx, ecx
jmp 0x4c172d
mov eax, dword [ebx + 0x1c]
mov edi, dword [ebx + 0x7c]
lea edx, [eax + eax]
sub edi, edx
cmp ebp, edi
ja 0x4c172d
mov dx, word [ebp]
cmp dx, word [ebx + 0x2c]
jne 0x4c172d
cmp eax, 1
je case.0x4c018e.151
mov ax, word [ebp + 2]
cmp ax, word [ebx + 0x2e]
je case.0x4c018e.151
jmp 0x4c172d
mov ebx, dword [esp + 0x164]
mov eax, dword [ebx + 0x7c]
cmp ebp, eax
jae 0x4c61f3
add ebp, 2
cmp ebp, eax
jae 0x4c1758
mov cx, word [ebp]
mov edx, 0xfc00
and cx, dx
mov eax, 0xdc00
cmp cx, ax
jne 0x4c1758
add ebp, 2
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c622f
add ebp, 2
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4c626b
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4c17cc
movzx edx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edx, 0x3ff
or eax, edx
add eax, 0x10000
add ebp, 2
cmp eax, 0x100
jae 0x4c17e0
mov ecx, dword [ecx + 0x3c]
test byte [eax + ecx], 4
jne case.0x4c018e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4c626b
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4c1832
movzx edx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edx, 0x3ff
or eax, edx
add eax, 0x10000
add ebp, 2
cmp eax, 0xff
ja case.0x4c018e.151
mov ecx, dword [ecx + 0x3c]
test byte [eax + ecx], 4
je case.0x4c018e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4c626b
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4c189c
movzx edx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edx, 0x3ff
or eax, edx
add eax, 0x10000
add ebp, 2
cmp eax, 0x100
jae 0x4c18b0
mov ecx, dword [ecx + 0x3c]
test byte [eax + ecx], 1
jne case.0x4c018e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4c626b
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4c1902
movzx edx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edx, 0x3ff
or eax, edx
add eax, 0x10000
add ebp, 2
cmp eax, 0xff
ja case.0x4c018e.151
mov ecx, dword [ecx + 0x3c]
test byte [eax + ecx], 1
je case.0x4c018e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4c626b
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4c196c
movzx edx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edx, 0x3ff
or eax, edx
add eax, 0x10000
add ebp, 2
cmp eax, 0x100
jae 0x4c1980
mov ecx, dword [ecx + 0x3c]
test byte [eax + ecx], 0x10
jne case.0x4c018e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4c626b
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4c19d2
movzx edx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edx, 0x3ff
or eax, edx
add eax, 0x10000
add ebp, 2
cmp eax, 0xff
ja case.0x4c018e.151
mov ecx, dword [ecx + 0x3c]
test byte [eax + ecx], 0x10
je case.0x4c018e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov edx, dword [esp + 0x164]
mov ecx, dword [edx + 0x7c]
cmp ebp, ecx
jae 0x4c62a8
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4c1a3e
movzx edi, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edi, 0x3ff
or eax, edi
add eax, 0x10000
add ebp, 2
cmp eax, 0xd
ja 0x4c1a72
je 0x4c1a55
cmp eax, 0xa
je 0x4c1a99
jbe case.0x4c018e.151
cmp eax, 0xc
jmp 0x4c1a89
cmp ebp, ecx
jae 0x4c1a99
cmp word [ebp], 0xa
jne 0x4c1a99
add ebp, 2
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4c0161
cmp eax, 0x85
je 0x4c1a8f
cmp eax, 0x2027
jbe case.0x4c018e.151
cmp eax, 0x2029
ja case.0x4c018e.151
cmp dword [edx + 0x68], 0
jne case.0x4c018e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c622f
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4c1aeb
movzx ecx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and ecx, 0x3ff
or eax, ecx
add eax, 0x10000
add ebp, 2
cmp eax, 0x180e
ja 0x4c1b1a
je case.0x4c018e.151
cmp eax, 0xa0
ja 0x4c1b13
je case.0x4c018e.151
cmp eax, 9
je case.0x4c018e.151
cmp eax, 0x20
jmp 0x4c1b45
cmp eax, 0x1680
jmp 0x4c1b45
cmp eax, 0x205f
ja 0x4c1b40
je case.0x4c018e.151
cmp eax, 0x2000
jb 0x4c1b4b
cmp eax, 0x200a
jbe case.0x4c018e.151
cmp eax, 0x202f
jmp 0x4c1b45
cmp eax, 0x3000
je case.0x4c018e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c622f
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4c1b9d
movzx ecx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and ecx, 0x3ff
or eax, ecx
add eax, 0x10000
add ebp, 2
cmp eax, 0x180e
ja 0x4c1bc0
je 0x4c1bed
cmp eax, 0xa0
ja 0x4c1bb9
je 0x4c1bed
cmp eax, 9
je 0x4c1bed
cmp eax, 0x20
jmp 0x4c1be7
cmp eax, 0x1680
jmp 0x4c1be7
cmp eax, 0x205f
ja 0x4c1be2
je 0x4c1bed
cmp eax, 0x2000
jb case.0x4c018e.151
cmp eax, 0x200a
jbe 0x4c1bed
cmp eax, 0x202f
jmp 0x4c1be7
cmp eax, 0x3000
jne case.0x4c018e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c622f
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4c1c3f
movzx ecx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and ecx, 0x3ff
or eax, ecx
add eax, 0x10000
add ebp, 2
cmp eax, 0x85
ja 0x4c1c56
je case.0x4c018e.151
cmp eax, 0xa
jb 0x4c1c68
cmp eax, 0xd
jmp 0x4c1c62
cmp eax, 0x2028
jb 0x4c1c68
cmp eax, 0x2029
jbe case.0x4c018e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c622f
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4c1cba
movzx ecx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and ecx, 0x3ff
or eax, ecx
add eax, 0x10000
add ebp, 2
cmp eax, 0x85
ja 0x4c1cd1
je 0x4c1ce7
cmp eax, 0xa
jb case.0x4c018e.151
cmp eax, 0xd
jmp 0x4c1ce1
cmp eax, 0x2028
jb case.0x4c018e.151
cmp eax, 0x2029
ja case.0x4c018e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c622f
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4c1d39
movzx ecx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and ecx, 0x3ff
or eax, ecx
add eax, 0x10000
add ebp, 2
mov edx, eax
shr edx, 7
movzx ecx, byte [edx + 0x4f7490]
shl ecx, 7
mov edx, eax
and edx, 0x7f
add ecx, edx
movzx edx, word [esi + 2]
movzx ecx, word [ecx*2 + 0x4f9690]
lea ecx, [ecx*8 + 0x4f63b0]
cmp edx, 8
ja case.default.0x4c1d6b
jmp dword [edx*4 + 0x4c8078]
cmp dword [esp + 0x14], 0xf
jmp 0x4c1e9b
mov cl, byte [ecx + 1]
cmp cl, 9
je 0x4c1e8a
cmp cl, 5
je 0x4c1e8a
cmp cl, 8
je 0x4c1e8a
xor eax, eax
jmp 0x4c1e8f
movzx edx, byte [ecx + 1]
movzx eax, word [esi + 4]
xor ecx, ecx
cmp eax, dword [edx*4 + 0x4f5c08]
setne cl
xor edx, edx
cmp dword [esp + 0x14], 0x10
sete dl
cmp ecx, edx
jmp 0x4c1e9b
movzx eax, byte [ecx + 1]
xor ecx, ecx
cmp word [esi + 4], ax
setne cl
xor edx, edx
cmp dword [esp + 0x14], 0x10
sete dl
cmp ecx, edx
jmp 0x4c1e9b
movzx eax, byte [ecx]
xor ecx, ecx
cmp word [esi + 4], ax
setne cl
xor edx, edx
cmp dword [esp + 0x14], 0x10
sete dl
cmp ecx, edx
jmp 0x4c1e9b
movzx eax, byte [ecx + 1]
mov eax, dword [eax*4 + 0x4f5c08]
cmp eax, 1
je 0x4c1e8a
cmp eax, 3
je 0x4c1e8a
xor eax, eax
jmp 0x4c1e8f
movzx edx, byte [ecx + 1]
cmp dword [edx*4 + 0x4f5c08], 6
je 0x4c1e8a
cmp eax, 9
je 0x4c1e8a
cmp eax, 0xa
je 0x4c1e8a
cmp eax, 0xc
je 0x4c1e8a
cmp eax, 0xd
je 0x4c1e8a
xor eax, eax
jmp 0x4c1e8f
movzx edx, byte [ecx + 1]
cmp dword [edx*4 + 0x4f5c08], 6
je 0x4c1e8a
cmp eax, 9
je 0x4c1e8a
cmp eax, 0xa
je 0x4c1e8a
cmp eax, 0xb
jmp 0x4c1e3f
movzx edx, byte [ecx + 1]
mov ecx, dword [edx*4 + 0x4f5c08]
cmp ecx, 1
je 0x4c1e8a
cmp ecx, 3
je 0x4c1e8a
cmp eax, 0x5f
je 0x4c1e8a
xor eax, eax
jmp 0x4c1e8f
mov eax, 1
xor ecx, ecx
cmp dword [esp + 0x14], 0xf
sete cl
cmp eax, ecx
je case.0x4c018e.151
add esi, 6
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov eax, dword [esp + 0x164]
mov edi, dword [eax + 0x7c]
cmp ebp, edi
jae 0x4c622f
movzx eax, word [ebp]
mov ecx, eax
mov edx, 2
and ecx, 0xfc00
add ebp, edx
cmp ecx, 0xd800
jne 0x4c1ef8
movzx ecx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and ecx, 0x3ff
or eax, ecx
add eax, 0x10000
add ebp, edx
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x4f7490]
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4f9690]
movzx ecx, byte [eax*8 + 0x4f63b1]
cmp dword [ecx*4 + 0x4f5c08], edx
je case.0x4c018e.151
cmp ebp, edi
jae 0x4c1f9a
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
mov ecx, 1
cmp ebx, 0xd800
jne 0x4c1f65
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, edx
mov ebx, eax
shr ebx, 7
movzx ebx, byte [ebx + 0x4f7490]
and eax, 0x7f
shl ebx, 7
add ebx, eax
movzx eax, word [ebx*2 + 0x4f9690]
movzx eax, byte [eax*8 + 0x4f63b1]
cmp dword [eax*4 + 0x4f5c08], edx
jne 0x4c1f9a
lea ebp, [ebp + ecx*2]
cmp ebp, edi
jb 0x4c1f31
add esi, edx
mov dword [esp + 0x158], esi
jmp 0x4c0161
mov eax, dword [esp + 0x158]
movzx esi, word [eax + 2]
xor ecx, ecx
cmp edx, 0x6e
sete cl
add esi, esi
add eax, 4
mov dword [esp + 0x158], eax
mov dword [esp + 0x18], ecx
cmp esi, dword [esp + 0x160]
jge 0x4c1fef
mov edx, dword [esp + 0x164]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + esi*4]
lea eax, [eax + esi*4]
test ecx, ecx
js 0x4c1fef
mov ebx, dword [eax + 4]
sub ebx, ecx
jmp 0x4c2000
mov ecx, dword [esp + 0x164]
mov ebx, dword [ecx + 0x50]
neg ebx
sbb ebx, ebx
neg ebx
dec ebx
mov ecx, dword [esp + 0x158]
movzx edi, word [ecx]
mov eax, edi
lea edx, [eax - 0x62]
cmp edx, 7
ja case.default.0x4c201f
movzx edx, byte [edx + 0x4c80a4]
jmp dword [edx*4 + 0x4c809c]
movsx edi, byte [eax + 0x50536e]
add ecx, 2
mov dword [esp + 0x158], ecx
lea ecx, [eax - 0x62]
movsx eax, byte [eax + 0x505376]
and ecx, 1
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4c2088
mov dword [esp + 0x14], SysReAllocString
jmp 0x4c2088
xor eax, eax
cmp edi, 0x69
movzx edi, word [ecx + 2]
sete al
mov dword [esp + 0x1c], eax
movzx eax, word [ecx + 4]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4c207e
mov dword [esp + 0x14], SysReAllocString
add ecx, 6
mov dword [esp + 0x158], ecx
test ebx, ebx
je 0x4c0161
jns 0x4c209a
test edi, edi
je 0x4c0161
mov dword [esp + 0x28], 1
cmp edi, 1
jl 0x4c20e2
jmp 0x4c20b0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x164]
push ecx
push esi
mov eax, ebx
mov ecx, ebp
call fcn.004bfef0
add esp, 8
test eax, eax
js 0x4c62f5
lea ebp, [ebp + eax*2]
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, edi
jle 0x4c20b0
mov eax, dword [esp + 0x14]
cmp edi, eax
je 0x4c0161
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x28], edi
je 0x4c6386
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
inc edx
push edx
mov edx, dword [esp + 0x164]
push eax
mov eax, dword [esp + 0x164]
push ecx
mov ecx, dword [esp + 0x164]
push edx
push eax
push ecx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
mov edi, dword [esp + 0x164]
mov edx, dword [esp + 0x28]
cmp edx, dword [esp + 0x14]
jge case.0x4c018e.151
mov eax, dword [esp + 0x18]
push eax
push esi
mov edx, edi
mov eax, ebx
mov ecx, ebp
call fcn.004bfef0
add esp, 8
test eax, eax
js 0x4c6340
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
inc dword [esp + 0x28]
inc ecx
push ecx
mov ecx, dword [esp + 0x160]
push edx
mov edx, dword [esp + 0x160]
lea ebp, [ebp + eax*2]
mov eax, dword [esp + 0x168]
push edi
push eax
push ecx
push edx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c2146
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov edx, dword [esp + 0x18]
push edx
push esi
mov esi, dword [esp + 0x16c]
mov edx, esi
mov eax, ebx
mov ecx, ebp
call fcn.004bfef0
add esp, 8
test eax, eax
js 0x4c6471
lea ebp, [ebp + eax*2]
jmp 0x4c0161
movzx ecx, word [esi + 0x22]
lea eax, [esi + 2]
add esi, 0x22
mov dword [esp + 0x24], eax
mov eax, ecx
lea edx, [eax - 0x62]
mov dword [esp + 0x158], esi
cmp edx, 7
ja case.default.0x4c2210
movzx edx, byte [edx + 0x4c80b4]
jmp dword [edx*4 + 0x4c80ac]
movsx edi, byte [eax + 0x505376]
add dword [esp + 0x158], 2
movsx esi, byte [eax + 0x50536e]
lea ecx, [eax - 0x62]
and ecx, 1
mov dword [esp + 0x1c], ecx
test edi, edi
jne 0x4c2279
mov edi, SysReAllocString
jmp 0x4c2279
xor eax, eax
cmp ecx, 0x69
sete al
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x158]
movzx edi, word [eax + 4]
movzx esi, word [eax + 2]
test edi, edi
jne 0x4c2266
mov edi, SysReAllocString
add eax, 6
mov dword [esp + 0x158], eax
jmp 0x4c2279
mov edi, 1
mov esi, edi
mov edx, 1
cmp esi, edx
jl 0x4c2302
mov ecx, dword [esp + 0x164]
mov eax, dword [ecx + 0x7c]
mov dword [esp + 0x18], eax
cmp ebp, dword [esp + 0x18]
jae 0x4c64b7
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c22d1
movzx ecx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and ecx, 0x3ff
or eax, ecx
add eax, 0x10000
add ebp, 2
cmp eax, 0xff
jbe 0x4c22df
cmp dword [esp + 0x14], 0x6a
jmp 0x4c22f7
mov ecx, eax
and ecx, 7
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x24]
shr eax, 3
mov al, byte [eax + ecx]
test al, bl
je case.0x4c018e.151
inc edx
cmp edx, esi
jle 0x4c2294
cmp esi, edi
je 0x4c0161
cmp dword [esp + 0x1c], 0
je 0x4c6560
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
mov ebx, dword [esp + 0x160]
inc eax
push eax
mov eax, dword [esp + 0x160]
push ecx
mov ecx, dword [esp + 0x160]
push edx
push ebx
push eax
push ecx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
cmp esi, edi
jge case.0x4c018e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c6ee1
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4c23a2
movzx ecx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and ecx, 0x3ff
or eax, ecx
add eax, 0x10000
add ebp, 2
cmp eax, 0xff
jbe 0x4c64fb
cmp dword [esp + 0x14], 0x6a
jmp 0x4c6513
movzx edx, word [esi + 2]
lea ecx, [esi + 4]
lea ebx, [esi + edx*2]
mov dword [esp + 0x24], ecx
movzx ecx, word [ebx]
mov eax, ecx
lea edx, [eax - 0x62]
mov dword [esp + 0x158], ebx
cmp edx, 7
ja case.default.0x4c23e4
movzx edx, byte [edx + 0x4c80c4]
jmp dword [edx*4 + 0x4c80bc]
movsx edi, byte [eax + 0x505376]
movsx esi, byte [eax + 0x50536e]
lea ecx, [eax - 0x62]
add ebx, 2
and ecx, 1
mov dword [esp + 0x158], ebx
mov dword [esp + 0x1c], ecx
test edi, edi
jne 0x4c2448
mov edi, SysReAllocString
jmp 0x4c2448
movzx edi, word [ebx + 4]
movzx esi, word [ebx + 2]
xor eax, eax
cmp ecx, 0x69
sete al
mov dword [esp + 0x1c], eax
test edi, edi
jne 0x4c2435
mov edi, SysReAllocString
add ebx, 6
mov dword [esp + 0x158], ebx
jmp 0x4c2448
mov edi, 1
mov esi, edi
mov dword [esp + 0x28], 1
cmp esi, 1
jl 0x4c24c8
mov ecx, dword [esp + 0x164]
mov edx, dword [ecx + 0x7c]
mov dword [esp + 0x18], edx
cmp ebp, dword [esp + 0x18]
jae 0x4c66e3
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c24a4
movzx edx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edx, 0x3ff
or eax, edx
add eax, 0x10000
add ebp, 2
push 1
push eax
mov eax, dword [esp + 0x2c]
call fcn.004c9590
add esp, 8
test eax, eax
je case.0x4c018e.151
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, esi
jle 0x4c2467
cmp esi, edi
je 0x4c0161
cmp dword [esp + 0x1c], 0
je 0x4c6716
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
inc edx
push edx
mov edx, dword [esp + 0x164]
push eax
mov eax, dword [esp + 0x164]
push ecx
push edx
push eax
push ebx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
jmp 0x4c2520
mov eax, dword [esp + 0x164]
cmp esi, edi
jge case.0x4c018e.151
cmp ebp, dword [eax + 0x7c]
jae 0x4c6ee1
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c256b
movzx edx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edx, 0x3ff
or eax, edx
add eax, 0x10000
add ebp, 2
push 1
push eax
mov eax, dword [esp + 0x2c]
call fcn.004c9590
add esp, 8
test eax, eax
je case.0x4c018e.151
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
inc eax
push eax
mov eax, dword [esp + 0x164]
push ecx
mov ecx, dword [esp + 0x164]
push edx
push eax
push ecx
push ebx
push ebp
inc esi
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c2520
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov cx, word [esi + 2]
add esi, 2
mov edx, 0xfc00
and cx, dx
mov edx, 0xd800
mov eax, 1
mov dword [esp + 0x158], esi
cmp cx, dx
jne 0x4c25f3
mov eax, 2
mov ecx, dword [esp + 0x164]
mov edx, dword [ecx + 0x7c]
sub edx, ebp
sar edx, 1
cmp eax, edx
jg 0x4c686c
test eax, eax
jle 0x4c0161
mov cx, word [esi]
mov dx, word [ebp]
add esi, 2
dec eax
add ebp, 2
mov dword [esp + 0x158], esi
cmp cx, dx
jne case.0x4c018e.151
test eax, eax
jg 0x4c2611
jmp 0x4c0161
mov edi, dword [esp + 0x164]
cmp ebp, dword [edi + 0x7c]
jae 0x4c68a1
movzx eax, word [esi + 2]
mov ecx, eax
and ecx, 0xfc00
mov edx, 1
cmp ecx, 0xd800
jne 0x4c267f
movzx edx, word [esi + 4]
and eax, 0x3ff
and edx, 0x3ff
shl eax, 0xa
or eax, edx
add eax, 0x10000
mov edx, 2
movzx ecx, word [ebp]
cmp eax, 0x80
jae 0x4c26bc
mov edx, 0xff
cmp cx, dx
ja 0x4c269b
mov edx, dword [edi + 0x34]
movzx ecx, byte [edx + ecx]
mov edx, dword [edi + 0x34]
movzx eax, byte [edx + eax]
cmp eax, ecx
jne case.0x4c018e.151
add esi, 4
mov dword [esp + 0x158], esi
add ebp, 2
jmp 0x4c0161
mov edi, ecx
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4c26ed
movzx edi, word [ebp]
and ecx, 0x3ff
shl ecx, 0xa
and edi, 0x3ff
or ecx, edi
add ecx, 0x10000
add ebp, 2
lea edx, [esi + edx*2 + 2]
mov dword [esp + 0x158], edx
cmp eax, ecx
je 0x4c0161
mov edx, eax
shr edx, 7
movzx edx, byte [edx + 0x4f7490]
shl edx, 7
mov esi, eax
and esi, 0x7f
add edx, esi
movzx edx, word [edx*2 + 0x4f9690]
mov edx, dword [edx*8 + 0x4f63b4]
add edx, eax
cmp ecx, edx
je 0x4c0161
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
movzx edi, word [esi + 2]
add esi, 4
mov dword [esp + 0x14], edi
mov dword [esp + 0x158], esi
jmp 0x4c281a
mov dword [esp + 0x20], 1
movzx ebx, word [esi + 2]
xor edi, edi
mov dword [esp + 0x14], ebx
cmp eax, 0x28
je 0x4c2773
mov dword [esp + 0x1c], ecx
cmp eax, 0x35
jne 0x4c277b
mov dword [esp + 0x1c], 1
add esi, 4
mov dword [esp + 0x158], esi
jmp 0x4c281a
xor edi, edi
add esi, 2
mov dword [esp + 0x20], 1
mov dword [esp + 0x158], esi
jmp 0x4c2812
mov edi, 1
add esi, 2
mov dword [esp + 0x20], edi
mov dword [esp + 0x158], esi
jmp 0x4c2812
mov eax, 1
xor edi, edi
add esi, 2
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x158], esi
jmp 0x4c281a
xor ecx, ecx
cmp edx, 0x2e
setge cl
mov eax, edx
add esi, 2
mov dword [esp + 0x158], esi
dec ecx
and ecx, 0xfffffff3
add ecx, 0x2e
sub eax, ecx
movsx edi, byte [eax + 0x5053d0]
mov ecx, eax
movsx eax, byte [eax + 0x5053d8]
and ecx, 1
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4c281a
mov dword [esp + 0x14], SysReAllocString
mov eax, dword [esp + 0x158]
movzx esi, word [eax]
mov ecx, esi
and ecx, 0xfc00
mov dword [esp + 0x24], 1
mov dword [esp + 0x30], eax
cmp ecx, 0xd800
jne 0x4c2863
movzx ecx, word [eax + 2]
and esi, 0x3ff
and ecx, 0x3ff
shl esi, 0xa
or esi, ecx
add esi, 0x10000
mov dword [esp + 0x24], 2
mov ecx, dword [esp + 0x24]
lea eax, [eax + ecx*2]
lea ebx, [ecx + ecx]
mov dword [esp + 0x158], eax
cmp ecx, 1
jle 0x4c2bdc
cmp edx, 0x2e
jl 0x4c28bc
mov edx, esi
shr edx, 7
movzx eax, byte [edx + 0x4f7490]
shl eax, 7
mov ecx, esi
and ecx, 0x7f
add eax, ecx
movzx edx, word [eax*2 + 0x4f9690]
mov eax, dword [edx*8 + 0x4f63b4]
add eax, esi
cmp eax, esi
je 0x4c28bc
lea ecx, [esp + 0x5c]
call fcn.004c9530
mov dword [esp + 0x18], eax
jmp 0x4c28c4
mov dword [esp + 0x18], 0
mov dword [esp + 0x28], 1
cmp edi, 1
jl 0x4c29e0
mov eax, dword [esp + 0x164]
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x3c], eax
sub eax, ebx
mov dword [esp + 0x34], eax
jmp 0x4c28f4
mov eax, dword [esp + 0x34]
cmp ebp, eax
ja 0x4c2955
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
add eax, eax
mov esi, ebp
cmp eax, 4
jb 0x4c2924
lea ecx, [ecx]
mov edx, dword [esi]
cmp edx, dword [ecx]
jne 0x4c2955
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x4c2910
test eax, eax
je 0x4c2948
mov dl, byte [ecx]
cmp dl, byte [esi]
jne 0x4c2955
cmp eax, 1
jbe 0x4c2948
mov dl, byte [ecx + 1]
cmp dl, byte [esi + 1]
jne 0x4c2955
cmp eax, 2
jbe 0x4c2948
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x4c2955
mov eax, dword [esp + 0x24]
lea ebp, [ebp + eax*2]
jmp 0x4c29cf
cmp dword [esp + 0x18], 0
jle 0x4c68cc
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
add edx, edx
sub ecx, edx
cmp ebp, ecx
ja 0x4c68cc
mov eax, dword [esp + 0x18]
add eax, eax
lea ecx, [esp + 0x5c]
mov esi, ebp
cmp eax, 4
jb 0x4c299d
mov ebx, dword [esi]
cmp ebx, dword [ecx]
jne 0x4c68cc
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x4c2985
test eax, eax
je 0x4c29cd
mov bl, byte [ecx]
cmp bl, byte [esi]
jne 0x4c68cc
cmp eax, 1
jbe 0x4c29cd
mov bl, byte [ecx + 1]
cmp bl, byte [esi + 1]
jne 0x4c68cc
cmp eax, 2
jbe 0x4c29cd
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x4c68cc
add ebp, edx
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, edi
jle 0x4c28f0
cmp edi, dword [esp + 0x14]
je 0x4c0161
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x28], edi
jne 0x4c68ee
mov dword [esp + 0x1c], ebp
cmp edi, dword [esp + 0x14]
jge 0x4c2b35
mov ecx, dword [esp + 0x164]
mov edx, dword [ecx + 0x7c]
mov eax, dword [esp + 0x24]
mov ecx, edx
add eax, eax
sub ecx, eax
mov dword [esp + 0x34], ecx
jmp 0x4c2a25
mov ecx, dword [esp + 0x34]
cmp ebp, ecx
ja 0x4c2a89
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
add eax, eax
mov esi, ebp
cmp eax, 4
jb 0x4c2a58
mov edi, edi
mov edi, dword [esi]
cmp edi, dword [ecx]
jne 0x4c2a89
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x4c2a40
test eax, eax
je 0x4c2a7c
mov bl, byte [ecx]
cmp bl, byte [esi]
jne 0x4c2a89
cmp eax, 1
jbe 0x4c2a7c
mov bl, byte [ecx + 1]
cmp bl, byte [esi + 1]
jne 0x4c2a89
cmp eax, 2
jbe 0x4c2a7c
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x4c2a89
mov eax, dword [esp + 0x24]
lea ebp, [ebp + eax*2]
jmp 0x4c2aef
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x4c2b04
lea edi, [eax + eax]
mov ecx, edx
sub ecx, edi
cmp ebp, ecx
ja 0x4c2b04
add eax, eax
lea ecx, [esp + 0x5c]
mov esi, ebp
cmp eax, 4
jb 0x4c2ac9
mov ebx, dword [esi]
cmp ebx, dword [ecx]
jne 0x4c2b04
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x4c2ab1
test eax, eax
je 0x4c2aed
mov bl, byte [ecx]
cmp bl, byte [esi]
jne 0x4c2b04
cmp eax, 1
jbe 0x4c2aed
mov bl, byte [ecx + 1]
cmp bl, byte [esi + 1]
jne 0x4c2b04
cmp eax, 2
jbe 0x4c2aed
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x4c2b04
add ebp, edi
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0x14]
jl 0x4c2a21
jmp 0x4c2b35
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je 0x4c2b35
cmp ebp, dword [eax + 0x7c]
jb 0x4c2b35
cmp ebp, dword [eax + 0x88]
jbe 0x4c2b35
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jg 0x4c621f
cmp dword [esp + 0x20], 0
jne 0x4c0161
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
mov edi, dword [esp + 0x160]
mov ebx, dword [esp + 0x15c]
mov esi, dword [esp + 0x158]
inc edx
push edx
push eax
push ecx
push edi
push ebx
push esi
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
cmp ebp, dword [esp + 0x1c]
je case.0x4c018e.151
mov dx, word [ebp - 2]
sub ebp, 2
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4c2ba8
sub ebp, 2
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
inc edx
push edx
push eax
push ecx
push edi
push ebx
push esi
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c2b82
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp edx, 0x2e
jl 0x4c2d53
cmp esi, 0x7f
jbe 0x4c2c17
mov ecx, esi
shr ecx, 7
movzx edx, byte [ecx + 0x4f7490]
shl edx, 7
mov eax, esi
and eax, 0x7f
add edx, eax
movzx ecx, word [edx*2 + 0x4f9690]
mov edx, dword [ecx*8 + 0x4f63b4]
add edx, esi
mov dword [esp + 0x28], edx
jmp 0x4c2c39
cmp esi, 0xff
ja 0x4c2c33
mov edx, dword [esp + 0x164]
mov eax, dword [edx + 0x38]
movzx edx, byte [eax + esi]
mov dword [esp + 0x28], edx
jmp 0x4c2c39
mov edx, esi
mov dword [esp + 0x28], esi
mov ecx, 1
cmp edi, ecx
jl 0x4c2c6c
mov eax, dword [esp + 0x164]
mov ebx, dword [eax + 0x7c]
cmp ebp, ebx
jae 0x4c6ae4
movzx eax, word [ebp]
cmp esi, eax
je 0x4c2c64
cmp edx, eax
jne case.0x4c018e.151
inc ecx
add ebp, 2
cmp ecx, edi
jle 0x4c2c4c
mov ebx, dword [esp + 0x14]
cmp edi, ebx
je 0x4c0161
cmp dword [esp + 0x1c], 0
jne 0x4c6b1e
mov dword [esp + 0x1c], ebp
mov eax, edi
cmp edi, ebx
jge 0x4c2ce6
mov ecx, dword [esp + 0x164]
mov edi, dword [ecx + 0x7c]
jmp 0x4c2ca7
mov ecx, dword [esp + 0x164]
cmp ebp, edi
jae 0x4c2cc1
movzx ecx, word [ebp]
cmp esi, ecx
je 0x4c2cb7
cmp edx, ecx
jne 0x4c2ce6
inc eax
add ebp, 2
cmp eax, ebx
jl 0x4c2ca0
jmp 0x4c2ce6
cmp dword [ecx + 0x8c], 0
je 0x4c2ce6
cmp ebp, dword [ecx + 0x88]
jbe 0x4c2ce6
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x8c], eax
jg 0x4c621f
cmp dword [esp + 0x20], 0
jne 0x4c0161
cmp ebp, dword [esp + 0x1c]
jb 0x4c2d46
mov esi, dword [esp + 0x158]
mov ebx, dword [esp + 0x15c]
mov edi, dword [esp + 0x160]
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
inc eax
push eax
push ecx
push edx
push edi
push ebx
push esi
push ebp
call fcn.004c00a0
add esp, 0x1c
sub ebp, 2
test eax, eax
jne 0x4c7e86
cmp ebp, dword [esp + 0x1c]
jae 0x4c2d10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov edx, dword [esp + 0x164]
mov eax, 1
cmp edi, eax
jl 0x4c2d82
mov ecx, dword [edx + 0x7c]
cmp ebp, ecx
jae 0x4c6bd4
movzx ebx, word [ebp]
add ebp, 2
cmp esi, ebx
jne case.0x4c018e.151
inc eax
cmp eax, edi
jle 0x4c2d66
cmp edi, dword [esp + 0x14]
je 0x4c0161
cmp dword [esp + 0x1c], 0
jne 0x4c6c00
mov ebx, ebp
mov dword [esp + 0x1c], ebx
mov eax, edi
cmp edi, dword [esp + 0x14]
jge 0x4c2ded
mov ecx, dword [edx + 0x7c]
lea esp, [esp]
cmp ebp, ecx
jae 0x4c2dc8
movzx edi, word [ebp]
cmp esi, edi
jne 0x4c2ded
inc eax
add ebp, 2
cmp eax, dword [esp + 0x14]
jl 0x4c2db0
jmp 0x4c2ded
cmp dword [edx + 0x8c], 0
je 0x4c2ded
cmp ebp, dword [edx + 0x88]
jbe 0x4c2ded
mov eax, 1
mov dword [edx + 0x64], eax
cmp dword [edx + 0x8c], eax
jg 0x4c621f
cmp dword [esp + 0x20], 0
jne 0x4c0161
cmp ebp, ebx
jb 0x4c2e4b
mov esi, dword [esp + 0x158]
mov ebx, dword [esp + 0x15c]
mov edi, dword [esp + 0x160]
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
inc edx
push edx
push eax
push ecx
push edi
push ebx
push esi
push ebp
call fcn.004c00a0
add esp, 0x1c
sub ebp, 2
test eax, eax
jne 0x4c7e86
cmp ebp, dword [esp + 0x1c]
jae 0x4c2e15
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov edi, dword [esp + 0x164]
cmp ebp, dword [edi + 0x7c]
jae 0x4c68a1
movzx ecx, word [ebp]
mov eax, ecx
and eax, 0xfc00
add ebp, 2
cmp eax, 0xd800
jne 0x4c2e9a
movzx eax, word [ebp]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add ebp, 2
movzx eax, word [esi + 2]
add esi, 4
mov dword [esp + 0x158], esi
cmp edx, 0x20
jne 0x4c2f0e
cmp eax, 0x7f
jbe 0x4c2edf
mov edx, eax
shr edx, 7
movzx edx, byte [edx + 0x4f7490]
shl edx, 7
mov esi, eax
and esi, 0x7f
add edx, esi
movzx edx, word [edx*2 + 0x4f9690]
mov edx, dword [edx*8 + 0x4f63b4]
add edx, eax
jmp 0x4c2ef1
cmp eax, 0xff
ja 0x4c2eef
mov edx, dword [edi + 0x38]
movzx edx, byte [edx + eax]
jmp 0x4c2ef1
mov edx, eax
cmp eax, ecx
je case.0x4c018e.151
cmp edx, ecx
jne 0x4c0161
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp eax, ecx
jne 0x4c0161
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
movzx ecx, word [esi + 2]
mov dword [esp + 0x14], ecx
add esi, 4
jmp 0x4c2fe9
movzx edi, word [esi + 2]
xor ecx, ecx
mov dword [esp + 0x14], edi
cmp eax, 0x42
je 0x4c2f4b
mov dword [esp + 0x1c], ecx
cmp eax, 0x4f
jne 0x4c2f53
mov dword [esp + 0x1c], 1
add esi, 4
jmp 0x4c2fe9
xor ecx, ecx
mov dword [esp + 0x20], 1
add esi, 2
jmp 0x4c2fe1
mov ecx, 1
mov dword [esp + 0x20], ecx
add esi, 2
jmp 0x4c2fe1
mov eax, 1
xor ecx, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], eax
add esi, 2
jmp 0x4c2fe9
movzx eax, word [esi + 2]
xor ecx, ecx
mov dword [esp + 0x20], 1
mov dword [esp + 0x14], eax
add esi, 4
jmp 0x4c2fe9
xor ecx, ecx
cmp edx, 0x48
setl cl
mov eax, edx
add esi, 2
dec ecx
and ecx, 0xd
add ecx, 0x3b
sub eax, ecx
mov ecx, eax
and ecx, 1
mov dword [esp + 0x1c], ecx
movsx ecx, byte [eax + 0x5053d0]
movsx eax, byte [eax + 0x5053d8]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4c2fe9
mov dword [esp + 0x14], SysReAllocString
movzx edi, word [esi]
add esi, 2
mov dword [esp + 0x24], edi
mov dword [esp + 0x158], esi
cmp edx, 0x48
jl 0x4c3220
cmp edi, 0x7f
jbe 0x4c3035
mov edx, edi
shr edx, 7
movzx eax, byte [edx + 0x4f7490]
shl eax, 7
mov edx, edi
and edx, 0x7f
add eax, edx
movzx eax, word [eax*2 + 0x4f9690]
mov esi, dword [eax*8 + 0x4f63b4]
add esi, edi
mov dword [esp + 0x28], esi
jmp 0x4c3057
cmp edi, 0xff
ja 0x4c3051
mov edx, dword [esp + 0x164]
mov eax, dword [edx + 0x38]
movzx esi, byte [eax + edi]
mov dword [esp + 0x28], esi
jmp 0x4c3057
mov esi, edi
mov dword [esp + 0x28], edi
mov edx, 1
cmp ecx, edx
jl 0x4c30c4
mov eax, dword [esp + 0x164]
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x18], eax
cmp ebp, dword [esp + 0x18]
jae 0x4c66e3
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
add ebp, 2
cmp ebx, 0xd800
jne 0x4c30af
movzx ebx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and ebx, 0x3ff
or eax, ebx
add eax, 0x10000
add ebp, 2
cmp edi, eax
je case.0x4c018e.151
cmp esi, eax
je case.0x4c018e.151
inc edx
cmp edx, ecx
jle 0x4c3072
mov esi, dword [esp + 0x14]
cmp ecx, esi
je 0x4c0161
cmp dword [esp + 0x1c], 0
jne 0x4c6cb0
mov dword [esp + 0x1c], ebp
cmp ecx, esi
jge 0x4c316e
mov edx, dword [esp + 0x164]
mov edi, dword [edx + 0x7c]
mov edx, 1
cmp ebp, edi
jae 0x4c3147
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c3130
movzx edx, word [ebp + 2]
and eax, 0x3ff
and edx, 0x3ff
shl eax, 0xa
or eax, edx
add eax, 0x10000
mov edx, 2
cmp dword [esp + 0x24], eax
je 0x4c316e
cmp dword [esp + 0x28], eax
je 0x4c316e
inc ecx
lea ebp, [ebp + edx*2]
cmp ecx, esi
jl 0x4c30f1
jmp 0x4c316e
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je 0x4c316e
cmp ebp, dword [eax + 0x88]
jbe 0x4c316e
mov dword [eax + 0x64], edx
cmp dword [eax + 0x8c], edx
jg 0x4c621f
cmp dword [esp + 0x20], 0
jne 0x4c0161
mov ecx, dword [esp + 0x16c]
mov esi, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
mov edi, dword [esp + 0x160]
mov ebx, dword [esp + 0x15c]
mov eax, dword [esp + 0x158]
inc ecx
push ecx
push esi
push edx
push edi
push ebx
push eax
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
mov ecx, ebp
sub ebp, 2
cmp ecx, dword [esp + 0x1c]
je case.0x4c018e.151
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4c31e3
sub ebp, 2
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x158]
inc edx
push edx
push esi
push eax
push edi
push ebx
push ecx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c31bb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x164]
mov edx, 1
cmp ecx, edx
jl 0x4c3286
mov esi, dword [eax + 0x7c]
cmp ebp, esi
jae 0x4c66e3
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
add ebp, 2
cmp ebx, 0xd800
jne 0x4c3272
movzx ebx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and ebx, 0x3ff
or eax, ebx
add eax, 0x10000
add ebp, 2
cmp edi, eax
je case.0x4c018e.151
inc edx
cmp edx, ecx
jle 0x4c3237
mov eax, dword [esp + 0x164]
mov esi, dword [esp + 0x14]
cmp ecx, esi
je 0x4c0161
cmp dword [esp + 0x1c], 0
jne 0x4c6d99
mov dword [esp + 0x1c], ebp
cmp ecx, esi
jge 0x4c3327
mov edi, dword [eax + 0x7c]
jmp 0x4c32b7
mov eax, dword [esp + 0x164]
mov edx, 1
cmp ebp, edi
jae 0x4c3307
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c32f6
movzx edx, word [ebp + 2]
and eax, 0x3ff
and edx, 0x3ff
shl eax, 0xa
or eax, edx
add eax, 0x10000
mov edx, 2
cmp dword [esp + 0x24], eax
je 0x4c3327
inc ecx
lea ebp, [ebp + edx*2]
cmp ecx, esi
jl 0x4c32b0
jmp 0x4c3327
cmp dword [eax + 0x8c], 0
je 0x4c3327
cmp ebp, dword [eax + 0x88]
jbe 0x4c3327
mov dword [eax + 0x64], edx
cmp dword [eax + 0x8c], edx
jg 0x4c621f
cmp dword [esp + 0x20], 0
jne 0x4c0161
mov ecx, dword [esp + 0x16c]
mov esi, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
mov edi, dword [esp + 0x160]
mov ebx, dword [esp + 0x15c]
mov eax, dword [esp + 0x158]
inc ecx
push ecx
push esi
push edx
push edi
push ebx
push eax
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
mov ecx, ebp
sub ebp, 2
cmp ecx, dword [esp + 0x1c]
je case.0x4c018e.151
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4c339c
sub ebp, 2
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x158]
inc edx
push edx
push esi
push eax
push edi
push ebx
push ecx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c3374
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
movzx eax, word [esi + 2]
mov ebx, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], 1
add esi, 4
jmp 0x4c34a2
movzx edx, word [esi + 2]
xor ebx, ebx
mov dword [esp + 0x14], edx
xor edx, edx
cmp eax, 0x5c
sete dl
mov dword [esp + 0x24], ebx
add esi, 4
mov dword [esp + 0x1c], edx
jmp 0x4c34a2
xor ebx, ebx
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], ebx
add esi, 2
jmp 0x4c349a
mov ebx, 1
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
add esi, 2
jmp 0x4c349a
mov eax, 1
xor ebx, ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x14], eax
add esi, 2
jmp 0x4c34a2
movzx eax, word [esi + 2]
xor ebx, ebx
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], ebx
mov dword [esp + 0x14], eax
add esi, 4
jmp 0x4c34a2
lea eax, [edx - 0x55]
movsx ebx, byte [eax + 0x5053d0]
mov edx, eax
movsx eax, byte [eax + 0x5053d8]
and edx, 1
add esi, 2
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x14], eax
cmp eax, ecx
jne 0x4c34a2
mov dword [esp + 0x14], SysReAllocString
movzx eax, word [esi]
add esi, 2
mov dword [esp + 0x18], eax
mov dword [esp + 0x158], esi
cmp eax, 0x10
je 0x4c34ca
cmp eax, 0xf
je 0x4c34ca
mov edi, dword [esp + 0x2c]
or eax, 0xffffffff
mov dword [esp + 0x28], eax
jmp 0x4c34f3
movzx eax, word [esi]
xor edx, edx
cmp dword [esp + 0x18], 0xf
mov dword [esp + 0x28], eax
sete dl
add esi, 4
mov dword [esp + 0x158], esi
mov edi, edx
movzx edx, word [esi - 2]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x38], edx
cmp ebx, ecx
jle 0x4c35f9
cmp eax, ecx
jl 0x4c3ae3
cmp eax, 8
ja case.default.0x4c1d6b
jmp dword [eax*4 + 0x4c80cc]
cmp edi, ecx
jne case.0x4c018e.151
mov ecx, 1
cmp ebx, ecx
jl 0x4c35f9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4c6e7b
movzx eax, word [ebp]
and eax, 0xfc00
add ebp, 2
cmp eax, 0xd800
jne 0x4c3550
add ebp, 2
inc ecx
cmp ecx, ebx
jle 0x4c3532
jmp 0x4c3600
mov ecx, 1
cmp ebx, ecx
jl 0x4c35f9
mov eax, dword [esp + 0x164]
mov edx, dword [eax + 0x7c]
cmp ebp, edx
jae 0x4c6ea7
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4c35ac
movzx esi, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and esi, 0x3ff
or eax, esi
add eax, 0x10000
add ebp, 2
mov esi, eax
shr esi, 7
movzx esi, byte [esi + 0x4f7490]
and eax, 0x7f
shl esi, 7
add esi, eax
movzx eax, word [esi*2 + 0x4f9690]
movzx eax, byte [eax*8 + 0x4f63b1]
cmp eax, 9
je 0x4c35e3
cmp eax, 5
je 0x4c35e3
cmp eax, 8
je 0x4c35e3
xor eax, eax
jmp 0x4c35e8
mov eax, 1
cmp eax, edi
je case.0x4c018e.151
inc ecx
cmp ecx, ebx
jle 0x4c3571
mov esi, dword [esp + 0x164]
mov edi, dword [esp + 0x14]
cmp ebx, edi
je 0x4c0161
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 0x28]
jne 0x4c6f19
mov dword [esp + 0x1c], ebp
test eax, eax
js 0x4c4a4c
cmp eax, 8
ja case.default.0x4c1d6b
jmp dword [eax*4 + 0x4c80f0]
mov ecx, 1
cmp ebx, ecx
jl 0x4c35f9
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
cmp ebp, edx
jae 0x4c6eda
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4c3685
movzx esi, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and esi, 0x3ff
or eax, esi
add eax, 0x10000
add ebp, 2
mov esi, eax
shr esi, 7
movzx esi, byte [esi + 0x4f7490]
and eax, 0x7f
shl esi, 7
add esi, eax
movzx eax, word [esi*2 + 0x4f9690]
movzx eax, byte [eax*8 + 0x4f63b1]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x3c], ecx
xor ecx, ecx
cmp dword [eax*4 + 0x4f5c08], esi
sete cl
cmp ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
je case.0x4c018e.151
inc ecx
cmp ecx, ebx
jle 0x4c364a
jmp 0x4c35f9
mov ecx, 1
cmp ebx, ecx
jl 0x4c35f9
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
cmp ebp, edx
jae 0x4c6eda
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4c372b
movzx esi, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and esi, 0x3ff
or eax, esi
add eax, 0x10000
add ebp, 2
mov esi, eax
shr esi, 7
movzx esi, byte [esi + 0x4f7490]
and eax, 0x7f
shl esi, 7
add esi, eax
movzx eax, word [esi*2 + 0x4f9690]
movzx eax, byte [eax*8 + 0x4f63b1]
mov dword [esp + 0x3c], ecx
xor ecx, ecx
cmp eax, dword [esp + 0x38]
sete cl
cmp ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
je case.0x4c018e.151
inc ecx
cmp ecx, ebx
jle 0x4c36f0
jmp 0x4c35f9
mov ecx, 1
cmp ebx, ecx
jl 0x4c35f9
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
cmp ebp, edx
jae 0x4c6eda
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4c37c6
movzx esi, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and esi, 0x3ff
or eax, esi
add eax, 0x10000
add ebp, 2
mov esi, eax
shr esi, 7
movzx esi, byte [esi + 0x4f7490]
and eax, 0x7f
shl esi, 7
add esi, eax
movzx eax, word [esi*2 + 0x4f9690]
movzx eax, byte [eax*8 + 0x4f63b0]
mov dword [esp + 0x3c], ecx
xor ecx, ecx
cmp eax, dword [esp + 0x38]
sete cl
cmp ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
je case.0x4c018e.151
inc ecx
cmp ecx, ebx
jle 0x4c378b
jmp 0x4c35f9
mov ecx, 1
cmp ebx, ecx
jl 0x4c35f9
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
cmp ebp, edx
jae 0x4c6ea7
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4c3861
movzx esi, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and esi, 0x3ff
or eax, esi
add eax, 0x10000
add ebp, 2
mov esi, eax
shr esi, 7
movzx esi, byte [esi + 0x4f7490]
and eax, 0x7f
shl esi, 7
add esi, eax
movzx eax, word [esi*2 + 0x4f9690]
movzx eax, byte [eax*8 + 0x4f63b1]
mov eax, dword [eax*4 + 0x4f5c08]
cmp eax, 1
je 0x4c389a
cmp eax, 3
je 0x4c389a
xor eax, eax
jmp 0x4c389f
mov eax, 1
cmp eax, edi
je case.0x4c018e.151
inc ecx
cmp ecx, ebx
jle 0x4c3826
jmp 0x4c35f9
mov ecx, 1
cmp ebx, ecx
jl 0x4c35f9
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
lea edi, [ecx + 5]
cmp ebp, edx
jae 0x4c6ea7
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4c390a
movzx esi, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and esi, 0x3ff
or eax, esi
add eax, 0x10000
add ebp, 2
mov esi, eax
shr esi, 7
movzx esi, byte [esi + 0x4f7490]
shl esi, 7
mov ebx, eax
and ebx, 0x7f
add esi, ebx
movzx esi, word [esi*2 + 0x4f9690]
movzx esi, byte [esi*8 + 0x4f63b1]
cmp dword [esi*4 + 0x4f5c08], edi
je 0x4c3951
cmp eax, 9
je 0x4c3951
cmp eax, 0xa
je 0x4c3951
cmp eax, 0xc
je 0x4c3951
cmp eax, 0xd
je 0x4c3951
xor eax, eax
jmp 0x4c3956
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4c018e.151
mov ebx, dword [esp + 0x24]
inc ecx
cmp ecx, ebx
jle 0x4c38cf
jmp 0x4c35f9
mov ecx, 1
cmp ebx, ecx
jl 0x4c35f9
mov eax, dword [esp + 0x164]
mov edx, dword [eax + 0x7c]
lea edi, [ecx + 5]
cmp ebp, edx
jae 0x4c6ea7
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4c39c7
movzx esi, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and esi, 0x3ff
or eax, esi
add eax, 0x10000
add ebp, 2
mov esi, eax
shr esi, 7
movzx esi, byte [esi + 0x4f7490]
shl esi, 7
mov ebx, eax
and ebx, 0x7f
add esi, ebx
movzx esi, word [esi*2 + 0x4f9690]
movzx esi, byte [esi*8 + 0x4f63b1]
cmp dword [esi*4 + 0x4f5c08], edi
je 0x4c3a13
cmp eax, 9
je 0x4c3a13
cmp eax, 0xa
je 0x4c3a13
cmp eax, 0xb
je 0x4c3a13
cmp eax, 0xc
je 0x4c3a13
cmp eax, 0xd
je 0x4c3a13
xor eax, eax
jmp 0x4c3a18
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4c018e.151
mov ebx, dword [esp + 0x24]
inc ecx
cmp ecx, ebx
jle 0x4c398c
jmp 0x4c35f9
mov edx, 1
cmp ebx, edx
jl 0x4c35f9
mov ecx, dword [esp + 0x164]
mov edi, dword [ecx + 0x7c]
cmp ebp, edi
jae 0x4c6eda
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c3a86
movzx ecx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and ecx, 0x3ff
or eax, ecx
add eax, 0x10000
add ebp, 2
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x4f7490]
shl ecx, 7
mov esi, eax
and esi, 0x7f
add ecx, esi
movzx ecx, word [ecx*2 + 0x4f9690]
movzx ecx, byte [ecx*8 + 0x4f63b1]
mov ecx, dword [ecx*4 + 0x4f5c08]
cmp ecx, 1
je 0x4c3ac6
cmp ecx, 3
je 0x4c3ac6
cmp eax, 0x5f
je 0x4c3ac6
xor eax, eax
jmp 0x4c3acb
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4c018e.151
inc edx
cmp edx, ebx
jle 0x4c3a4b
jmp 0x4c35f9
mov eax, dword [esp + 0x18]
cmp eax, 0x16
jne 0x4c3bf5
lea esi, [eax - 0x15]
cmp ebx, esi
jl 0x4c35f9
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
cmp ebp, edx
jae 0x4c6eda
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c3b40
movzx ecx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and ecx, 0x3ff
or eax, ecx
add eax, 0x10000
add ebp, 2
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x4f7490]
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4f9690]
movzx ecx, byte [eax*8 + 0x4f63b1]
cmp dword [ecx*4 + 0x4f5c08], 2
je case.0x4c018e.151
cmp ebp, edx
jae 0x4c3be7
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
mov ecx, 1
cmp edi, 0xd800
jne 0x4c3bb1
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, 2
mov edi, eax
shr edi, 7
movzx edi, byte [edi + 0x4f7490]
and eax, 0x7f
shl edi, 7
add edi, eax
movzx eax, word [edi*2 + 0x4f9690]
movzx eax, byte [eax*8 + 0x4f63b1]
cmp dword [eax*4 + 0x4f5c08], 2
jne 0x4c3be7
lea ebp, [ebp + ecx*2]
cmp ebp, edx
jb 0x4c3b7a
inc esi
cmp esi, ebx
jle 0x4c3b05
jmp 0x4c35f9
add eax, 0xfffffffa
cmp eax, 0xf
ja case.default.0x4c1d6b
jmp dword [eax*4 + 0x4c8114]
mov edi, 1
cmp ebx, edi
jl 0x4c35f9
mov ecx, dword [esp + 0x164]
lea esp, [esp]
cmp ebp, dword [ecx + 0x7c]
jae 0x4c6eae
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x4c3c5b
mov ecx, dword [esp + 0x164]
mov edx, dword [ecx + 0x7c]
push 1
lea esi, [ecx + 0x1c]
push eax
mov ecx, ebp
call fcn.004c9390
add esp, 8
test eax, eax
jne case.0x4c018e.151
mov ecx, dword [esp + 0x164]
jmp 0x4c3c8b
mov eax, dword [ecx + 0x1c]
mov esi, dword [ecx + 0x7c]
lea edx, [eax + eax]
sub esi, edx
cmp ebp, esi
ja 0x4c3c8b
mov dx, word [ebp]
cmp dx, word [ecx + 0x2c]
jne 0x4c3c8b
cmp eax, 1
je case.0x4c018e.151
mov ax, word [ebp + 2]
cmp ax, word [ecx + 0x2e]
je case.0x4c018e.151
add ebp, 2
cmp ebp, dword [ecx + 0x7c]
jae 0x4c3cac
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov eax, 0xdc00
cmp dx, ax
jne 0x4c3cac
add ebp, 2
inc edi
cmp edi, ebx
jle 0x4c3c20
jmp 0x4c35f9
mov eax, 1
cmp ebx, eax
jl 0x4c35f9
mov esi, dword [esp + 0x164]
mov ecx, dword [esi + 0x7c]
cmp ebp, ecx
jae 0x4c6e7b
add ebp, 2
cmp ebp, ecx
jae 0x4c3cf9
mov dx, word [ebp]
mov edi, 0xfc00
and dx, di
mov edi, 0xdc00
cmp dx, di
jne 0x4c3cf9
add ebp, 2
inc eax
cmp eax, ebx
jle 0x4c3cd1
jmp 0x4c3600
mov esi, dword [esp + 0x164]
mov ecx, dword [esi + 0x7c]
lea eax, [ebx + ebx]
sub ecx, eax
cmp ebp, ecx
ja case.0x4c018e.151
add ebp, eax
jmp 0x4c3600
mov ecx, 1
cmp ebx, ecx
jl 0x4c35f9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4c6eed
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4c3d73
movzx edi, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edi, 0x3ff
or eax, edi
add eax, 0x10000
add ebp, 2
cmp eax, 0xd
ja 0x4c3d98
je 0x4c3d88
cmp eax, 0xa
je 0x4c3db7
add eax, 0xfffffff5
jmp 0x4c3da4
cmp ebp, edx
jae 0x4c3db7
cmp word [ebp], 0xa
jne 0x4c3db7
add ebp, 2
jmp 0x4c3db7
cmp eax, 0x85
je 0x4c3dad
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x4c018e.151
cmp dword [esi + 0x68], 0
jne case.0x4c018e.151
inc ecx
cmp ecx, ebx
jle 0x4c3d38
jmp 0x4c3600
mov ecx, 1
cmp ebx, ecx
jl 0x4c35f9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
lea esp, [esp]
cmp ebp, edx
jae 0x4c6eed
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4c3e1b
movzx edi, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edi, 0x3ff
or eax, edi
add eax, 0x10000
add ebp, 2
cmp eax, 0x180e
ja 0x4c3e4d
je case.0x4c018e.151
cmp eax, 0xa0
ja 0x4c3e46
je case.0x4c018e.151
cmp eax, 9
je case.0x4c018e.151
cmp eax, 0x20
jmp 0x4c3e78
cmp eax, 0x1680
jmp 0x4c3e78
cmp eax, 0x205f
ja 0x4c3e73
je case.0x4c018e.151
cmp eax, 0x2000
jb 0x4c3e7e
cmp eax, 0x200a
jbe case.0x4c018e.151
cmp eax, 0x202f
jmp 0x4c3e78
cmp eax, 0x3000
je case.0x4c018e.151
inc ecx
cmp ecx, ebx
jle 0x4c3de0
jmp 0x4c3600
mov ecx, 1
cmp ebx, ecx
jl 0x4c35f9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4c6eed
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4c3ede
movzx edi, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edi, 0x3ff
or eax, edi
add eax, 0x10000
add ebp, 2
cmp eax, 0x180e
ja 0x4c3f13
je 0x4c3f40
cmp eax, 0xa0
ja 0x4c3f09
je 0x4c3f40
cmp eax, 9
je 0x4c3f40
cmp eax, 0x20
jmp 0x4c3f3a
cmp eax, 0x1680
jmp 0x4c3f3a
cmp eax, 0x205f
ja 0x4c3f35
je 0x4c3f40
cmp eax, 0x2000
jb case.0x4c018e.151
cmp eax, 0x200a
jbe 0x4c3f40
cmp eax, 0x202f
jmp 0x4c3f3a
cmp eax, 0x3000
jne case.0x4c018e.151
inc ecx
cmp ecx, ebx
jle 0x4c3ea3
jmp 0x4c3600
mov ecx, 1
cmp ebx, ecx
jl 0x4c35f9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4c6eed
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4c3fa4
movzx edi, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edi, 0x3ff
or eax, edi
add eax, 0x10000
add ebp, 2
cmp eax, 0x85
ja 0x4c3fbb
je case.0x4c018e.151
cmp eax, 0xa
jb 0x4c3fcd
cmp eax, 0xd
jmp 0x4c3fc7
cmp eax, 0x2028
jb 0x4c3fcd
cmp eax, 0x2029
jbe case.0x4c018e.151
inc ecx
cmp ecx, ebx
jle 0x4c3f65
jmp 0x4c3600
mov ecx, 1
cmp ebx, ecx
jl 0x4c35f9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
mov edi, edi
cmp ebp, edx
jae 0x4c6eed
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4c402f
movzx edi, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edi, 0x3ff
or eax, edi
add eax, 0x10000
add ebp, 2
cmp eax, 0x85
ja 0x4c4040
je 0x4c404e
add eax, 0xfffffff6
cmp eax, 3
jmp 0x4c4048
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x4c018e.151
inc ecx
cmp ecx, ebx
jle 0x4c3ff0
jmp 0x4c3600
mov ecx, 1
cmp ebx, ecx
jl 0x4c35f9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
nop
cmp ebp, edx
jae 0x4c6e7b
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4c40af
movzx edi, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edi, 0x3ff
or eax, edi
add eax, 0x10000
add ebp, 2
cmp eax, 0x80
jae 0x4c40c3
mov edi, dword [esi + 0x3c]
test byte [eax + edi], 4
jne case.0x4c018e.151
inc ecx
cmp ecx, ebx
jle 0x4c4070
jmp 0x4c3600
mov ecx, 1
cmp ebx, ecx
jl 0x4c35f9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4c6eed
movzx eax, word [ebp]
mov edi, 0x80
cmp ax, di
jae case.0x4c018e.151
mov edi, dword [esi + 0x3c]
test byte [eax + edi], 4
je case.0x4c018e.151
inc ecx
add ebp, 2
cmp ecx, ebx
jle 0x4c40e4
jmp 0x4c3600
mov ecx, 1
cmp ebx, ecx
jl 0x4c35f9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
nop
cmp ebp, edx
jae 0x4c6e7b
movzx eax, word [ebp]
mov edi, 0x80
cmp ax, di
jae 0x4c4153
mov edi, dword [esi + 0x3c]
test byte [eax + edi], 1
jne case.0x4c018e.151
add ebp, 2
cmp ebp, edx
jae 0x4c4177
mov ax, word [ebp]
mov edi, 0xfc00
and ax, di
mov edi, 0xdc00
cmp ax, di
jne 0x4c4177
add ebp, 2
inc ecx
cmp ecx, ebx
jle 0x4c4130
jmp 0x4c3600
mov ecx, 1
cmp ebx, ecx
jl 0x4c35f9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4c6eed
movzx eax, word [ebp]
mov edi, 0x80
cmp ax, di
jae case.0x4c018e.151
mov edi, dword [esi + 0x3c]
test byte [eax + edi], 1
je case.0x4c018e.151
inc ecx
add ebp, 2
cmp ecx, ebx
jle 0x4c4198
jmp 0x4c3600
mov ecx, 1
cmp ebx, ecx
jl 0x4c35f9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4c6e7b
movzx eax, word [ebp]
mov edi, 0x80
cmp ax, di
jae 0x4c4206
mov edi, dword [esi + 0x3c]
test byte [eax + edi], 0x10
jne case.0x4c018e.151
add ebp, 2
cmp ebp, edx
jae 0x4c422a
mov ax, word [ebp]
mov edi, 0xfc00
and ax, di
mov edi, 0xdc00
cmp ax, di
jne 0x4c422a
add ebp, 2
inc ecx
cmp ecx, ebx
jle 0x4c41e3
jmp 0x4c3600
mov esi, dword [esp + 0x164]
mov ecx, 1
cmp ebx, ecx
jl 0x4c3600
mov edx, dword [esi + 0x7c]
jmp 0x4c4250
cmp ebp, edx
jae 0x4c6eed
movzx eax, word [ebp]
mov edi, 0x80
cmp ax, di
jae case.0x4c018e.151
mov edi, dword [esi + 0x3c]
test byte [eax + edi], 0x10
je case.0x4c018e.151
inc ecx
add ebp, 2
cmp ecx, ebx
jle 0x4c4250
jmp 0x4c3600
mov ecx, ebx
cmp ebx, edi
jge 0x4c499d
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
mov eax, 1
cmp ebp, edx
jae 0x4c42db
mov si, word [ebp]
mov edi, 0xfc00
and si, di
mov edi, 0xd800
cmp si, di
jne 0x4c42c0
mov eax, 2
cmp dword [esp + 0x2c], 0
jne 0x4c499d
inc ecx
lea ebp, [ebp + eax*2]
cmp ecx, dword [esp + 0x14]
jl 0x4c4298
jmp 0x4c499d
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je 0x4c499d
mov ecx, eax
cmp ebp, dword [ecx + 0x88]
jbe 0x4c499d
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jmp 0x4c4997
mov edx, ebx
cmp ebx, edi
jge 0x4c499d
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4c4337
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4c4533
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c437a
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, 2
mov ebx, eax
shr ebx, 7
movzx ebx, byte [ebx + 0x4f7490]
and eax, 0x7f
shl ebx, 7
add ebx, eax
movzx eax, word [ebx*2 + 0x4f9690]
movzx eax, byte [eax*8 + 0x4f63b1]
cmp eax, 9
je 0x4c43b1
cmp eax, 5
je 0x4c43b1
cmp eax, 8
je 0x4c43b1
xor eax, eax
jmp 0x4c43b6
mov eax, 1
cmp eax, dword [esp + 0x2c]
je 0x4c499d
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4c4330
jmp 0x4c499d
mov edx, ebx
cmp ebx, edi
jge 0x4c499d
mov ecx, dword [esp + 0x164]
mov esi, dword [ecx + 0x7c]
mov edi, dword [esp + 0x38]
mov eax, ecx
jmp 0x4c43f7
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4c4533
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c443a
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, 2
mov ebx, eax
shr ebx, 7
movzx ebx, byte [ebx + 0x4f7490]
shl ebx, 7
and eax, 0x7f
add ebx, eax
movzx eax, word [ebx*2 + 0x4f9690]
movzx eax, byte [eax*8 + 0x4f63b1]
xor ebx, ebx
cmp dword [eax*4 + 0x4f5c08], edi
sete bl
cmp ebx, dword [esp + 0x2c]
je 0x4c499d
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, dword [esp + 0x14]
jl 0x4c43f0
jmp 0x4c499d
mov edx, ebx
cmp ebx, edi
jge 0x4c499d
mov ecx, dword [esp + 0x164]
mov esi, dword [ecx + 0x7c]
mov edi, dword [esp + 0x14]
mov ecx, 1
cmp ebp, esi
jae 0x4c452c
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c44e3
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, 2
mov ebx, eax
shr ebx, 7
movzx ebx, byte [ebx + 0x4f7490]
shl ebx, 7
and eax, 0x7f
add ebx, eax
movzx eax, word [ebx*2 + 0x4f9690]
movzx eax, byte [eax*8 + 0x4f63b1]
xor ebx, ebx
cmp eax, dword [esp + 0x38]
sete bl
cmp ebx, dword [esp + 0x2c]
je 0x4c499d
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4c44a0
jmp 0x4c499d
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je 0x4c499d
cmp ebp, dword [eax + 0x88]
jbe 0x4c499d
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jmp 0x4c4997
mov edx, ebx
cmp ebx, edi
jge 0x4c499d
mov ecx, dword [esp + 0x164]
mov esi, dword [ecx + 0x7c]
mov edi, dword [esp + 0x14]
mov ecx, 1
cmp ebp, esi
jae 0x4c452c
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c45b1
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, 2
mov ebx, eax
shr ebx, 7
movzx ebx, byte [ebx + 0x4f7490]
shl ebx, 7
and eax, 0x7f
add ebx, eax
movzx eax, word [ebx*2 + 0x4f9690]
movzx eax, byte [eax*8 + 0x4f63b0]
xor ebx, ebx
cmp eax, dword [esp + 0x38]
sete bl
cmp ebx, dword [esp + 0x2c]
je 0x4c499d
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4c4572
jmp 0x4c499d
mov edx, ebx
cmp ebx, edi
jge 0x4c499d
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, 1
jmp 0x4c4618
mov eax, dword [esp + 0x164]
mov ecx, edi
cmp ebp, esi
jae 0x4c46b1
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c4658
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, 2
mov ebx, eax
shr ebx, 7
movzx ebx, byte [ebx + 0x4f7490]
and eax, 0x7f
shl ebx, 7
add ebx, eax
movzx eax, word [ebx*2 + 0x4f9690]
movzx eax, byte [eax*8 + 0x4f63b1]
mov eax, dword [eax*4 + 0x4f5c08]
cmp eax, edi
je 0x4c4690
cmp eax, 3
je 0x4c4690
xor eax, eax
jmp 0x4c4692
mov eax, edi
cmp eax, dword [esp + 0x2c]
je 0x4c499d
add edx, edi
lea ebp, [ebp + ecx*2]
cmp edx, dword [esp + 0x14]
jl 0x4c4611
jmp 0x4c499d
cmp dword [eax + 0x8c], 0
je 0x4c499d
cmp ebp, dword [eax + 0x88]
jbe 0x4c499d
mov dword [eax + 0x64], edi
cmp dword [eax + 0x8c], edi
jmp 0x4c4997
mov edx, ebx
cmp ebx, edi
jge 0x4c499d
mov ecx, dword [esp + 0x164]
mov esi, dword [ecx + 0x7c]
mov eax, ecx
jmp 0x4c46f7
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4c4533
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4c473a
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, 2
mov edi, eax
shr edi, 7
movzx edi, byte [edi + 0x4f7490]
shl edi, 7
mov ebx, eax
and ebx, 0x7f
add edi, ebx
movzx edi, word [edi*2 + 0x4f9690]
movzx edi, byte [edi*8 + 0x4f63b1]
cmp dword [edi*4 + 0x4f5c08], 6
je 0x4c478e
cmp eax, 9
je 0x4c478e
cmp eax, 0xa
je 0x4c478e
cmp eax, 0xc
je 0x4c478e
cmp eax, 0xd
je 0x4c478e
xor eax, eax
jmp 0x4c4793
mov eax, 1
cmp eax, dword [esp + 0x2c]
je 0x4c499d
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, dword [esp + 0x14]
jl 0x4c46f0
jmp 0x4c499d
mov edx, ebx
cmp ebx, edi
jge 0x4c499d
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
jmp 0x4c47d7
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4c4533
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4c481a
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, 2
mov edi, eax
shr edi, 7
movzx edi, byte [edi + 0x4f7490]
shl edi, 7
mov ebx, eax
and ebx, 0x7f
add edi, ebx
movzx edi, word [edi*2 + 0x4f9690]
movzx edi, byte [edi*8 + 0x4f63b1]
cmp dword [edi*4 + 0x4f5c08], 6
je 0x4c487b
cmp eax, 9
je 0x4c487b
cmp eax, 0xa
je 0x4c487b
cmp eax, 0xb
je 0x4c487b
cmp eax, 0xc
je 0x4c487b
cmp eax, 0xd
je 0x4c487b
xor eax, eax
jmp 0x4c4880
mov eax, 1
cmp eax, dword [esp + 0x2c]
je 0x4c499d
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, dword [esp + 0x14]
jl 0x4c47d0
jmp 0x4c499d
mov esi, ebx
cmp ebx, dword [esp + 0x14]
jge 0x4c499d
mov edx, dword [esp + 0x164]
mov edi, dword [edx + 0x7c]
mov eax, edx
jmp 0x4c48c7
mov eax, dword [esp + 0x164]
mov edx, 1
cmp ebp, edi
jae 0x4c4975
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x4c490a
movzx edx, word [ebp + 2]
and eax, 0x3ff
and edx, 0x3ff
shl eax, 0xa
or eax, edx
add eax, 0x10000
mov edx, 2
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x4f7490]
shl ecx, 7
mov ebx, eax
and ebx, 0x7f
add ecx, ebx
movzx ecx, word [ecx*2 + 0x4f9690]
movzx ecx, byte [ecx*8 + 0x4f63b1]
mov ecx, dword [ecx*4 + 0x4f5c08]
cmp ecx, 1
je 0x4c4952
cmp ecx, 3
je 0x4c4952
cmp eax, 0x5f
je 0x4c4952
xor eax, eax
jmp 0x4c4957
mov eax, 1
cmp eax, dword [esp + 0x2c]
je 0x4c499d
inc esi
lea ebp, [ebp + edx*2]
cmp esi, dword [esp + 0x14]
jl 0x4c48c0
jmp 0x4c499d
cmp dword [eax + 0x8c], 0
je 0x4c499d
cmp ebp, dword [eax + 0x88]
jbe 0x4c499d
mov dword [eax + 0x64], edx
cmp dword [eax + 0x8c], edx
jg 0x4c621f
cmp dword [esp + 0x20], 0
jne 0x4c0161
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x164]
mov edi, dword [esp + 0x160]
mov esi, dword [esp + 0x15c]
mov ebx, dword [esp + 0x158]
inc ecx
push ecx
push edx
push eax
push edi
push esi
push ebx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
lea ebx, [ebx]
mov ecx, ebp
sub ebp, 2
cmp ecx, dword [esp + 0x1c]
je case.0x4c018e.151
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4c4a18
sub ebp, 2
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
inc edx
push edx
push eax
push ecx
push edi
push esi
push ebx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c49f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x18]
cmp eax, 0x16
jne 0x4c4c8e
mov esi, ebx
cmp ebx, dword [esp + 0x14]
jge 0x4c4ba9
mov eax, dword [esp + 0x164]
mov edx, dword [eax + 0x7c]
mov ebx, 2
jmp 0x4c4a87
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, edx
jae 0x4c4b81
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4c4ac7
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, ebx
mov edi, eax
shr edi, 7
movzx edi, byte [edi + 0x4f7490]
and eax, 0x7f
shl edi, 7
add edi, eax
movzx eax, word [edi*2 + 0x4f9690]
movzx eax, byte [eax*8 + 0x4f63b1]
cmp dword [eax*4 + 0x4f5c08], ebx
je 0x4c4ba9
lea ebp, [ebp + ecx*2]
cmp ebp, edx
jae 0x4c4b71
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
mov ecx, 1
cmp edi, 0xd800
jne 0x4c4b3c
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, ebx
mov edi, eax
shr edi, 7
movzx edi, byte [edi + 0x4f7490]
and eax, 0x7f
shl edi, 7
add edi, eax
movzx eax, word [edi*2 + 0x4f9690]
movzx eax, byte [eax*8 + 0x4f63b1]
cmp dword [eax*4 + 0x4f5c08], ebx
jne 0x4c4b71
lea ebp, [ebp + ecx*2]
cmp ebp, edx
jb 0x4c4b04
inc esi
cmp esi, dword [esp + 0x14]
jl 0x4c4a80
jmp 0x4c4ba9
cmp dword [eax + 0x8c], 0
je 0x4c4ba9
cmp ebp, dword [eax + 0x88]
jbe 0x4c4ba9
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jg 0x4c621f
cmp dword [esp + 0x20], 0
jne 0x4c0161
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
mov edi, dword [esp + 0x160]
mov esi, dword [esp + 0x15c]
mov ebx, dword [esp + 0x158]
inc edx
push edx
push eax
push ecx
push edi
push esi
push ebx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
mov edx, ebp
mov ecx, 2
sub ebp, ecx
cmp edx, dword [esp + 0x1c]
je case.0x4c018e.151
lea esp, [esp]
mov ax, word [ebp]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4c4c28
sub ebp, ecx
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4c4c59
movzx edx, word [ebp + 2]
and eax, 0x3ff
and edx, 0x3ff
shl eax, 0xa
or eax, edx
add eax, 0x10000
mov edx, eax
shr edx, 7
movzx edx, byte [edx + 0x4f7490]
shl edx, 7
and eax, 0x7f
add edx, eax
movzx eax, word [edx*2 + 0x4f9690]
movzx edx, byte [eax*8 + 0x4f63b1]
cmp dword [edx*4 + 0x4f5c08], ecx
jne 0x4c7e49
sub ebp, ecx
jmp 0x4c4c10
add eax, 0xfffffffa
cmp eax, 0xf
ja case.default.0x4c1d6b
jmp dword [eax*4 + 0x4c8154]
cmp edi, 0x7fffffff
mov edi, ebx
jge 0x4c4d96
cmp ebx, dword [esp + 0x14]
jge 0x4c5123
lea esp, [esp]
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4c4d6f
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x4c4d02
mov edx, dword [ecx + 0x7c]
push 1
lea esi, [ecx + 0x1c]
push eax
mov ecx, ebp
call fcn.004c9390
add esp, 8
test eax, eax
jne 0x4c5123
mov ecx, dword [esp + 0x164]
jmp 0x4c4d3a
mov eax, dword [ecx + 0x1c]
mov esi, dword [ecx + 0x7c]
lea edx, [eax + eax]
sub esi, edx
cmp ebp, esi
ja 0x4c4d3a
mov dx, word [ebp]
cmp dx, word [ecx + 0x2c]
jne 0x4c4d3a
cmp eax, 1
je 0x4c5123
mov ax, word [ebp + 2]
cmp ax, word [ecx + 0x2e]
je 0x4c5123
add ebp, 2
cmp ebp, dword [ecx + 0x7c]
jae 0x4c4d5f
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4c4d5f
add ebp, 2
inc edi
cmp edi, dword [esp + 0x14]
jl 0x4c4cc0
jmp 0x4c5123
cmp dword [ecx + 0x8c], 0
je 0x4c5123
mov edx, ecx
cmp ebp, dword [edx + 0x88]
jbe 0x4c5123
mov ecx, 1
mov eax, edx
jmp 0x4c5114
cmp ebx, dword [esp + 0x14]
jge 0x4c5123
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4c4d6f
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x4c4dde
mov edx, dword [ecx + 0x7c]
push 1
lea esi, [ecx + 0x1c]
push eax
mov ecx, ebp
call fcn.004c9390
add esp, 8
test eax, eax
jne 0x4c5123
mov ecx, dword [esp + 0x164]
jmp 0x4c4e16
mov eax, dword [ecx + 0x1c]
mov esi, dword [ecx + 0x7c]
lea edx, [eax + eax]
sub esi, edx
cmp ebp, esi
ja 0x4c4e16
mov dx, word [ebp]
cmp dx, word [ecx + 0x2c]
jne 0x4c4e16
cmp eax, 1
je 0x4c5123
mov ax, word [ebp + 2]
cmp ax, word [ecx + 0x2e]
je 0x4c5123
add ebp, 2
cmp ebp, dword [ecx + 0x7c]
jae 0x4c4e3f
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4c4e3f
add ebp, 2
inc edi
cmp edi, dword [esp + 0x14]
jl 0x4c4da0
jmp 0x4c5123
cmp edi, 0x7fffffff
jge 0x4c4eb5
mov eax, ebx
cmp ebx, edi
jge 0x4c5123
mov ecx, dword [esi + 0x7c]
cmp ebp, ecx
jae 0x4c4eb8
add ebp, 2
cmp ebp, ecx
jae 0x4c4e98
mov dx, word [ebp]
mov ebx, 0xfc00
and dx, bx
mov ebx, 0xdc00
cmp dx, bx
jne 0x4c4e98
add ebp, 2
inc eax
cmp eax, edi
jl 0x4c4e68
jmp 0x4c5123
mov ecx, dword [esi + 0x7c]
sub edi, ebx
sub ecx, ebp
mov eax, edi
sar ecx, 1
cmp eax, ecx
jbe 0x4c4ee4
mov ebp, dword [esi + 0x7c]
cmp dword [esi + 0x8c], 0
je 0x4c5123
cmp ebp, dword [esi + 0x88]
jbe 0x4c5123
mov eax, 1
mov dword [esi + 0x64], eax
cmp dword [esi + 0x8c], eax
jmp 0x4c511d
lea ebp, [ebp + eax*2]
jmp 0x4c5123
mov esi, ebx
cmp ebx, dword [esp + 0x14]
jge 0x4c5123
mov ebx, dword [esp + 0x164]
mov edx, dword [ebx + 0x7c]
mov ecx, 1
cmp ebp, edx
jae 0x4c4fc7
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4c4f46
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, 2
cmp eax, 0xd
jne 0x4c4f6d
add ebp, 2
cmp ebp, edx
jae 0x4c5123
cmp word [ebp], 0xa
jne 0x4c4fb7
add ebp, 2
jmp 0x4c4fb7
cmp eax, 0xa
je 0x4c4fb3
cmp dword [ebx + 0x68], 0
jne 0x4c5123
cmp eax, 0xb
je 0x4c4fb3
cmp eax, 0xc
je 0x4c4fb3
cmp eax, 0x85
je 0x4c4fb3
cmp eax, 0x2028
je 0x4c4fb3
cmp eax, 0x2029
jne 0x4c5123
lea ebp, [ebp + ecx*2]
inc esi
cmp esi, dword [esp + 0x14]
jl 0x4c4f03
jmp 0x4c5123
cmp dword [ebx + 0x8c], 0
je 0x4c5123
cmp ebp, dword [ebx + 0x88]
jbe 0x4c5123
mov dword [ebx + 0x64], ecx
cmp dword [ebx + 0x8c], ecx
jmp 0x4c511d
mov esi, ebx
cmp ebx, dword [esp + 0x14]
jge 0x4c5123
mov edx, dword [esp + 0x164]
mov edi, dword [edx + 0x7c]
mov edx, dword [esp + 0x14]
mov ecx, 1
cmp ebp, edi
jae 0x4c50f4
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c504b
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, 2
cmp eax, 0x180e
ja 0x4c5088
je 0x4c50cb
cmp eax, 0xa0
ja 0x4c507e
je 0x4c50cb
cmp eax, 9
je 0x4c50cb
cmp eax, 0x20
jmp 0x4c50be
cmp eax, 0x1680
jmp 0x4c50be
cmp eax, 0x205f
ja 0x4c50b9
je 0x4c50cb
cmp eax, 0x2000
jb 0x4c50c4
cmp eax, 0x200a
jbe 0x4c50cb
cmp eax, 0x202f
jmp 0x4c50be
cmp eax, 0x3000
je 0x4c50cb
xor eax, eax
jmp 0x4c50d0
mov eax, 1
xor ebx, ebx
cmp dword [esp + 0x18], 0x12
sete bl
cmp eax, ebx
je 0x4c5123
inc esi
lea ebp, [ebp + ecx*2]
cmp esi, edx
jl 0x4c5008
jmp 0x4c5123
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je 0x4c5123
cmp ebp, dword [eax + 0x88]
jbe 0x4c5123
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jg 0x4c621f
cmp dword [esp + 0x20], 0
jne 0x4c0161
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
mov edi, dword [esp + 0x160]
mov esi, dword [esp + 0x15c]
mov ebx, dword [esp + 0x158]
inc eax
push eax
push ecx
push edx
push edi
push esi
push ebx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
mov eax, dword [esp + 0x1c]
mov ecx, ebp
sub ebp, 2
cmp ecx, eax
je case.0x4c018e.151
mov dx, word [ebp]
mov ecx, 0xfc00
and dx, cx
mov ecx, 0xdc00
cmp dx, cx
jne 0x4c519e
sub ebp, 2
cmp dword [esp + 0x18], 0x11
jne 0x4c51ca
cmp ebp, eax
jbe 0x4c51ca
cmp word [ebp], 0xa
jne 0x4c51ca
cmp word [ebp - 2], 0xd
jne 0x4c51ca
add ebp, 0xfffffffe
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
inc edx
push edx
push eax
push ecx
push edi
push esi
push ebx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c5170
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov esi, ebx
cmp ebx, dword [esp + 0x14]
jge 0x4c5123
mov edx, dword [esp + 0x164]
mov edi, dword [edx + 0x7c]
mov edx, dword [esp + 0x14]
mov ecx, 1
cmp ebp, edi
jae 0x4c50f4
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c525f
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, 2
cmp eax, 0x85
ja 0x4c52a8
je 0x4c52b2
cmp eax, 0xa
jb 0x4c5282
cmp eax, 0xd
jbe 0x4c52b2
xor eax, eax
xor ebx, ebx
cmp dword [esp + 0x18], 0x14
sete bl
cmp eax, ebx
je 0x4c5123
inc esi
lea ebp, [ebp + ecx*2]
cmp esi, edx
jl 0x4c521c
jmp 0x4c5123
add eax, 0xffffdfd8
cmp eax, 1
ja 0x4c5282
mov eax, 1
jmp 0x4c5284
mov edx, ebx
cmp ebx, edi
jge 0x4c5123
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4c52e7
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4c50fb
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c532a
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, 2
cmp eax, 0x100
jae 0x4c5349
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + 0x3c]
test byte [eax + ebx], 4
jne 0x4c5123
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4c52e0
jmp 0x4c5123
mov edx, ebx
cmp ebx, edi
jge 0x4c5123
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4c5387
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4c50fb
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c53ca
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, 2
cmp eax, 0x100
jae 0x4c5123
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + 0x3c]
test byte [eax + ebx], 4
je 0x4c5123
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4c5380
jmp 0x4c5123
mov edx, ebx
cmp ebx, edi
jge 0x4c5123
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4c5427
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4c50fb
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c546a
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, 2
cmp eax, 0x100
jae 0x4c5489
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + 0x3c]
test byte [eax + ebx], 1
jne 0x4c5123
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4c5420
jmp 0x4c5123
mov edx, ebx
cmp ebx, edi
jge 0x4c5123
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4c54c7
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4c50fb
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c550a
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, 2
cmp eax, 0x100
jae 0x4c5123
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + 0x3c]
test byte [eax + ebx], 1
je 0x4c5123
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4c54c0
jmp 0x4c5123
mov edx, ebx
cmp ebx, edi
jge 0x4c5123
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4c5567
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4c50fb
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c55aa
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, 2
cmp eax, 0x100
jae 0x4c55c9
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + 0x3c]
test byte [eax + ebx], 0x10
jne 0x4c5123
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4c5560
jmp 0x4c5123
mov edx, ebx
cmp ebx, edi
jge 0x4c5123
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4c55f8
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4c50fb
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c563b
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, 2
cmp eax, 0x100
jae 0x4c5123
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + 0x3c]
test byte [eax + ebx], 0x10
je 0x4c5123
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4c55f1
jmp 0x4c5123
mov eax, dword [ebx + 0x90]
cmp eax, dword [esp + 0x160]
jle 0x4c568a
mov dword [esp + 0x160], eax
movzx edx, word [esi + 6]
cmp word [esi + edx*2 + 4], 0x71
lea eax, [esi + edx*2 + 4]
jne 0x4c56ae
mov edi, edi
movzx ecx, word [eax + 2]
cmp word [eax + ecx*2], 0x71
lea eax, [eax + ecx*2]
je 0x4c56a0
mov edx, dword [esp + 0x14]
add eax, 4
cmp edx, 0x86
je 0x4c5f50
mov dword [esp + 0x158], eax
jmp 0x4c5a43
cmp word [esi], 0x74
jne 0x4c5710
mov edx, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
inc edx
push edx
push ecx
push ebx
push eax
push edi
add esi, 4
push esi
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
mov edx, dword [esp + 0x18]
mov dword [esp + 0x158], edx
jmp 0x4c5a43
mov edx, dword [esp + 0x168]
mov dword [ebx + 0x9c], 2
mov ecx, dword [esp + 0x16c]
inc ecx
push ecx
push edx
push ebx
push eax
mov eax, dword [esp + 0x28]
push edi
push eax
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
add esi, 4
mov dword [esp + 0x158], esi
jmp 0x4c5a43
mov ecx, dword [esp + 0x158]
movzx ecx, word [ecx + 4]
mov ebx, dword [esp + 0x164]
lea esi, [ecx + ecx]
mov dword [esp + 0x28], ecx
cmp esi, dword [ebx + 0x14]
jge 0x4c5860
mov eax, dword [ebx + 0xc]
mov edx, dword [eax + esi*4]
mov dword [esp + 0x34], edx
mov edx, dword [eax + esi*4 + 4]
mov dword [esp + 0x1c], edx
mov edx, dword [ebx + 0x10]
sub edx, ecx
mov ecx, dword [eax + edx*4]
lea eax, [eax + edx*4]
mov edx, dword [ebx + 0x94]
mov dword [esp + 0x20], edx
mov edx, ebp
sub edx, dword [ebx + 0x78]
mov dword [esp + 0x30], ecx
mov ecx, dword [ebx + 0xb0]
sar edx, 1
mov dword [esp + 0x24], ecx
mov dword [eax], edx
cmp dword [esp + 0x14], 0x82
mov edi, dword [esp + 0x158]
jl 0x4c57d2
mov dword [ebx + 0x9c], 2
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x160]
inc eax
push eax
mov eax, dword [esp + 0x160]
push ecx
movzx ecx, word [edi]
push ebx
push edx
movzx edx, byte [ecx + 0x4f5b68]
push eax
lea eax, [edi + edx*2]
push eax
push ebp
call fcn.004c00a0
add esp, 0x1c
cmp eax, 0xfffffc1c
je 0x4c5ec4
cmp eax, 0xfffffc20
jne 0x4c5e90
movzx ecx, word [edi + 2]
lea ecx, [edi + ecx*2]
cmp dword [ebx + 0x80], ecx
jae 0x4c7e86
cmp word [edi], 0x71
je 0x4c5848
cmp word [ecx], 0x71
jne 0x4c7e86
xor eax, eax
jmp 0x4c5e98
mov ebx, dword [esp + 0x164]
jmp 0x4c5860
cmp edx, 0x82
jge 0x4c58ae
cmp edx, 0x7b
je 0x4c58ae
cmp dword [ebx + 0x6c], 0
jne 0x4c58b8
mov eax, dword [esp + 0x158]
movzx edx, word [eax + 2]
cmp word [eax + edx*2], 0x71
je 0x4c58b8
movzx ecx, word [eax]
movzx edx, byte [ecx + 0x4f5b68]
lea eax, [eax + edx*2]
mov dword [esp + 0x158], eax
jmp 0x4c5a43
mov dword [ebx + 0x9c], 2
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edi, dword [esp + 0x158]
mov edx, dword [esp + 0x160]
mov esi, dword [ebx + 0xb0]
inc eax
push eax
mov eax, dword [esp + 0x160]
push ecx
movzx ecx, word [edi]
push ebx
push edx
movzx edx, byte [ecx + 0x4f5b68]
push eax
lea eax, [edi + edx*2]
push eax
push ebp
call fcn.004c00a0
add esp, 0x1c
cmp eax, 0xfffffc20
jne 0x4c5935
movzx ecx, word [edi + 2]
lea ecx, [edi + ecx*2]
cmp dword [ebx + 0x80], ecx
jae 0x4c7e86
cmp word [edi], 0x71
je 0x4c593d
cmp word [ecx], 0x71
jne 0x4c7e86
jmp 0x4c593d
test eax, eax
jne 0x4c5ef5
movzx edx, word [edi + 2]
lea eax, [edi + edx*2]
mov dword [ebx + 0xb0], esi
cmp word [eax], 0x71
mov dword [esp + 0x158], eax
jne case.0x4c018e.151
mov edx, dword [esp + 0x14]
jmp 0x4c5860
movzx eax, word [ecx]
cmp eax, 0x75
je 0x4c6104
cmp eax, 0x74
jne 0x4c59d6
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x15c]
inc ecx
push ecx
mov ecx, dword [esp + 0x15c]
push edx
push ebx
push esi
push eax
add ecx, 4
push ecx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
movzx eax, word [edi]
cmp eax, 0x7b
je 0x4c6120
mov edx, 0x82
cmp ax, dx
jae 0x4c6141
mov dword [esp + 0x158], edi
jmp 0x4c5a43
mov eax, 0x82
cmp word [edi], ax
jb 0x4c59ee
mov dword [ebx + 0x9c], 2
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x15c]
inc ecx
push ecx
push edx
push ebx
push esi
push eax
push edi
push ebp
call fcn.004c00a0
add esp, 0x1c
cmp eax, 0xfffffc1c
jne 0x4c5a29
cmp dword [ebx + 0xb8], edi
jmp 0x4c5a2b
test eax, eax
jne 0x4c7e86
cmp word [edi], 0x7b
je 0x4c617b
add dword [esp + 0x158], 4
mov ecx, dword [ebx]
cmp ecx, dword [ebx + 4]
jb 0x4c0123
inc dword [ebx]
mov eax, 0xfffffff8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, 0xffffffeb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x158]
mov esi, dword [esp + 0x164]
mov edx, dword [esp + 0x168]
lea ebx, [eax + 4]
mov dword [esi + 0xb4], ebx
mov dword [esi + 0xb0], ecx
mov ecx, dword [esp + 0x16c]
inc ecx
push ecx
mov ecx, dword [esp + 0x164]
push edx
mov edx, dword [esp + 0x164]
push esi
push ecx
movzx ecx, word [eax]
push edx
movzx edx, byte [ecx + 0x4f5b68]
movzx ecx, word [eax + 2]
add edx, ecx
lea edx, [eax + edx*2]
push edx
push ebp
call fcn.004c00a0
mov edi, eax
add esp, 0x1c
cmp edi, 1
je 0x4c5ae3
cmp edi, 0xfffffc19
jne 0x4c5b03
cmp dword [esi + 0xb0], 0
jne 0x4c5b03
mov dword [esi + 0xb0], ebx
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp edi, 0xfffffc1f
jne 0x4c6069
mov eax, dword [esi + 0x80]
mov ecx, ebx
call fcn.004c92e0
test eax, eax
jne 0x4c6069
mov dword [esi + 0x80], ebp
lea eax, [edi - 1]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
inc eax
push eax
mov eax, dword [esp + 0x164]
push ecx
mov ecx, dword [esp + 0x164]
push edx
movzx edx, word [esi]
push eax
movzx eax, byte [edx + 0x4f5b68]
push ecx
lea ecx, [esi + eax*2]
push ecx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c5bac
cmp eax, 0xfffffc1d
je 0x4c5bac
cmp eax, 0xfffffc1e
je 0x4c5bac
cmp eax, 0xfffffc1f
je 0x4c5bac
cmp eax, 0xfffffc20
jne 0x4c7e86
mov eax, 0xfffffc1a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
inc edx
push edx
mov edx, dword [esp + 0x164]
push eax
mov eax, dword [esp + 0x164]
push ecx
movzx ecx, word [esi]
push edx
movzx edx, byte [ecx + 0x4f5b68]
push eax
lea eax, [esi + edx*2]
push eax
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c5c0f
cmp eax, 0xfffffc20
jne 0x4c7e86
mov eax, 0xfffffc1d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x158]
mov ebx, dword [esp + 0x164]
mov edx, dword [esp + 0x168]
lea esi, [eax + 4]
mov dword [ebx + 0xb4], esi
mov dword [ebx + 0xb0], ecx
mov ecx, dword [esp + 0x16c]
inc ecx
push ecx
mov ecx, dword [esp + 0x164]
push edx
mov edx, dword [esp + 0x164]
push ebx
push ecx
movzx ecx, word [eax]
push edx
movzx edx, byte [ecx + 0x4f5b68]
movzx ecx, word [eax + 2]
add edx, ecx
lea edx, [eax + edx*2]
push edx
push ebp
call fcn.004c00a0
add esp, 0x1c
cmp eax, 1
je 0x4c5c8f
cmp eax, 0xfffffc19
jne 0x4c5bfc
cmp dword [ebx + 0xb0], 0
jne 0x4c5bfc
mov dword [ebx + 0xb0], esi
jmp 0x4c5bfc
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edi, dword [esp + 0x164]
mov edx, dword [esp + 0x160]
inc eax
push eax
mov eax, dword [esp + 0x160]
push ecx
movzx ecx, word [esi]
push edi
push edx
movzx edx, byte [ecx + 0x4f5b68]
push eax
lea eax, [esi + edx*2]
push eax
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c5d05
cmp eax, 0xfffffc1d
je 0x4c5d05
cmp eax, 0xfffffc20
jne 0x4c7e86
mov dword [edi + 0x80], ebp
mov eax, 0xfffffc1e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x160]
inc ecx
push ecx
mov ecx, dword [esp + 0x160]
push edx
movzx edx, word [esi]
push ebx
push eax
movzx eax, byte [edx + 0x4f5b68]
push ecx
movzx ecx, word [esi + 2]
add eax, ecx
lea edx, [esi + eax*2]
push edx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c5d78
cmp eax, 0xfffffc1d
je 0x4c5d78
cmp eax, 0xfffffc20
jne 0x4c7e86
add esi, 4
mov dword [ebx + 0x80], esi
mov eax, 0xfffffc1f
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edi, dword [esp + 0x164]
mov edx, dword [esp + 0x160]
inc eax
push eax
mov eax, dword [esp + 0x160]
push ecx
movzx ecx, word [esi]
push edi
push edx
movzx edx, byte [ecx + 0x4f5b68]
push eax
lea eax, [esi + edx*2]
push eax
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
mov dword [edi + 0x80], esi
mov eax, 0xfffffc20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov edi, dword [esp + 0x158]
mov esi, dword [esp + 0x164]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x160]
lea ebx, [edi + 4]
mov dword [esi + 0xb4], ebx
mov dword [esi + 0xb0], ecx
mov ecx, dword [esp + 0x16c]
inc ecx
push ecx
mov ecx, dword [esp + 0x160]
push edx
movzx edx, word [edi]
push esi
push eax
movzx eax, byte [edx + 0x4f5b68]
push ecx
movzx ecx, word [edi + 2]
add eax, ecx
lea edx, [edi + eax*2]
push edx
push ebp
call fcn.004c00a0
add esp, 0x1c
cmp eax, 1
je 0x4c5e5f
cmp eax, 0xfffffc19
jne 0x4c5e72
cmp dword [esi + 0xb0], 0
jne 0x4c5e72
mov dword [esi + 0xb0], ebx
test eax, eax
jne 0x4c7e86
mov dword [esi + 0x80], edi
mov eax, 0xfffffc20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
test eax, eax
jne 0x4c7e86
mov edx, dword [esp + 0x20]
mov dword [ebx + 0x94], edx
movzx ecx, word [edi + 2]
mov edx, dword [esp + 0x24]
lea ecx, [edi + ecx*2]
mov dword [ebx + 0xb0], edx
cmp word [ecx], 0x71
mov dword [esp + 0x158], ecx
je 0x4c57b3
mov ecx, dword [ebx + 0xc]
mov edx, dword [esp + 0x34]
mov dword [ecx + esi*4], edx
mov ecx, dword [ebx + 0xc]
mov edx, dword [esp + 0x1c]
mov dword [ecx + esi*4 + 4], edx
mov ecx, dword [ebx + 0x10]
sub ecx, dword [esp + 0x28]
mov edx, dword [ebx + 0xc]
mov esi, dword [esp + 0x30]
mov dword [edx + ecx*4], esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp eax, 0xfffffc1c
jne 0x4c7e86
movzx edx, word [edi]
mov ecx, edi
cmp edx, 0x7b
je 0x4c5f37
cmp edx, 0x71
jne 0x4c5f2e
jmp 0x4c5f20
movzx edx, word [ecx + 2]
cmp word [ecx + edx*2], 0x71
lea ecx, [ecx + edx*2]
je 0x4c5f20
movzx edx, word [ecx + 2]
neg edx
lea ecx, [ecx + edx*2]
cmp dword [ebx + 0xb8], ecx
jne 0x4c7e86
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov edx, dword [esp + 0x168]
mov dword [ebx + 0x9c], 2
mov ecx, dword [esp + 0x16c]
inc ecx
push ecx
mov ecx, dword [esp + 0x164]
push edx
mov edx, dword [esp + 0x164]
push ebx
push ecx
push edx
push eax
push ebp
call fcn.004c00a0
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov ecx, dword [esp + 0x15c]
cmp ebp, ecx
jne 0x4c5ff5
cmp edx, 0x99
je 0x4c5ff5
mov eax, dword [esp + 0x164]
cmp dword [eax + 0xa8], 0
jne 0x4c5ffc
cmp dword [eax + 0x5c], 0
jne 0x4c5fe8
cmp dword [eax + 0x60], 0
je 0x4c5ffc
mov esi, dword [eax + 0x98]
mov edi, dword [eax + 0x78]
lea esi, [edi + esi*2]
cmp ecx, esi
jne 0x4c5ffc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x164]
mov esi, dword [esp + 0x160]
mov dword [eax + 0x84], ebp
mov dword [eax + 0x90], esi
mov dword [eax + 0x80], ecx
mov eax, edx
neg eax
sbb eax, eax
and eax, 0xfffffc18
inc eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, 0xffffffe6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, 0xfffffffa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0xd8]
cmp eax, ecx
je 0x4c6069
push eax
call dword [0x516384]
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov edx, dword [esp + 0x40]
mov dword [ebx + 0xa8], edx
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0xd8]
cmp eax, ecx
je 0x4c609d
push eax
call dword [0x516384]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x164]
mov edx, dword [esp + 0x160]
mov ecx, dword [esp + 0x15c]
mov dword [eax + 0x84], ebp
mov dword [eax + 0x90], edx
mov dword [eax + 0x80], ecx
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov edx, dword [esp + 0x15c]
mov dword [ebx + 0x84], ebp
mov dword [ebx + 0x80], edx
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov dword [ebx + 0x84], ebp
mov dword [ebx + 0x90], esi
mov eax, 0xfffffc1b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x15c]
inc eax
push eax
push ecx
push ebx
push esi
push edx
push edi
jmp 0x4c61cc
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x15c]
mov dword [ebx + 0x9c], 2
mov eax, dword [esp + 0x16c]
inc eax
push eax
push ecx
push ebx
push esi
push edx
push edi
push ebp
call fcn.004c00a0
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x15c]
inc eax
push eax
mov eax, dword [esp + 0x15c]
push ecx
push ebx
push esi
push edx
add eax, 4
push eax
jmp 0x4c61cc
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x15c]
inc ecx
push ecx
mov ecx, dword [esp + 0x15c]
push edx
push ebx
push esi
push eax
add ecx, 4
push ecx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
mov dword [ebx + 0xb8], edi
mov eax, 0xfffffc1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [ebx + 0x8c], ecx
je case.0x4c018e.151
cmp ebp, dword [ebx + 0x88]
jbe case.0x4c018e.151
mov eax, 1
mov dword [ebx + 0x64], eax
cmp dword [ebx + 0x8c], eax
jle case.0x4c018e.151
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [eax + 0x8c], ecx
je case.0x4c018e.151
cmp ebp, dword [eax + 0x88]
jbe case.0x4c018e.151
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jle case.0x4c018e.151
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [ecx + 0x8c], 0
je case.0x4c018e.151
cmp ebp, dword [ecx + 0x88]
jbe case.0x4c018e.151
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x8c], eax
jle case.0x4c018e.151
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [edx + 0x8c], 0
je case.0x4c018e.151
cmp ebp, dword [edx + 0x88]
jbe case.0x4c018e.151
mov eax, 1
mov dword [edx + 0x64], eax
cmp dword [edx + 0x8c], eax
jle case.0x4c018e.151
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, 0xfffffff2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je case.0x4c018e.151
cmp ebp, dword [eax + 0x7c]
jb case.0x4c018e.151
cmp ebp, dword [eax + 0x88]
jbe case.0x4c018e.151
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jle case.0x4c018e.151
lea eax, [ecx - 0xd]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [edi + 0x8c], 0
je case.0x4c018e.151
cmp ebp, dword [edi + 0x7c]
jb case.0x4c018e.151
cmp ebp, dword [edi + 0x88]
jbe case.0x4c018e.151
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x8c], eax
jle case.0x4c018e.151
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov dword [esp + 0x1c], ebp
cmp edi, eax
jge 0x4c6414
mov edi, dword [esp + 0x164]
lea esp, [esp]
mov eax, dword [esp + 0x18]
push eax
push esi
mov edx, edi
mov eax, ebx
mov ecx, ebp
call fcn.004bfef0
add esp, 8
test eax, eax
js 0x4c63d4
lea ebp, [ebp + eax*2]
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0x14]
jl 0x4c63a0
jmp 0x4c640a
cmp dword [edi + 0x8c], 0
je 0x4c640a
cmp ebp, dword [edi + 0x7c]
jb 0x4c640a
cmp ebp, dword [edi + 0x88]
jbe 0x4c640a
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x8c], eax
jg 0x4c621f
cmp ebp, dword [esp + 0x1c]
jb 0x4c6464
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x160]
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x164]
inc ecx
push ecx
mov ecx, dword [esp + 0x160]
push edx
push eax
push edi
push ecx
push esi
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
mov edx, ebx
neg edx
lea ebp, [ebp + edx*2]
cmp ebp, dword [esp + 0x1c]
jae 0x4c6422
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [esi + 0x8c], 0
je case.0x4c018e.151
cmp ebp, dword [esi + 0x7c]
jb case.0x4c018e.151
cmp ebp, dword [esi + 0x88]
jbe case.0x4c018e.151
mov eax, 1
mov dword [esi + 0x64], eax
cmp dword [esi + 0x8c], eax
jle case.0x4c018e.151
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je case.0x4c018e.151
cmp ebp, dword [eax + 0x88]
jbe case.0x4c018e.151
mov dword [eax + 0x64], 1
cmp dword [eax + 0x8c], 1
jle case.0x4c018e.151
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x24]
shr eax, 3
mov al, byte [eax + ecx]
test al, dl
je case.0x4c018e.151
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x164]
inc ecx
push ecx
mov ecx, dword [esp + 0x160]
push edx
mov edx, dword [esp + 0x160]
push eax
push ebx
push ecx
push edx
push ebp
inc esi
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c2357
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov dword [esp + 0x1c], ebp
mov edx, esi
cmp esi, edi
jge 0x4c6645
mov eax, dword [esp + 0x164]
mov ecx, dword [eax + 0x7c]
mov dword [esp + 0x18], ecx
jmp 0x4c6597
mov eax, dword [esp + 0x164]
mov esi, 1
cmp ebp, dword [esp + 0x18]
jae 0x4c661d
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x4c65dc
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov esi, 2
cmp eax, 0xff
jbe 0x4c65ed
cmp dword [esp + 0x14], 0x6a
jmp 0x4c6605
mov ecx, eax
and ecx, 7
mov ebx, 1
shl ebx, cl
mov ecx, dword [esp + 0x24]
shr eax, 3
mov al, byte [eax + ecx]
test al, bl
je 0x4c6645
inc edx
lea ebp, [ebp + esi*2]
cmp edx, edi
jl 0x4c6590
jmp 0x4c6645
cmp dword [eax + 0x8c], 0
je 0x4c6645
cmp ebp, dword [eax + 0x88]
jbe 0x4c6645
mov dword [eax + 0x64], esi
cmp dword [eax + 0x8c], esi
jg 0x4c621f
mov ecx, dword [esp + 0x16c]
mov ebx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
mov esi, dword [esp + 0x160]
mov edi, dword [esp + 0x15c]
mov eax, dword [esp + 0x158]
inc ecx
push ecx
push ebx
push edx
push esi
push edi
push eax
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
mov ecx, ebp
sub ebp, 2
cmp ecx, dword [esp + 0x1c]
je case.0x4c018e.151
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4c66af
sub ebp, 2
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x158]
inc edx
push edx
push ebx
push eax
push esi
push edi
push ecx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c6687
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je case.0x4c018e.151
cmp ebp, dword [eax + 0x88]
jbe case.0x4c018e.151
mov dword [eax + 0x64], 1
cmp dword [eax + 0x8c], 1
jmp 0x4c6255
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x28], esi
cmp esi, edi
jge 0x4c67d5
mov edx, dword [esp + 0x164]
mov eax, dword [edx + 0x7c]
mov dword [esp + 0x18], eax
mov esi, 1
cmp ebp, dword [esp + 0x18]
jae 0x4c67a6
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x4c6779
movzx edx, word [ebp + 2]
and eax, 0x3ff
and edx, 0x3ff
shl eax, 0xa
or eax, edx
add eax, 0x10000
mov esi, 2
push 1
push eax
mov eax, dword [esp + 0x2c]
call fcn.004c9590
add esp, 8
test eax, eax
je 0x4c67d5
mov eax, dword [esp + 0x28]
inc eax
lea ebp, [ebp + esi*2]
mov dword [esp + 0x28], eax
cmp eax, edi
jl 0x4c6734
jmp 0x4c67d5
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je 0x4c67d5
cmp ebp, dword [eax + 0x88]
jbe 0x4c67d5
mov dword [eax + 0x64], esi
cmp dword [eax + 0x8c], esi
jg 0x4c621f
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
mov esi, dword [esp + 0x160]
mov edi, dword [esp + 0x15c]
inc eax
push eax
push ecx
push edx
push esi
push edi
push ebx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
mov eax, ebp
sub ebp, 2
cmp eax, dword [esp + 0x1c]
je case.0x4c018e.151
mov cx, word [ebp]
mov edx, 0xfc00
and cx, dx
mov eax, 0xdc00
cmp cx, ax
jne 0x4c6838
sub ebp, 2
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x164]
inc ecx
push ecx
push edx
push eax
push esi
push edi
push ebx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c6810
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [ecx + 0x8c], 0
je case.0x4c018e.151
cmp ebp, dword [ecx + 0x7c]
jb case.0x4c018e.151
cmp ebp, dword [ecx + 0x88]
jbe case.0x4c018e.151
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x8c], 1
jmp 0x4c6255
cmp dword [edi + 0x8c], ecx
je case.0x4c018e.151
cmp ebp, dword [edi + 0x88]
jbe case.0x4c018e.151
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x8c], eax
jmp 0x4c6255
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je case.0x4c018e.151
cmp ebp, dword [eax + 0x7c]
jb case.0x4c018e.151
jmp 0x4c623b
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x164]
inc ecx
push ecx
mov ecx, dword [esp + 0x164]
push edx
mov edx, dword [esp + 0x164]
push eax
mov eax, dword [esp + 0x164]
push ecx
push edx
push eax
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
cmp edi, dword [esp + 0x14]
jge case.0x4c018e.151
mov ecx, dword [esp + 0x164]
mov edi, dword [ecx + 0x7c]
mov eax, dword [esp + 0x24]
add eax, eax
mov edx, edi
sub edx, eax
cmp ebp, edx
ja 0x4c69cd
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
add eax, eax
mov esi, ebp
cmp eax, 4
jb 0x4c6988
jmp 0x4c6970
mov edx, dword [esi]
cmp edx, dword [ecx]
jne 0x4c69cd
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x4c6970
test eax, eax
je 0x4c69c0
mov dl, byte [ecx]
cmp dl, byte [esi]
jne 0x4c69cd
cmp eax, 1
jbe 0x4c69c0
mov dl, byte [ecx + 1]
cmp dl, byte [esi + 1]
jne 0x4c69cd
cmp eax, 2
jbe 0x4c69c0
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x4c69cd
mov eax, dword [esp + 0x24]
lea ebp, [ebp + eax*2]
jmp 0x4c6a52
cmp dword [esp + 0x18], 0
jle 0x4c6aa8
mov edx, dword [esp + 0x18]
add edx, edx
sub edi, edx
cmp ebp, edi
ja 0x4c6aa8
mov eax, dword [esp + 0x18]
add eax, eax
lea ecx, [esp + 0x5c]
mov esi, ebp
cmp eax, 4
jb 0x4c6a18
lea ecx, [ecx]
mov edi, dword [esi]
cmp edi, dword [ecx]
jne 0x4c6aa8
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x4c6a00
test eax, eax
je 0x4c6a50
mov bl, byte [ecx]
cmp bl, byte [esi]
jne 0x4c6aa8
cmp eax, 1
jbe 0x4c6a50
mov bl, byte [ecx + 1]
cmp bl, byte [esi + 1]
jne 0x4c6aa8
cmp eax, 2
jbe 0x4c6a50
mov cl, byte [ecx + 2]
cmp cl, byte [esi + 2]
jne 0x4c6aa8
add ebp, edx
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
mov edi, dword [esp + 0x28]
inc edx
push edx
mov edx, dword [esp + 0x164]
push eax
mov eax, dword [esp + 0x164]
push ecx
mov ecx, dword [esp + 0x164]
push edx
push eax
push ecx
inc edi
push ebp
mov dword [esp + 0x44], edi
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c6930
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov ecx, dword [esp + 0x164]
cmp dword [ecx + 0x8c], 0
je case.0x4c018e.151
cmp ebp, dword [ecx + 0x7c]
jb case.0x4c018e.151
cmp ebp, dword [ecx + 0x88]
jbe case.0x4c018e.151
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x8c], eax
jmp 0x4c6255
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je case.0x4c018e.151
cmp ebp, dword [eax + 0x88]
jbe case.0x4c018e.151
mov ecx, dword [esp + 0x164]
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x8c], eax
jmp 0x4c6255
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
inc edx
push edx
mov edx, dword [esp + 0x160]
push eax
mov eax, dword [esp + 0x160]
push ecx
mov ebx, edi
mov edi, dword [esp + 0x16c]
push edi
push edx
push eax
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
cmp ebx, dword [esp + 0x14]
jge case.0x4c018e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c6ee1
movzx eax, word [ebp]
cmp esi, eax
je 0x4c6b8e
cmp dword [esp + 0x28], eax
jne case.0x4c018e.151
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x164]
inc ecx
push ecx
mov ecx, dword [esp + 0x160]
push edx
mov edx, dword [esp + 0x160]
push eax
push edi
push ecx
push edx
add ebp, 2
push ebp
inc ebx
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c6b62
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [edx + 0x8c], 0
je case.0x4c018e.151
cmp ebp, dword [edx + 0x88]
jbe case.0x4c018e.151
mov eax, 1
mov dword [edx + 0x64], eax
cmp dword [edx + 0x8c], eax
jmp 0x4c6255
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
inc eax
push eax
mov eax, dword [esp + 0x160]
push ecx
mov ecx, dword [esp + 0x160]
push edx
mov ebx, edi
mov edi, dword [esp + 0x16c]
push edi
push eax
push ecx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
cmp ebx, dword [esp + 0x14]
jge case.0x4c018e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c6ee1
movzx edx, word [ebp]
add ebp, 2
cmp esi, edx
jne case.0x4c018e.151
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
inc eax
push eax
mov eax, dword [esp + 0x160]
push ecx
mov ecx, dword [esp + 0x160]
push edx
push edi
push eax
push ecx
push ebp
inc ebx
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c6c44
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ebx, dword [esp + 0x160]
mov edi, dword [esp + 0x158]
inc edx
push edx
mov edx, dword [esp + 0x160]
push eax
mov esi, ecx
mov ecx, dword [esp + 0x16c]
push ecx
push ebx
push edx
push edi
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
cmp esi, dword [esp + 0x14]
jge case.0x4c018e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c6ee1
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c6d45
movzx edx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edx, 0x3ff
or eax, edx
add eax, 0x10000
add ebp, 2
cmp dword [esp + 0x24], eax
je case.0x4c018e.151
cmp dword [esp + 0x28], eax
je case.0x4c018e.151
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
inc eax
push eax
mov eax, dword [esp + 0x160]
push ecx
push edx
push ebx
push eax
push edi
push ebp
inc esi
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c6cf4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ebx, dword [esp + 0x160]
mov edi, dword [esp + 0x158]
inc edx
push edx
mov edx, dword [esp + 0x160]
push eax
mov esi, ecx
mov ecx, dword [esp + 0x16c]
push ecx
push ebx
push edx
push edi
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
lea ecx, [ecx]
cmp esi, dword [esp + 0x14]
jge case.0x4c018e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c6ee1
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c6e31
movzx edx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edx, 0x3ff
or eax, edx
add eax, 0x10000
add ebp, 2
cmp dword [esp + 0x24], eax
je case.0x4c018e.151
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
inc eax
push eax
mov eax, dword [esp + 0x160]
push ecx
push edx
push ebx
push eax
push edi
push ebp
inc esi
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c6de0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [esi + 0x8c], 0
je case.0x4c018e.151
cmp ebp, dword [esi + 0x88]
jbe case.0x4c018e.151
mov eax, 1
mov dword [esi + 0x64], eax
cmp dword [esi + 0x8c], eax
jmp 0x4c6255
mov ecx, dword [esp + 0x164]
cmp dword [ecx + 0x8c], 0
je case.0x4c018e.151
cmp ebp, dword [ecx + 0x88]
jbe case.0x4c018e.151
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x8c], eax
jmp 0x4c6255
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
jmp 0x4c6235
cmp dword [esi + 0x8c], 0
je case.0x4c018e.151
cmp ebp, dword [esi + 0x88]
jbe case.0x4c018e.151
mov dword [esi + 0x64], 1
cmp dword [esi + 0x8c], 1
jmp 0x4c6255
test eax, eax
js 0x4c78f5
cmp eax, 8
ja case.default.0x4c1d6b
jmp dword [eax*4 + 0x4c8194]
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
mov edi, dword [esp + 0x158]
inc edx
push edx
mov edx, dword [esp + 0x160]
push eax
push ecx
mov esi, ebx
mov ebx, dword [esp + 0x16c]
push ebx
push edx
push edi
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
cmp esi, dword [esp + 0x14]
jge case.0x4c018e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c6ee1
movzx eax, word [ebp]
and eax, 0xfc00
add ebp, 2
cmp eax, 0xd800
jne 0x4c6fa5
add ebp, 2
cmp dword [esp + 0x2c], 0
jne case.0x4c018e.151
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
inc eax
push eax
mov eax, dword [esp + 0x160]
push ecx
push edx
push ebx
push eax
push edi
push ebp
inc esi
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c6f75
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x164]
mov esi, dword [esp + 0x158]
inc ecx
push ecx
mov ecx, dword [esp + 0x160]
push edx
push eax
mov edi, ebx
mov ebx, dword [esp + 0x16c]
push ebx
push ecx
push esi
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
cmp edi, dword [esp + 0x14]
jge case.0x4c018e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c6ee1
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4c7081
movzx ecx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and ecx, 0x3ff
or eax, ecx
add eax, 0x10000
add ebp, 2
mov edx, eax
shr edx, 7
movzx ecx, byte [edx + 0x4f7490]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx edx, word [ecx*2 + 0x4f9690]
movzx eax, byte [edx*8 + 0x4f63b1]
cmp eax, 9
je 0x4c70bc
cmp eax, 5
je 0x4c70bc
cmp eax, 8
je 0x4c70bc
xor eax, eax
jmp 0x4c70c1
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4c018e.151
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
inc eax
push eax
mov eax, dword [esp + 0x160]
push ecx
push edx
push ebx
push eax
push esi
push ebp
inc edi
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c7030
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x164]
mov edi, dword [esp + 0x158]
inc ecx
push ecx
mov ecx, dword [esp + 0x160]
push edx
push eax
mov esi, ebx
mov ebx, dword [esp + 0x16c]
push ebx
push ecx
push edi
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
nop
cmp esi, dword [esp + 0x14]
jge case.0x4c018e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c6ee1
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4c71a1
movzx ecx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and ecx, 0x3ff
or eax, ecx
add eax, 0x10000
add ebp, 2
mov edx, eax
shr edx, 7
movzx ecx, byte [edx + 0x4f7490]
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx edx, word [ecx*2 + 0x4f9690]
movzx eax, byte [edx*8 + 0x4f63b1]
mov edx, dword [esp + 0x38]
xor ecx, ecx
cmp dword [eax*4 + 0x4f5c08], edx
sete cl
cmp ecx, dword [esp + 0x2c]
je case.0x4c018e.151
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
inc eax
push eax
mov eax, dword [esp + 0x160]
push ecx
push edx
push ebx
push eax
push edi
push ebp
inc esi
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c7150
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x164]
mov edi, dword [esp + 0x158]
inc ecx
push ecx
mov ecx, dword [esp + 0x160]
push edx
push eax
mov esi, ebx
mov ebx, dword [esp + 0x16c]
push ebx
push ecx
push edi
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
cmp esi, dword [esp + 0x14]
jge case.0x4c018e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c6ee1
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4c72b4
movzx ecx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and ecx, 0x3ff
or eax, ecx
add eax, 0x10000
add ebp, 2
mov edx, eax
shr edx, 7
movzx ecx, byte [edx + 0x4f7490]
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx edx, word [ecx*2 + 0x4f9690]
movzx eax, byte [edx*8 + 0x4f63b1]
xor ecx, ecx
cmp eax, dword [esp + 0x38]
sete cl
cmp ecx, dword [esp + 0x2c]
je case.0x4c018e.151
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
inc edx
push edx
mov edx, dword [esp + 0x160]
push eax
push ecx
push ebx
push edx
push edi
push ebp
inc esi
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c7263
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
mov edi, dword [esp + 0x158]
inc eax
push eax
mov eax, dword [esp + 0x160]
push ecx
push edx
mov esi, ebx
mov ebx, dword [esp + 0x16c]
push ebx
push eax
push edi
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
nop
cmp esi, dword [esp + 0x14]
jge case.0x4c018e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c6ee1
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c73c1
movzx edx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edx, 0x3ff
or eax, edx
add eax, 0x10000
add ebp, 2
mov ecx, eax
shr ecx, 7
movzx edx, byte [ecx + 0x4f7490]
shl edx, 7
and eax, 0x7f
add edx, eax
movzx eax, word [edx*2 + 0x4f9690]
movzx ecx, byte [eax*8 + 0x4f63b0]
xor edx, edx
cmp ecx, dword [esp + 0x38]
sete dl
cmp edx, dword [esp + 0x2c]
je case.0x4c018e.151
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
inc eax
push eax
mov eax, dword [esp + 0x160]
push ecx
push edx
push ebx
push eax
push edi
push ebp
inc esi
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c7370
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x164]
mov esi, dword [esp + 0x158]
inc ecx
push ecx
mov ecx, dword [esp + 0x160]
push edx
push eax
mov edi, ebx
mov ebx, dword [esp + 0x16c]
push ebx
push ecx
push esi
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
lea esp, [esp]
cmp edi, dword [esp + 0x14]
jge case.0x4c018e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c6ee1
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4c74d1
movzx ecx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and ecx, 0x3ff
or eax, ecx
add eax, 0x10000
add ebp, 2
mov edx, eax
shr edx, 7
movzx ecx, byte [edx + 0x4f7490]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx edx, word [ecx*2 + 0x4f9690]
movzx eax, byte [edx*8 + 0x4f63b1]
mov eax, dword [eax*4 + 0x4f5c08]
cmp eax, 1
je 0x4c750a
cmp eax, 3
je 0x4c750a
xor eax, eax
jmp 0x4c750f
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4c018e.151
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x164]
inc ecx
push ecx
mov ecx, dword [esp + 0x160]
push edx
push eax
push ebx
push ecx
push esi
push ebp
inc edi
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c7480
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
mov esi, dword [esp + 0x160]
inc edx
push edx
mov edx, dword [esp + 0x160]
push eax
push ecx
push esi
push edx
mov edi, ebx
mov ebx, dword [esp + 0x16c]
push ebx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
lea ecx, [ecx]
cmp edi, dword [esp + 0x14]
jge case.0x4c018e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c6ee1
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c75f1
movzx edx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edx, 0x3ff
or eax, edx
add eax, 0x10000
add ebp, 2
mov ecx, eax
shr ecx, 7
movzx edx, byte [ecx + 0x4f7490]
shl edx, 7
mov ecx, eax
and ecx, 0x7f
add edx, ecx
movzx edx, word [edx*2 + 0x4f9690]
movzx ecx, byte [edx*8 + 0x4f63b1]
cmp dword [ecx*4 + 0x4f5c08], 6
je 0x4c7641
cmp eax, 9
je 0x4c7641
cmp eax, 0xa
je 0x4c7641
cmp eax, 0xc
je 0x4c7641
cmp eax, 0xd
je 0x4c7641
xor eax, eax
jmp 0x4c7646
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4c018e.151
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
inc edx
push edx
mov edx, dword [esp + 0x160]
push eax
push ecx
push esi
push edx
push ebx
push ebp
inc edi
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c75a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
mov esi, dword [esp + 0x160]
inc eax
push eax
mov eax, dword [esp + 0x160]
push ecx
push edx
push esi
push eax
mov edi, ebx
mov ebx, dword [esp + 0x16c]
push ebx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
cmp edi, dword [esp + 0x14]
jge case.0x4c018e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c6ee1
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c7725
movzx edx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edx, 0x3ff
or eax, edx
add eax, 0x10000
add ebp, 2
mov ecx, eax
shr ecx, 7
movzx edx, byte [ecx + 0x4f7490]
shl edx, 7
mov ecx, eax
and ecx, 0x7f
add edx, ecx
movzx edx, word [edx*2 + 0x4f9690]
movzx ecx, byte [edx*8 + 0x4f63b1]
cmp dword [ecx*4 + 0x4f5c08], 6
je 0x4c777e
cmp eax, 9
je 0x4c777e
cmp eax, 0xa
je 0x4c777e
cmp eax, 0xb
je 0x4c777e
cmp eax, 0xc
je 0x4c777e
cmp eax, 0xd
je 0x4c777e
xor eax, eax
jmp 0x4c7783
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4c018e.151
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
inc edx
push edx
mov edx, dword [esp + 0x160]
push eax
push ecx
push esi
push edx
push ebx
push ebp
inc edi
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c76d4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
mov esi, dword [esp + 0x158]
inc eax
push eax
mov eax, dword [esp + 0x160]
push ecx
push edx
mov edi, ebx
mov ebx, dword [esp + 0x16c]
push ebx
push eax
push esi
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
cmp edi, dword [esp + 0x14]
jge case.0x4c018e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c6ee1
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c7862
movzx edx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edx, 0x3ff
or eax, edx
add eax, 0x10000
add ebp, 2
mov ecx, eax
shr ecx, 7
movzx edx, byte [ecx + 0x4f7490]
shl edx, 7
mov ecx, eax
and ecx, 0x7f
add edx, ecx
movzx edx, word [edx*2 + 0x4f9690]
movzx ecx, byte [edx*8 + 0x4f63b1]
mov ecx, dword [ecx*4 + 0x4f5c08]
cmp ecx, 1
je 0x4c78a6
cmp ecx, 3
je 0x4c78a6
cmp eax, 0x5f
je 0x4c78a6
xor eax, eax
jmp 0x4c78ab
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4c018e.151
mov edx, dword [esp + 0x16c]
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x164]
inc edx
push edx
mov edx, dword [esp + 0x160]
push eax
push ecx
push ebx
push edx
push esi
push ebp
inc edi
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c7811
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
inc eax
cmp dword [esp + 0x18], 0x16
push eax
mov edi, ebx
push ecx
jne 0x4c7a89
mov edx, dword [esp + 0x16c]
mov esi, dword [esp + 0x168]
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x160]
push edx
push esi
push eax
push ecx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
mov eax, dword [esp + 0x164]
cmp edi, dword [esp + 0x14]
jge case.0x4c018e.151
mov edx, dword [eax + 0x7c]
cmp ebp, edx
jae 0x4c6ee1
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c7997
movzx ecx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and ecx, 0x3ff
or eax, ecx
add eax, 0x10000
add ebp, 2
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x4f7490]
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4f9690]
movzx ecx, byte [eax*8 + 0x4f63b1]
cmp dword [ecx*4 + 0x4f5c08], 2
je case.0x4c018e.151
cmp ebp, edx
jae 0x4c7a42
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
mov ecx, 1
cmp ebx, 0xd800
jne 0x4c7a0c
movzx ecx, word [ebp + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
mov ecx, 2
mov ebx, eax
shr ebx, 7
movzx ebx, byte [ebx + 0x4f7490]
and eax, 0x7f
shl ebx, 7
add ebx, eax
movzx eax, word [ebx*2 + 0x4f9690]
movzx eax, byte [eax*8 + 0x4f63b1]
cmp dword [eax*4 + 0x4f5c08], 2
jne 0x4c7a42
lea ebp, [ebp + ecx*2]
cmp ebp, edx
jb 0x4c79d1
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x164]
inc ecx
push ecx
mov ecx, dword [esp + 0x160]
push edx
mov edx, dword [esp + 0x160]
push eax
push esi
push ecx
push edx
push ebp
inc edi
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c7944
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov esi, dword [esp + 0x16c]
mov ebx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
mov eax, dword [esp + 0x160]
push esi
push ebx
push edx
push eax
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
jne 0x4c7e86
cmp edi, dword [esp + 0x14]
jge case.0x4c018e.151
cmp ebp, dword [esi + 0x7c]
jae 0x4c6e7b
cmp dword [esp + 0x18], 0xc
jne 0x4c7b41
mov eax, dword [esi + 0x18]
test eax, eax
je 0x4c7b11
mov ecx, dword [esp + 0x164]
mov edx, dword [ecx + 0x7c]
push 1
lea esi, [ecx + 0x1c]
push eax
mov ecx, ebp
call fcn.004c9390
add esp, 8
test eax, eax
jne case.0x4c018e.151
mov esi, dword [esp + 0x164]
jmp 0x4c7b41
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x7c]
lea ecx, [eax + eax]
sub edx, ecx
cmp ebp, edx
ja 0x4c7b41
mov cx, word [ebp]
cmp cx, word [esi + 0x2c]
jne 0x4c7b41
cmp eax, 1
je case.0x4c018e.151
mov dx, word [ebp + 2]
cmp dx, word [esi + 0x2e]
je case.0x4c018e.151
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c7b78
movzx edx, word [ebp]
and eax, 0x3ff
shl eax, 0xa
and edx, 0x3ff
or eax, edx
add eax, 0x10000
add ebp, 2
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffffa
cmp ecx, 0xf
ja case.default.0x4c1d6b
jmp dword [ecx*4 + 0x4c81b8]
cmp eax, 0xd
ja 0x4c7bcd
je 0x4c7bb1
cmp eax, 0xa
je case.0x4c7b88.12
jbe case.0x4c018e.151
cmp eax, 0xc
jmp 0x4c7be4
cmp ebp, dword [esi + 0x7c]
jae case.0x4c7b88.12
cmp word [ebp], 0xa
jne case.0x4c7b88.12
add ebp, 2
jmp case.0x4c7b88.12
cmp eax, 0x85
je 0x4c7bea
cmp eax, 0x2027
jbe case.0x4c018e.151
cmp eax, 0x2029
ja case.0x4c018e.151
cmp dword [esi + 0x68], 0
jne case.0x4c018e.151
jmp case.0x4c7b88.12
cmp eax, 0x180e
ja 0x4c7c32
je case.0x4c018e.151
cmp eax, 0xa0
ja 0x4c7c28
je case.0x4c018e.151
cmp eax, 9
je case.0x4c018e.151
cmp eax, 0x20
jmp 0x4c7e03
cmp eax, 0x1680
jmp 0x4c7e03
cmp eax, 0x205f
ja 0x4c7c5f
je case.0x4c018e.151
cmp eax, 0x2000
jb case.0x4c7b88.12
cmp eax, 0x200a
jbe case.0x4c018e.151
cmp eax, 0x202f
jmp 0x4c7e03
cmp eax, 0x3000
jmp 0x4c7e03
cmp eax, 0x180e
ja 0x4c7cae
je case.0x4c7b88.12
cmp eax, 0xa0
ja 0x4c7c9e
je case.0x4c7b88.12
cmp eax, 9
je case.0x4c7b88.12
cmp eax, 0x20
jne case.0x4c018e.151
jmp case.0x4c7b88.12
cmp eax, 0x1680
jne case.0x4c018e.151
jmp case.0x4c7b88.12
cmp eax, 0x205f
ja 0x4c7ce1
je case.0x4c7b88.12
cmp eax, 0x2000
jb case.0x4c018e.151
cmp eax, 0x200a
jbe case.0x4c7b88.12
cmp eax, 0x202f
jne case.0x4c018e.151
jmp case.0x4c7b88.12
cmp eax, 0x3000
jne case.0x4c018e.151
jmp case.0x4c7b88.12
cmp eax, 0x85
ja 0x4c7d15
je case.0x4c018e.151
cmp eax, 0xa
jb case.0x4c7b88.12
cmp eax, 0xd
jbe case.0x4c018e.151
jmp case.0x4c7b88.12
cmp eax, 0x2028
jb case.0x4c7b88.12
cmp eax, 0x2029
jbe case.0x4c018e.151
jmp case.0x4c7b88.12
cmp eax, 0x85
ja 0x4c7d54
je case.0x4c7b88.12
cmp eax, 0xa
jb case.0x4c018e.151
cmp eax, 0xd
ja case.0x4c018e.151
jmp case.0x4c7b88.12
cmp eax, 0x2028
jb case.0x4c018e.151
cmp eax, 0x2029
ja case.0x4c018e.151
jmp case.0x4c7b88.12
cmp eax, 0x100
jae case.0x4c7b88.12
mov ecx, dword [esi + 0x3c]
test byte [eax + ecx], 4
jne case.0x4c018e.151
jmp case.0x4c7b88.12
cmp eax, 0x100
jae case.0x4c018e.151
mov edx, dword [esi + 0x3c]
test byte [eax + edx], 4
jmp 0x4c7e03
cmp eax, 0x100
jae case.0x4c7b88.12
mov ecx, dword [esi + 0x3c]
test byte [eax + ecx], 1
jne case.0x4c018e.151
jmp case.0x4c7b88.12
cmp eax, 0x100
jae case.0x4c018e.151
mov edx, dword [esi + 0x3c]
test byte [eax + edx], 1
jmp 0x4c7e03
cmp eax, 0x100
jae case.0x4c7b88.12
mov ecx, dword [esi + 0x3c]
test byte [eax + ecx], 0x10
jne case.0x4c018e.151
jmp case.0x4c7b88.12
cmp eax, 0x100
jae case.0x4c018e.151
mov edx, dword [esi + 0x3c]
test byte [eax + edx], 0x10
je case.0x4c018e.151
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x15c]
inc eax
push eax
mov eax, dword [esp + 0x15c]
push ecx
push esi
push ebx
push edx
push eax
push ebp
inc edi
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c7aba
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
inc eax
push eax
push ecx
push edx
push edi
push esi
push ebx
push ebp
call fcn.004c00a0
add esp, 0x1c
test eax, eax
je 0x4c4bf6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, 0xfffffffb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret