Function at 0x4bb390
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 0x4bb3f0
cmp dword [esp + 0x16c], eax
jne 0x4bb3d0
push 1
push eax
push eax
push eax
push eax
push eax
lea eax, [esp + 0x184]
push eax
call fcn.004bb390
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 0x4c0d3e
mov ebp, dword [esp + 0x154]
jmp 0x4bb415
xor eax, eax
inc ecx
mov dword [ebx], ecx
mov ecx, dword [esp + 0x16c]
cmp ecx, dword [ebx + 8]
jae 0x4c0d50
cmp dword [ebx + 0x9c], 2
jne 0x4bb451
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.0x4bb47e.98
movzx edi, byte [edx + 0x4c32cc]
jmp dword [edi*4 + 0x4c3184]
mov ebx, dword [esp + 0x164]
cmp dword [ebx + 0x70], ecx
je 0x4c100b
movzx edx, byte [edx + 0x4f10c0]
movzx eax, word [esi + 2]
add edx, eax
lea ecx, [esi + edx*2]
mov dword [esp + 0x158], ecx
jmp 0x4bb451
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.004bb390
add esp, 0x1c
cmp eax, 1
je 0x4bb5c5
cmp eax, 0xfffffc20
jne 0x4bb52e
movzx ecx, word [esi + 2]
lea ecx, [esi + ecx*2]
cmp dword [ebx + 0x80], ecx
jae 0x4c3176
cmp word [esi], 0x71
je 0x4bb536
cmp word [ecx], 0x71
jmp 0x4bb530
test eax, eax
jne 0x4c3176
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 0x4bb4d0
mov esi, eax
movzx eax, word [esi]
cmp eax, 0x7c
je 0x4bb570
cmp eax, 0x71
jne case.0x4bb47e.151
jmp 0x4bb570
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 0x4bb570
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 0x4bb5b6
cmp ebp, dword [esp + 0x20]
jne 0x4c09bd
add esi, 4
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov edi, dword [ebx + 0x80]
mov dword [esp + 0x15c], edi
jmp 0x4bb55a
mov dword [esp + 0x24], ecx
jmp 0x4bc0d9
cmp word [esi + 4], 0x70
movzx edi, word [esi + 2]
mov ebx, dword [esp + 0x164]
jne 0x4bb6d4
mov ecx, dword [0x516e8c]
test ecx, ecx
je 0x4bb6ca
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.0x4bb47e.151
js 0x4c3176
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 0x4bb8da
cmp ecx, 0x8a
je 0x4bb8da
cmp ecx, 0x87
je 0x4bb76b
cmp ecx, 0x88
je 0x4bb76b
cmp ecx, 0x8b
jne 0x4bb717
movzx eax, word [esi + 2]
lea eax, [esi + eax*2]
jmp 0x4bba18
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.004bb390
add esp, 0x1c
cmp eax, 1
je 0x4c0960
test eax, eax
je 0x4bb75f
cmp eax, 0xfffffc20
jne 0x4c3176
mov edx, dword [esp + 0x14]
lea eax, [esi + edi*2]
jmp 0x4bba18
movzx eax, word [esi + 6]
add eax, eax
cmp eax, dword [esp + 0x160]
jge 0x4bb787
mov edi, dword [ebx + 0xc]
cmp dword [edi + eax*4], 0
jge 0x4bb8c5
mov dword [esp + 0x20], 0
cmp ecx, 0x88
jne 0x4bb88f
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 0x4bb7c2
lea ecx, [ecx]
movzx edx, word [esi]
cmp edx, eax
je 0x4bb7c2
mov edx, dword [ebx + 0x24]
inc edi
lea esi, [esi + edx*2]
cmp edi, ecx
jl 0x4bb7b0
cmp edi, ecx
jge 0x4bb88f
mov eax, dword [esp + 0x164]
mov eax, dword [eax + 0x28]
mov ebx, esi
mov dword [esp + 0x30], eax
cmp esi, eax
jbe 0x4bb833
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.004c45d0
test eax, eax
jne 0x4bb833
movzx eax, word [ebx]
add eax, eax
cmp eax, dword [esp + 0x160]
jge 0x4bb825
mov edx, dword [esp + 0x164]
mov ecx, dword [edx + 0xc]
cmp dword [ecx + eax*4], 0
jge 0x4bb8b4
mov dword [esp + 0x20], 0
cmp ebx, dword [esp + 0x30]
ja 0x4bb7f0
inc edi
cmp edi, dword [esp + 0x18]
jge 0x4bb88f
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.004c45d0
test eax, eax
jne 0x4bb88f
movzx eax, word [esi]
add eax, eax
cmp eax, dword [esp + 0x160]
jge 0x4bb880
mov ecx, dword [esp + 0x164]
mov edx, dword [ecx + 0xc]
cmp dword [edx + eax*4], 0
jge 0x4bb8b8
inc edi
mov dword [esp + 0x20], 0
cmp edi, dword [esp + 0x18]
jl 0x4bb850
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 0x4bba0d
mov ebx, edx
jmp 0x4bb8ba
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 0x4bba0d
cmp dword [ebx + 0xa8], 0
jne 0x4bb8ef
movzx ecx, word [esi + 2]
lea eax, [esi + ecx*2]
jmp 0x4bba18
movzx edx, word [esi + 6]
cmp edx, 0xffff
je 0x4bba31
mov eax, dword [ebx + 0xa8]
mov eax, dword [eax + 4]
mov dword [esp + 0x30], eax
cmp edx, eax
je 0x4bba31
mov dword [esp + 0x20], 0
cmp ecx, 0x8a
jne 0x4bb9e4
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 0x4bb952
nop
movzx edi, word [esi]
cmp edi, edx
je 0x4bb952
mov edi, dword [ecx + 0x24]
inc ebx
lea esi, [esi + edi*2]
cmp ebx, eax
jl 0x4bb940
cmp ebx, eax
jge 0x4bb9e4
mov eax, dword [ecx + 0x28]
mov edi, esi
mov dword [esp + 0x34], eax
cmp esi, eax
jbe 0x4bb99f
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.004c45d0
test eax, eax
jne 0x4bb99f
movzx ecx, word [edi]
cmp ecx, dword [esp + 0x30]
sete al
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4bba39
cmp edi, dword [esp + 0x34]
ja 0x4bb970
inc ebx
cmp ebx, dword [esp + 0x18]
jge 0x4bb9e4
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.004c45d0
test eax, eax
jne 0x4bb9e4
movzx ecx, word [esi]
cmp ecx, dword [esp + 0x30]
sete al
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4bba39
inc ebx
cmp ebx, dword [esp + 0x18]
jl 0x4bb9b9
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 0x4c09a2
cmp word [eax], 0x71
je 0x4c09a2
add eax, 4
mov dword [esp + 0x158], eax
jmp 0x4bb451
mov dword [esp + 0x20], 1
mov eax, 2
jmp 0x4bb9ef
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 0x4bba74
add dword [esp + 0x158], 4
mov dword [ecx + 0x40], 1
jmp 0x4bb451
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 0x4bbaa3
add eax, 2
mov dword [esp + 0x160], eax
add dword [esp + 0x158], 4
jmp 0x4bb451
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0xb0]
mov eax, 1
mov dword [esp + 0x24], edx
cmp dword [esi + 0x9c], eax
jne 0x4bbada
mov dword [esp + 0x20], eax
mov dword [esi + 0x9c], ecx
jmp 0x4bbade
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.004bb390
add esp, 0x1c
cmp eax, 1
je 0x4bbb54
cmp eax, 0xfffffc19
je 0x4bbb54
test eax, eax
je 0x4bbb2d
cmp eax, 0xfffffc20
jne 0x4c3176
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 0x4bbaf0
jmp 0x4bbb61
mov edx, dword [esi + 0x80]
mov dword [esp + 0x15c], edx
mov eax, dword [esp + 0x158]
cmp word [eax], 0x72
je case.0x4bb47e.151
cmp dword [esp + 0x20], 0
jne 0x4c13c1
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 0x4bbb80
mov edx, dword [esi + 0x90]
add dword [esp + 0x158], 4
mov dword [esp + 0x160], edx
jmp 0x4bb451
mov esi, dword [esp + 0x164]
mov eax, dword [esi + 0xb0]
mov dword [esp + 0x24], eax
mov eax, 1
cmp dword [esi + 0x9c], eax
jne 0x4bbbe0
mov dword [esp + 0x20], eax
mov dword [esi + 0x9c], ecx
jmp 0x4bbbe4
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.004bb390
mov ecx, dword [esp + 0x40]
add esp, 0x1c
mov dword [esi + 0xb0], ecx
cmp eax, 1
je case.0x4bb47e.151
cmp eax, 0xfffffc19
je case.0x4bb47e.151
cmp eax, 0xfffffc1e
je 0x4bbc70
cmp eax, 0xfffffc1d
je 0x4bbc70
cmp eax, 0xfffffc1a
je 0x4bbc70
test eax, eax
je 0x4bbc56
cmp eax, 0xfffffc20
jne 0x4c3176
movzx edx, word [edi + 2]
cmp word [edi + edx*2], 0x71
lea eax, [edi + edx*2]
mov dword [esp + 0x158], eax
jne 0x4bbc8c
jmp 0x4bbbeb
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 0x4bbc70
cmp dword [esp + 0x20], 0
jne 0x4c13c1
add eax, 4
mov dword [esp + 0x158], eax
jmp 0x4bb451
movzx eax, word [esi + 2]
mov edx, dword [esp + 0x164]
cmp eax, ecx
jle 0x4bbce1
mov ecx, dword [edx + 0x78]
sub ebp, 2
dec eax
cmp ebp, ecx
jb case.0x4bb47e.151
mov di, word [ebp]
mov ebx, 0xfc00
and di, bx
mov ebx, 0xdc00
cmp di, bx
jne 0x4bbcdd
sub ebp, 2
test eax, eax
jg 0x4bbcb8
cmp ebp, dword [edx + 0x88]
jae 0x4bbcef
mov dword [edx + 0x88], ebp
add esi, 4
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov esi, dword [0x516e8c]
mov edi, dword [esp + 0x158]
test esi, esi
je 0x4bbdd4
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.0x4bb47e.151
js 0x4c3176
add edi, 0xc
mov dword [esp + 0x158], edi
jmp 0x4bb451
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 0x4bbe03
xor ecx, ecx
jmp 0x4bbe07
movzx ecx, word [esi + 4]
mov eax, dword [ebx + 0xa8]
test eax, eax
je 0x4bbe25
cmp ecx, dword [eax + 4]
jne 0x4bbe1f
cmp ebp, dword [eax + 0x10]
je 0x4c131c
mov eax, dword [eax]
test eax, eax
jne 0x4bbe11
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 0x4bbe62
lea eax, [esp + 0xd8]
mov dword [esp + 0x48], eax
jmp 0x4bbe83
lea eax, [ecx*4]
push eax
call dword [0x5113b0]
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
je 0x4c132c
mov ecx, dword [esp + 0x4c]
mov edx, dword [ebx + 0xc]
add ecx, ecx
add ecx, ecx
push ecx
push edx
push eax
call fcn.004cd6c0
mov eax, 0x82
add esp, 0xc
cmp word [esi], ax
sbb eax, eax
inc eax
mov dword [esp + 0x20], eax
test eax, eax
je 0x4bbeb2
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 + 0x4f10c0]
push ecx
lea ecx, [esi + eax*2]
push ecx
push ebp
call fcn.004bb390
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.004cd6c0
mov eax, dword [esp + 0x4c]
add esp, 0xc
mov dword [ebx + 0xa8], eax
cmp edi, 1
je 0x4bbf56
cmp edi, 0xfffffc19
je 0x4bbf56
test edi, edi
je 0x4bbf31
cmp edi, 0xfffffc20
jne 0x4c133c
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 0x4c1366
mov eax, dword [esp + 0x20]
jmp 0x4bbea4
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0xd8]
cmp eax, ecx
je 0x4bbf6f
push eax
call dword [0x5113b4]
add esp, 4
mov edx, dword [ebx + 0x80]
mov ebp, dword [ebx + 0x84]
mov dword [esp + 0x15c], edx
jmp 0x4bb451
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.0x4bb47e.113
jmp 0x4bb451
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
jmp 0x4bc000
movzx ecx, word [esi + 2]
cmp word [esi + ecx*2], 0x71
lea esi, [esi + ecx*2]
je 0x4bc000
add esi, 4
mov dword [esp + 0x158], esi
jmp 0x4bb451
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 0x4bc030
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
mov dword [esp + 0x158], esi
jmp 0x4bb451
lea eax, [esi + 2]
jmp 0x4bc090
movzx edx, word [eax + 2]
cmp word [eax + edx*2], 0x71
lea eax, [eax + edx*2]
je 0x4bc090
add eax, 4
mov dword [esp + 0x158], eax
jmp 0x4bb451
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 0x4bc0d9
cmp eax, 0x85
jne 0x4bc28b
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 0x4bc283
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 0x4bc15f
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 + 0x4f10c0]
push ecx
lea ecx, [edi + eax*2]
push ecx
push ebp
call fcn.004bb390
add esp, 0x1c
cmp eax, 0xfffffc1b
jne 0x4bc1d6
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 0x4bc130
cmp eax, 0xfffffc20
jne 0x4bc1fc
movzx ecx, word [edi + 2]
lea ecx, [edi + ecx*2]
cmp dword [ebx + 0x80], ecx
jae 0x4c3176
cmp word [edi], 0x71
je 0x4bc204
cmp word [ecx], 0x71
jmp 0x4bc1fe
test eax, eax
jne 0x4c3176
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 0x4bc130
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x4bc25a
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 0x4bc269
test edx, edx
je case.0x4bb47e.151
add dword [esp + 0x158], 4
jmp 0x4bb451
mov ebx, dword [esp + 0x164]
mov dword [esp + 0x24], ecx
jmp 0x4bc292
xor ecx, ecx
mov dword [esp + 0x24], ecx
jmp 0x4bc292
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 0x4bc2ca
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 + 0x4f10c0]
push edi
push ebx
push ecx
lea ecx, [esi + eax*2]
push ecx
push ebp
call fcn.004bb390
add esp, 0x1c
cmp eax, 0xfffffc1b
jne 0x4bc32a
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 0x4bc2b6
cmp eax, 0xfffffc20
jne 0x4bc350
movzx ecx, word [esi + 2]
lea ecx, [esi + ecx*2]
cmp dword [edi + 0x80], ecx
jae 0x4c3176
cmp word [esi], 0x71
je 0x4bc358
cmp word [ecx], 0x71
jmp 0x4bc352
test eax, eax
jne 0x4c3176
movzx edx, word [esi + 2]
cmp word [esi + edx*2], 0x71
lea esi, [esi + edx*2]
je 0x4bc2b6
cmp dword [esp + 0x18], 0
jne 0x4bc37c
cmp dword [esp + 0x24], 0
je case.0x4bb47e.151
add esi, 4
mov dword [esp + 0x158], esi
jmp 0x4bb451
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 0x4bc3bc
cmp eax, 0x7b
je 0x4bc3bc
mov dword [esp + 0x20], 0
jmp 0x4bc3d3
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 0x4bc3e1
cmp eax, 0x7a
jbe 0x4c139a
cmp eax, 0x7c
je 0x4c139a
cmp eax, 0x7f
je 0x4bc411
mov edx, 0x84
cmp ax, dx
je 0x4bc411
mov edx, 0x80
cmp ax, dx
je 0x4bc411
mov edx, 0x85
cmp ax, dx
jne 0x4bc4af
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 0x4bc43b
mov esi, dword [ebx + 0xa8]
cmp dword [esi + 4], eax
je 0x4c13d1
mov esi, dword [esp + 0x160]
mov dword [ebx + 0x94], eax
cmp edx, dword [ebx + 0x14]
jl 0x4bc459
mov dword [ebx + 0x40], 1
jmp 0x4bc4bd
cmp edx, esi
jle 0x4bc47a
mov eax, dword [ebx + 0xc]
lea edi, [eax + esi*4]
lea ecx, [eax + edx*4]
cmp edi, ecx
jae 0x4bc476
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 0x4bc4bd
lea esi, [edx + 2]
mov dword [esp + 0x160], esi
jmp 0x4bc4bd
mov esi, dword [esp + 0x160]
mov ebx, dword [esp + 0x164]
cmp word [ecx], 0x72
je 0x4bc4cd
cmp ebp, dword [esp + 0x20]
jne 0x4c0c54
cmp word [edi], 0x7b
je 0x4c1496
add ecx, 4
mov dword [esp + 0x158], ecx
jmp 0x4bb451
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x44], ecx
je 0x4bc504
cmp ebp, dword [eax + 0x78]
je case.0x4bb47e.151
jmp 0x4bc504
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x78]
jne case.0x4bb47e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x44], ecx
je 0x4bc531
cmp ebp, dword [eax + 0x78]
je case.0x4bb47e.151
mov edx, dword [eax + 0x78]
cmp ebp, edx
je 0x4bc5b0
cmp ebp, dword [eax + 0x7c]
je case.0x4bb47e.151
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x4bc579
cmp ebp, edx
jbe case.0x4bb47e.151
push 1
push ecx
lea esi, [eax + 0x1c]
mov ecx, ebp
call fcn.004c4740
add esp, 8
test eax, eax
je case.0x4bb47e.151
add dword [esp + 0x158], 2
jmp 0x4bb451
mov esi, dword [eax + 0x1c]
mov ecx, dword [eax + 0x78]
lea edx, [esi + esi]
add ecx, edx
cmp ebp, ecx
jb case.0x4bb47e.151
mov ecx, ebp
sub ecx, edx
mov dx, word [ecx]
cmp dx, word [eax + 0x2c]
jne case.0x4bb47e.151
cmp esi, 1
je 0x4bc5b0
mov cx, word [ecx + 2]
cmp cx, word [eax + 0x2e]
jne case.0x4bb47e.151
add dword [esp + 0x158], 2
jmp 0x4bb451
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.0x4bb47e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4bb451
add esi, 2
mov dword [esp + 0x15c], ebp
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4bc688
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x4bc645
mov edx, dword [eax + 0x7c]
push 1
push ecx
lea esi, [eax + 0x1c]
mov ecx, ebp
call fcn.004c4680
add esp, 8
test eax, eax
je case.0x4bb47e.151
mov esi, dword [esp + 0x158]
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov ecx, dword [eax + 0x1c]
mov edi, dword [eax + 0x7c]
lea edx, [ecx + ecx]
sub edi, edx
cmp ebp, edi
ja case.0x4bb47e.151
mov dx, word [ebp]
cmp dx, word [eax + 0x2c]
jne case.0x4bb47e.151
cmp ecx, 1
je 0x4bc6b5
mov cx, word [ebp + 2]
cmp cx, word [eax + 0x2e]
jne case.0x4bb47e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4bb451
cmp dword [eax + 0x48], ecx
jne case.0x4bb47e.151
cmp dword [eax + 0x8c], ecx
je 0x4bc6b5
cmp ebp, dword [eax + 0x88]
jbe 0x4bc6b5
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jg 0x4c150f
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov ebx, dword [esp + 0x164]
cmp dword [ebx + 0x48], ecx
jne case.0x4bb47e.151
cmp dword [ebx + 0x58], ecx
je 0x4bc725
jmp 0x4bc6e2
mov ebx, dword [esp + 0x164]
cmp ebp, dword [ebx + 0x7c]
jb case.0x4bb47e.151
cmp dword [ebx + 0x8c], ecx
je 0x4bc70f
cmp ebp, dword [ebx + 0x88]
jbe 0x4bc70f
mov eax, 1
mov dword [ebx + 0x64], eax
cmp dword [ebx + 0x8c], eax
jg 0x4c150f
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov ebx, dword [esp + 0x164]
cmp ebp, dword [ebx + 0x7c]
jae 0x4bc796
mov eax, dword [ebx + 0x18]
lea esi, [ebx + 0x1c]
cmp eax, ecx
je 0x4bc752
mov edx, dword [ebx + 0x7c]
push 1
push eax
mov ecx, ebp
call fcn.004c4680
add esp, 8
test eax, eax
je case.0x4bb47e.151
jmp 0x4bc785
mov eax, dword [esi]
mov ecx, dword [ebx + 0x7c]
lea edx, [eax + eax]
sub ecx, edx
cmp ebp, ecx
ja case.0x4bb47e.151
mov dx, word [ebp]
cmp dx, word [ebx + 0x2c]
jne case.0x4bb47e.151
cmp eax, 1
je 0x4bc785
mov ax, word [ebp + 2]
cmp ax, word [ebx + 0x2e]
jne case.0x4bb47e.151
mov ecx, dword [esi]
mov edx, dword [ebx + 0x7c]
add ecx, ecx
sub edx, ecx
cmp ebp, edx
jne case.0x4bb47e.151
cmp dword [ebx + 0x8c], 0
je 0x4bc7bb
cmp ebp, dword [ebx + 0x88]
jbe 0x4bc7bb
mov eax, 1
mov dword [ebx + 0x64], eax
cmp dword [ebx + 0x8c], eax
jg 0x4c150f
add dword [esp + 0x158], 2
jmp 0x4bb451
mov edx, dword [esp + 0x164]
cmp ebp, dword [edx + 0x78]
je 0x4bc894
mov ax, word [ebp - 2]
lea ecx, [ebp - 2]
mov edi, 0xfc00
and ax, di
mov edi, 0xdc00
cmp ax, di
jne 0x4bc7f4
sub ecx, 2
cmp ecx, dword [edx + 0x88]
jae 0x4bc802
mov dword [edx + 0x88], ecx
movzx eax, word [ecx]
mov edi, eax
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4bc82e
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 0x4bc87d
cmp eax, 0x5f
jne 0x4bc841
lea ecx, [eax - 0x5e]
jmp 0x4bc896
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x4f29e8]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4f4be8]
movzx ecx, byte [eax*8 + 0x4f1909]
mov eax, dword [ecx*4 + 0x4f1160]
cmp eax, 1
je 0x4bc876
cmp eax, 3
jne 0x4bc894
mov ecx, 1
jmp 0x4bc896
cmp eax, 0x100
jae 0x4bc894
mov ecx, dword [edx + 0x3c]
test byte [eax + ecx], 0x10
je 0x4bc894
mov ecx, 1
jmp 0x4bc896
xor ecx, ecx
cmp ebp, dword [edx + 0x7c]
jb 0x4bc8e5
cmp dword [edx + 0x8c], 0
je 0x4bc8c0
cmp ebp, dword [edx + 0x88]
jbe 0x4bc8c0
mov eax, 1
mov dword [edx + 0x64], eax
cmp dword [edx + 0x8c], eax
jg 0x4c150f
xor eax, eax
mov dx, word [esi]
add esi, 2
mov dword [esp + 0x158], esi
cmp dx, 5
jne 0x4bc989
xor edx, edx
cmp eax, ecx
sete dl
jmp 0x4bc990
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4bc912
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 0x4bc967
cmp eax, 0x5f
jne 0x4bc924
mov eax, 1
jmp 0x4bc8c2
mov edx, eax
shr edx, 7
movzx edx, byte [edx + 0x4f29e8]
and eax, 0x7f
shl edx, 7
add edx, eax
movzx eax, word [edx*2 + 0x4f4be8]
movzx edx, byte [eax*8 + 0x4f1909]
mov eax, dword [edx*4 + 0x4f1160]
cmp eax, 1
je 0x4bc95d
cmp eax, 3
jne 0x4bc8c0
mov eax, 1
jmp 0x4bc8c2
cmp eax, 0x100
jae 0x4bc8c0
mov edx, dword [edx + 0x3c]
test byte [eax + edx], 0x10
je 0x4bc8c0
mov eax, 1
jmp 0x4bc8c2
xor edx, edx
cmp eax, ecx
setne dl
mov eax, edx
test eax, eax
je 0x4bb451
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 0x4bc9e4
cmp ebp, dword [ebx + 0x7c]
jae 0x4bca1d
mov edx, dword [ebx + 0x7c]
push 1
lea esi, [ebx + 0x1c]
push eax
mov ecx, ebp
call fcn.004c4680
add esp, 8
test eax, eax
jne case.0x4bb47e.151
mov esi, dword [esp + 0x158]
xor ecx, ecx
jmp 0x4bca1d
mov eax, dword [ebx + 0x1c]
mov edi, dword [ebx + 0x7c]
lea edx, [eax + eax]
sub edi, edx
cmp ebp, edi
ja 0x4bca1d
mov dx, word [ebp]
cmp dx, word [ebx + 0x2c]
jne 0x4bca1d
cmp eax, 1
je case.0x4bb47e.151
mov ax, word [ebp + 2]
cmp ax, word [ebx + 0x2e]
je case.0x4bb47e.151
jmp 0x4bca1d
mov ebx, dword [esp + 0x164]
mov eax, dword [ebx + 0x7c]
cmp ebp, eax
jae 0x4c14e3
add ebp, 2
cmp ebp, eax
jae 0x4bca48
mov cx, word [ebp]
mov edx, 0xfc00
and cx, dx
mov eax, 0xdc00
cmp cx, ax
jne 0x4bca48
add ebp, 2
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c151f
add ebp, 2
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4c155b
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4bcabc
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 0x4bcad0
mov ecx, dword [ecx + 0x3c]
test byte [eax + ecx], 4
jne case.0x4bb47e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4c155b
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4bcb22
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.0x4bb47e.151
mov ecx, dword [ecx + 0x3c]
test byte [eax + ecx], 4
je case.0x4bb47e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4c155b
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4bcb8c
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 0x4bcba0
mov ecx, dword [ecx + 0x3c]
test byte [eax + ecx], 1
jne case.0x4bb47e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4c155b
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4bcbf2
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.0x4bb47e.151
mov ecx, dword [ecx + 0x3c]
test byte [eax + ecx], 1
je case.0x4bb47e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4c155b
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4bcc5c
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 0x4bcc70
mov ecx, dword [ecx + 0x3c]
test byte [eax + ecx], 0x10
jne case.0x4bb47e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4c155b
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4bccc2
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.0x4bb47e.151
mov ecx, dword [ecx + 0x3c]
test byte [eax + ecx], 0x10
je case.0x4bb47e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov edx, dword [esp + 0x164]
mov ecx, dword [edx + 0x7c]
cmp ebp, ecx
jae 0x4c1598
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4bcd2e
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 0x4bcd62
je 0x4bcd45
cmp eax, 0xa
je 0x4bcd89
jbe case.0x4bb47e.151
cmp eax, 0xc
jmp 0x4bcd79
cmp ebp, ecx
jae 0x4bcd89
cmp word [ebp], 0xa
jne 0x4bcd89
add ebp, 2
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4bb451
cmp eax, 0x85
je 0x4bcd7f
cmp eax, 0x2027
jbe case.0x4bb47e.151
cmp eax, 0x2029
ja case.0x4bb47e.151
cmp dword [edx + 0x68], 0
jne case.0x4bb47e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c151f
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4bcddb
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 0x4bce0a
je case.0x4bb47e.151
cmp eax, 0xa0
ja 0x4bce03
je case.0x4bb47e.151
cmp eax, 9
je case.0x4bb47e.151
cmp eax, 0x20
jmp 0x4bce35
cmp eax, 0x1680
jmp 0x4bce35
cmp eax, 0x205f
ja 0x4bce30
je case.0x4bb47e.151
cmp eax, 0x2000
jb 0x4bce3b
cmp eax, 0x200a
jbe case.0x4bb47e.151
cmp eax, 0x202f
jmp 0x4bce35
cmp eax, 0x3000
je case.0x4bb47e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c151f
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4bce8d
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 0x4bceb0
je 0x4bcedd
cmp eax, 0xa0
ja 0x4bcea9
je 0x4bcedd
cmp eax, 9
je 0x4bcedd
cmp eax, 0x20
jmp 0x4bced7
cmp eax, 0x1680
jmp 0x4bced7
cmp eax, 0x205f
ja 0x4bced2
je 0x4bcedd
cmp eax, 0x2000
jb case.0x4bb47e.151
cmp eax, 0x200a
jbe 0x4bcedd
cmp eax, 0x202f
jmp 0x4bced7
cmp eax, 0x3000
jne case.0x4bb47e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c151f
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4bcf2f
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 0x4bcf46
je case.0x4bb47e.151
cmp eax, 0xa
jb 0x4bcf58
cmp eax, 0xd
jmp 0x4bcf52
cmp eax, 0x2028
jb 0x4bcf58
cmp eax, 0x2029
jbe case.0x4bb47e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c151f
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4bcfaa
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 0x4bcfc1
je 0x4bcfd7
cmp eax, 0xa
jb case.0x4bb47e.151
cmp eax, 0xd
jmp 0x4bcfd1
cmp eax, 0x2028
jb case.0x4bb47e.151
cmp eax, 0x2029
ja case.0x4bb47e.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c151f
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4bd029
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 + 0x4f29e8]
shl ecx, 7
mov edx, eax
and edx, 0x7f
add ecx, edx
movzx edx, word [esi + 2]
movzx ecx, word [ecx*2 + 0x4f4be8]
lea ecx, [ecx*8 + 0x4f1908]
cmp edx, 8
ja case.default.0x4bd05b
jmp dword [edx*4 + 0x4c3368]
cmp dword [esp + 0x14], 0xf
jmp 0x4bd18b
mov cl, byte [ecx + 1]
cmp cl, 9
je 0x4bd17a
cmp cl, 5
je 0x4bd17a
cmp cl, 8
je 0x4bd17a
xor eax, eax
jmp 0x4bd17f
movzx edx, byte [ecx + 1]
movzx eax, word [esi + 4]
xor ecx, ecx
cmp eax, dword [edx*4 + 0x4f1160]
setne cl
xor edx, edx
cmp dword [esp + 0x14], 0x10
sete dl
cmp ecx, edx
jmp 0x4bd18b
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 0x4bd18b
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 0x4bd18b
movzx eax, byte [ecx + 1]
mov eax, dword [eax*4 + 0x4f1160]
cmp eax, 1
je 0x4bd17a
cmp eax, 3
je 0x4bd17a
xor eax, eax
jmp 0x4bd17f
movzx edx, byte [ecx + 1]
cmp dword [edx*4 + 0x4f1160], 6
je 0x4bd17a
cmp eax, 9
je 0x4bd17a
cmp eax, 0xa
je 0x4bd17a
cmp eax, 0xc
je 0x4bd17a
cmp eax, 0xd
je 0x4bd17a
xor eax, eax
jmp 0x4bd17f
movzx edx, byte [ecx + 1]
cmp dword [edx*4 + 0x4f1160], 6
je 0x4bd17a
cmp eax, 9
je 0x4bd17a
cmp eax, 0xa
je 0x4bd17a
cmp eax, 0xb
jmp 0x4bd12f
movzx edx, byte [ecx + 1]
mov ecx, dword [edx*4 + 0x4f1160]
cmp ecx, 1
je 0x4bd17a
cmp ecx, 3
je 0x4bd17a
cmp eax, 0x5f
je 0x4bd17a
xor eax, eax
jmp 0x4bd17f
mov eax, 1
xor ecx, ecx
cmp dword [esp + 0x14], 0xf
sete cl
cmp eax, ecx
je case.0x4bb47e.151
add esi, 6
mov dword [esp + 0x158], esi
jmp 0x4bb451
mov eax, dword [esp + 0x164]
mov edi, dword [eax + 0x7c]
cmp ebp, edi
jae 0x4c151f
movzx eax, word [ebp]
mov ecx, eax
mov edx, 2
and ecx, 0xfc00
add ebp, edx
cmp ecx, 0xd800
jne 0x4bd1e8
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 + 0x4f29e8]
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4f4be8]
movzx ecx, byte [eax*8 + 0x4f1909]
cmp dword [ecx*4 + 0x4f1160], edx
je case.0x4bb47e.151
cmp ebp, edi
jae 0x4bd28a
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
mov ecx, 1
cmp ebx, 0xd800
jne 0x4bd255
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 + 0x4f29e8]
and eax, 0x7f
shl ebx, 7
add ebx, eax
movzx eax, word [ebx*2 + 0x4f4be8]
movzx eax, byte [eax*8 + 0x4f1909]
cmp dword [eax*4 + 0x4f1160], edx
jne 0x4bd28a
lea ebp, [ebp + ecx*2]
cmp ebp, edi
jb 0x4bd221
add esi, edx
mov dword [esp + 0x158], esi
jmp 0x4bb451
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 0x4bd2df
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 0x4bd2df
mov ebx, dword [eax + 4]
sub ebx, ecx
jmp 0x4bd2f0
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.0x4bd30f
movzx edx, byte [edx + 0x4c3394]
jmp dword [edx*4 + 0x4c338c]
movsx edi, byte [eax + 0x5008c6]
add ecx, 2
mov dword [esp + 0x158], ecx
lea ecx, [eax - 0x62]
movsx eax, byte [eax + 0x5008ce]
and ecx, 1
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4bd378
mov dword [esp + 0x14], SysStringLen
jmp 0x4bd378
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 0x4bd36e
mov dword [esp + 0x14], SysStringLen
add ecx, 6
mov dword [esp + 0x158], ecx
test ebx, ebx
je 0x4bb451
jns 0x4bd38a
test edi, edi
je 0x4bb451
mov dword [esp + 0x28], 1
cmp edi, 1
jl 0x4bd3d2
jmp 0x4bd3a0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x164]
push ecx
push esi
mov eax, ebx
mov ecx, ebp
call fcn.004bb1e0
add esp, 8
test eax, eax
js 0x4c15e5
lea ebp, [ebp + eax*2]
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, edi
jle 0x4bd3a0
mov eax, dword [esp + 0x14]
cmp edi, eax
je 0x4bb451
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x28], edi
je 0x4c1676
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
mov edi, dword [esp + 0x164]
mov edx, dword [esp + 0x28]
cmp edx, dword [esp + 0x14]
jge case.0x4bb47e.151
mov eax, dword [esp + 0x18]
push eax
push esi
mov edx, edi
mov eax, ebx
mov ecx, ebp
call fcn.004bb1e0
add esp, 8
test eax, eax
js 0x4c1630
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.004bb390
add esp, 0x1c
test eax, eax
je 0x4bd436
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.004bb1e0
add esp, 8
test eax, eax
js 0x4c1761
lea ebp, [ebp + eax*2]
jmp 0x4bb451
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.0x4bd500
movzx edx, byte [edx + 0x4c33a4]
jmp dword [edx*4 + 0x4c339c]
movsx edi, byte [eax + 0x5008ce]
add dword [esp + 0x158], 2
movsx esi, byte [eax + 0x5008c6]
lea ecx, [eax - 0x62]
and ecx, 1
mov dword [esp + 0x1c], ecx
test edi, edi
jne 0x4bd569
mov edi, SysReAllocString
jmp 0x4bd569
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 0x4bd556
mov edi, SysReAllocString
add eax, 6
mov dword [esp + 0x158], eax
jmp 0x4bd569
mov edi, 1
mov esi, edi
mov edx, 1
cmp esi, edx
jl 0x4bd5f2
mov ecx, dword [esp + 0x164]
mov eax, dword [ecx + 0x7c]
mov dword [esp + 0x18], eax
cmp ebp, dword [esp + 0x18]
jae 0x4c17a7
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4bd5c1
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 0x4bd5cf
cmp dword [esp + 0x14], 0x6a
jmp 0x4bd5e7
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.0x4bb47e.151
inc edx
cmp edx, esi
jle 0x4bd584
cmp esi, edi
je 0x4bb451
cmp dword [esp + 0x1c], 0
je 0x4c1850
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
cmp esi, edi
jge case.0x4bb47e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c21d1
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4bd692
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 0x4c17eb
cmp dword [esp + 0x14], 0x6a
jmp 0x4c1803
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.0x4bd6d4
movzx edx, byte [edx + 0x4c33b4]
jmp dword [edx*4 + 0x4c33ac]
movsx edi, byte [eax + 0x5008ce]
movsx esi, byte [eax + 0x5008c6]
lea ecx, [eax - 0x62]
add ebx, 2
and ecx, 1
mov dword [esp + 0x158], ebx
mov dword [esp + 0x1c], ecx
test edi, edi
jne 0x4bd738
mov edi, SysReAllocString
jmp 0x4bd738
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 0x4bd725
mov edi, SysReAllocString
add ebx, 6
mov dword [esp + 0x158], ebx
jmp 0x4bd738
mov edi, 1
mov esi, edi
mov dword [esp + 0x28], 1
cmp esi, 1
jl 0x4bd7b8
mov ecx, dword [esp + 0x164]
mov edx, dword [ecx + 0x7c]
mov dword [esp + 0x18], edx
cmp ebp, dword [esp + 0x18]
jae 0x4c19d3
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4bd794
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.004c4880
add esp, 8
test eax, eax
je case.0x4bb47e.151
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, esi
jle 0x4bd757
cmp esi, edi
je 0x4bb451
cmp dword [esp + 0x1c], 0
je 0x4c1a06
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
jmp 0x4bd810
mov eax, dword [esp + 0x164]
cmp esi, edi
jge case.0x4bb47e.151
cmp ebp, dword [eax + 0x7c]
jae 0x4c21d1
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4bd85b
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.004c4880
add esp, 8
test eax, eax
je case.0x4bb47e.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.004bb390
add esp, 0x1c
test eax, eax
je 0x4bd810
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 0x4bd8e3
mov eax, 2
mov ecx, dword [esp + 0x164]
mov edx, dword [ecx + 0x7c]
sub edx, ebp
sar edx, 1
cmp eax, edx
jg 0x4c1b5c
test eax, eax
jle 0x4bb451
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.0x4bb47e.151
test eax, eax
jg 0x4bd901
jmp 0x4bb451
mov edi, dword [esp + 0x164]
cmp ebp, dword [edi + 0x7c]
jae 0x4c1b91
movzx eax, word [esi + 2]
mov ecx, eax
and ecx, 0xfc00
mov edx, 1
cmp ecx, 0xd800
jne 0x4bd96f
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 0x4bd9ac
mov edx, 0xff
cmp cx, dx
ja 0x4bd98b
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.0x4bb47e.151
add esi, 4
mov dword [esp + 0x158], esi
add ebp, 2
jmp 0x4bb451
mov edi, ecx
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4bd9dd
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 0x4bb451
mov edx, eax
shr edx, 7
movzx edx, byte [edx + 0x4f29e8]
shl edx, 7
mov esi, eax
and esi, 0x7f
add edx, esi
movzx edx, word [edx*2 + 0x4f4be8]
mov edx, dword [edx*8 + 0x4f190c]
add edx, eax
cmp ecx, edx
je 0x4bb451
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 0x4bdb0a
mov dword [esp + 0x20], 1
movzx ebx, word [esi + 2]
xor edi, edi
mov dword [esp + 0x14], ebx
cmp eax, 0x28
je 0x4bda63
mov dword [esp + 0x1c], ecx
cmp eax, 0x35
jne 0x4bda6b
mov dword [esp + 0x1c], 1
add esi, 4
mov dword [esp + 0x158], esi
jmp 0x4bdb0a
xor edi, edi
add esi, 2
mov dword [esp + 0x20], 1
mov dword [esp + 0x158], esi
jmp 0x4bdb02
mov edi, 1
add esi, 2
mov dword [esp + 0x20], edi
mov dword [esp + 0x158], esi
jmp 0x4bdb02
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 0x4bdb0a
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 + 0x500928]
mov ecx, eax
movsx eax, byte [eax + 0x500930]
and ecx, 1
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4bdb0a
mov dword [esp + 0x14], SysStringLen
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 0x4bdb53
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 0x4bdecc
cmp edx, 0x2e
jl 0x4bdbac
mov edx, esi
shr edx, 7
movzx eax, byte [edx + 0x4f29e8]
shl eax, 7
mov ecx, esi
and ecx, 0x7f
add eax, ecx
movzx edx, word [eax*2 + 0x4f4be8]
mov eax, dword [edx*8 + 0x4f190c]
add eax, esi
cmp eax, esi
je 0x4bdbac
lea ecx, [esp + 0x5c]
call fcn.004c4820
mov dword [esp + 0x18], eax
jmp 0x4bdbb4
mov dword [esp + 0x18], 0
mov dword [esp + 0x28], 1
cmp edi, 1
jl 0x4bdcd0
mov eax, dword [esp + 0x164]
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x3c], eax
sub eax, ebx
mov dword [esp + 0x34], eax
jmp 0x4bdbe4
mov eax, dword [esp + 0x34]
cmp ebp, eax
ja 0x4bdc45
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
add eax, eax
mov esi, ebp
cmp eax, 4
jb 0x4bdc14
lea ecx, [ecx]
mov edx, dword [esi]
cmp edx, dword [ecx]
jne 0x4bdc45
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x4bdc00
test eax, eax
je 0x4bdc38
mov dl, byte [ecx]
cmp dl, byte [esi]
jne 0x4bdc45
cmp eax, 1
jbe 0x4bdc38
mov dl, byte [ecx + 1]
cmp dl, byte [esi + 1]
jne 0x4bdc45
cmp eax, 2
jbe 0x4bdc38
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x4bdc45
mov eax, dword [esp + 0x24]
lea ebp, [ebp + eax*2]
jmp 0x4bdcbf
cmp dword [esp + 0x18], 0
jle 0x4c1bbc
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
add edx, edx
sub ecx, edx
cmp ebp, ecx
ja 0x4c1bbc
mov eax, dword [esp + 0x18]
add eax, eax
lea ecx, [esp + 0x5c]
mov esi, ebp
cmp eax, 4
jb 0x4bdc8d
mov ebx, dword [esi]
cmp ebx, dword [ecx]
jne 0x4c1bbc
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x4bdc75
test eax, eax
je 0x4bdcbd
mov bl, byte [ecx]
cmp bl, byte [esi]
jne 0x4c1bbc
cmp eax, 1
jbe 0x4bdcbd
mov bl, byte [ecx + 1]
cmp bl, byte [esi + 1]
jne 0x4c1bbc
cmp eax, 2
jbe 0x4bdcbd
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x4c1bbc
add ebp, edx
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, edi
jle 0x4bdbe0
cmp edi, dword [esp + 0x14]
je 0x4bb451
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x28], edi
jne 0x4c1bde
mov dword [esp + 0x1c], ebp
cmp edi, dword [esp + 0x14]
jge 0x4bde25
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 0x4bdd15
mov ecx, dword [esp + 0x34]
cmp ebp, ecx
ja 0x4bdd79
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
add eax, eax
mov esi, ebp
cmp eax, 4
jb 0x4bdd48
mov edi, edi
mov edi, dword [esi]
cmp edi, dword [ecx]
jne 0x4bdd79
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x4bdd30
test eax, eax
je 0x4bdd6c
mov bl, byte [ecx]
cmp bl, byte [esi]
jne 0x4bdd79
cmp eax, 1
jbe 0x4bdd6c
mov bl, byte [ecx + 1]
cmp bl, byte [esi + 1]
jne 0x4bdd79
cmp eax, 2
jbe 0x4bdd6c
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x4bdd79
mov eax, dword [esp + 0x24]
lea ebp, [ebp + eax*2]
jmp 0x4bdddf
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x4bddf4
lea edi, [eax + eax]
mov ecx, edx
sub ecx, edi
cmp ebp, ecx
ja 0x4bddf4
add eax, eax
lea ecx, [esp + 0x5c]
mov esi, ebp
cmp eax, 4
jb 0x4bddb9
mov ebx, dword [esi]
cmp ebx, dword [ecx]
jne 0x4bddf4
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x4bdda1
test eax, eax
je 0x4bdddd
mov bl, byte [ecx]
cmp bl, byte [esi]
jne 0x4bddf4
cmp eax, 1
jbe 0x4bdddd
mov bl, byte [ecx + 1]
cmp bl, byte [esi + 1]
jne 0x4bddf4
cmp eax, 2
jbe 0x4bdddd
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x4bddf4
add ebp, edi
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0x14]
jl 0x4bdd11
jmp 0x4bde25
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je 0x4bde25
cmp ebp, dword [eax + 0x7c]
jb 0x4bde25
cmp ebp, dword [eax + 0x88]
jbe 0x4bde25
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jg 0x4c150f
cmp dword [esp + 0x20], 0
jne 0x4bb451
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
cmp ebp, dword [esp + 0x1c]
je case.0x4bb47e.151
mov dx, word [ebp - 2]
sub ebp, 2
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4bde98
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.004bb390
add esp, 0x1c
test eax, eax
je 0x4bde72
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp edx, 0x2e
jl 0x4be043
cmp esi, 0x7f
jbe 0x4bdf07
mov ecx, esi
shr ecx, 7
movzx edx, byte [ecx + 0x4f29e8]
shl edx, 7
mov eax, esi
and eax, 0x7f
add edx, eax
movzx ecx, word [edx*2 + 0x4f4be8]
mov edx, dword [ecx*8 + 0x4f190c]
add edx, esi
mov dword [esp + 0x28], edx
jmp 0x4bdf29
cmp esi, 0xff
ja 0x4bdf23
mov edx, dword [esp + 0x164]
mov eax, dword [edx + 0x38]
movzx edx, byte [eax + esi]
mov dword [esp + 0x28], edx
jmp 0x4bdf29
mov edx, esi
mov dword [esp + 0x28], esi
mov ecx, 1
cmp edi, ecx
jl 0x4bdf5c
mov eax, dword [esp + 0x164]
mov ebx, dword [eax + 0x7c]
cmp ebp, ebx
jae 0x4c1dd4
movzx eax, word [ebp]
cmp esi, eax
je 0x4bdf54
cmp edx, eax
jne case.0x4bb47e.151
inc ecx
add ebp, 2
cmp ecx, edi
jle 0x4bdf3c
mov ebx, dword [esp + 0x14]
cmp edi, ebx
je 0x4bb451
cmp dword [esp + 0x1c], 0
jne 0x4c1e0e
mov dword [esp + 0x1c], ebp
mov eax, edi
cmp edi, ebx
jge 0x4bdfd6
mov ecx, dword [esp + 0x164]
mov edi, dword [ecx + 0x7c]
jmp 0x4bdf97
mov ecx, dword [esp + 0x164]
cmp ebp, edi
jae 0x4bdfb1
movzx ecx, word [ebp]
cmp esi, ecx
je 0x4bdfa7
cmp edx, ecx
jne 0x4bdfd6
inc eax
add ebp, 2
cmp eax, ebx
jl 0x4bdf90
jmp 0x4bdfd6
cmp dword [ecx + 0x8c], 0
je 0x4bdfd6
cmp ebp, dword [ecx + 0x88]
jbe 0x4bdfd6
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x8c], eax
jg 0x4c150f
cmp dword [esp + 0x20], 0
jne 0x4bb451
cmp ebp, dword [esp + 0x1c]
jb 0x4be036
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.004bb390
add esp, 0x1c
sub ebp, 2
test eax, eax
jne 0x4c3176
cmp ebp, dword [esp + 0x1c]
jae 0x4be000
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 0x4be072
mov ecx, dword [edx + 0x7c]
cmp ebp, ecx
jae 0x4c1ec4
movzx ebx, word [ebp]
add ebp, 2
cmp esi, ebx
jne case.0x4bb47e.151
inc eax
cmp eax, edi
jle 0x4be056
cmp edi, dword [esp + 0x14]
je 0x4bb451
cmp dword [esp + 0x1c], 0
jne 0x4c1ef0
mov ebx, ebp
mov dword [esp + 0x1c], ebx
mov eax, edi
cmp edi, dword [esp + 0x14]
jge 0x4be0dd
mov ecx, dword [edx + 0x7c]
lea esp, [esp]
cmp ebp, ecx
jae 0x4be0b8
movzx edi, word [ebp]
cmp esi, edi
jne 0x4be0dd
inc eax
add ebp, 2
cmp eax, dword [esp + 0x14]
jl 0x4be0a0
jmp 0x4be0dd
cmp dword [edx + 0x8c], 0
je 0x4be0dd
cmp ebp, dword [edx + 0x88]
jbe 0x4be0dd
mov eax, 1
mov dword [edx + 0x64], eax
cmp dword [edx + 0x8c], eax
jg 0x4c150f
cmp dword [esp + 0x20], 0
jne 0x4bb451
cmp ebp, ebx
jb 0x4be13b
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.004bb390
add esp, 0x1c
sub ebp, 2
test eax, eax
jne 0x4c3176
cmp ebp, dword [esp + 0x1c]
jae 0x4be105
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 0x4c1b91
movzx ecx, word [ebp]
mov eax, ecx
and eax, 0xfc00
add ebp, 2
cmp eax, 0xd800
jne 0x4be18a
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 0x4be1fe
cmp eax, 0x7f
jbe 0x4be1cf
mov edx, eax
shr edx, 7
movzx edx, byte [edx + 0x4f29e8]
shl edx, 7
mov esi, eax
and esi, 0x7f
add edx, esi
movzx edx, word [edx*2 + 0x4f4be8]
mov edx, dword [edx*8 + 0x4f190c]
add edx, eax
jmp 0x4be1e1
cmp eax, 0xff
ja 0x4be1df
mov edx, dword [edi + 0x38]
movzx edx, byte [edx + eax]
jmp 0x4be1e1
mov edx, eax
cmp eax, ecx
je case.0x4bb47e.151
cmp edx, ecx
jne 0x4bb451
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp eax, ecx
jne 0x4bb451
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 0x4be2d9
movzx edi, word [esi + 2]
xor ecx, ecx
mov dword [esp + 0x14], edi
cmp eax, 0x42
je 0x4be23b
mov dword [esp + 0x1c], ecx
cmp eax, 0x4f
jne 0x4be243
mov dword [esp + 0x1c], 1
add esi, 4
jmp 0x4be2d9
xor ecx, ecx
mov dword [esp + 0x20], 1
add esi, 2
jmp 0x4be2d1
mov ecx, 1
mov dword [esp + 0x20], ecx
add esi, 2
jmp 0x4be2d1
mov eax, 1
xor ecx, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], eax
add esi, 2
jmp 0x4be2d9
movzx eax, word [esi + 2]
xor ecx, ecx
mov dword [esp + 0x20], 1
mov dword [esp + 0x14], eax
add esi, 4
jmp 0x4be2d9
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 + 0x500928]
movsx eax, byte [eax + 0x500930]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4be2d9
mov dword [esp + 0x14], SysStringLen
movzx edi, word [esi]
add esi, 2
mov dword [esp + 0x24], edi
mov dword [esp + 0x158], esi
cmp edx, 0x48
jl 0x4be510
cmp edi, 0x7f
jbe 0x4be325
mov edx, edi
shr edx, 7
movzx eax, byte [edx + 0x4f29e8]
shl eax, 7
mov edx, edi
and edx, 0x7f
add eax, edx
movzx eax, word [eax*2 + 0x4f4be8]
mov esi, dword [eax*8 + 0x4f190c]
add esi, edi
mov dword [esp + 0x28], esi
jmp 0x4be347
cmp edi, 0xff
ja 0x4be341
mov edx, dword [esp + 0x164]
mov eax, dword [edx + 0x38]
movzx esi, byte [eax + edi]
mov dword [esp + 0x28], esi
jmp 0x4be347
mov esi, edi
mov dword [esp + 0x28], edi
mov edx, 1
cmp ecx, edx
jl 0x4be3b4
mov eax, dword [esp + 0x164]
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x18], eax
cmp ebp, dword [esp + 0x18]
jae 0x4c19d3
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
add ebp, 2
cmp ebx, 0xd800
jne 0x4be39f
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.0x4bb47e.151
cmp esi, eax
je case.0x4bb47e.151
inc edx
cmp edx, ecx
jle 0x4be362
mov esi, dword [esp + 0x14]
cmp ecx, esi
je 0x4bb451
cmp dword [esp + 0x1c], 0
jne 0x4c1fa0
mov dword [esp + 0x1c], ebp
cmp ecx, esi
jge 0x4be45e
mov edx, dword [esp + 0x164]
mov edi, dword [edx + 0x7c]
mov edx, 1
cmp ebp, edi
jae 0x4be437
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4be420
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 0x4be45e
cmp dword [esp + 0x28], eax
je 0x4be45e
inc ecx
lea ebp, [ebp + edx*2]
cmp ecx, esi
jl 0x4be3e1
jmp 0x4be45e
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je 0x4be45e
cmp ebp, dword [eax + 0x88]
jbe 0x4be45e
mov dword [eax + 0x64], edx
cmp dword [eax + 0x8c], edx
jg 0x4c150f
cmp dword [esp + 0x20], 0
jne 0x4bb451
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
mov ecx, ebp
sub ebp, 2
cmp ecx, dword [esp + 0x1c]
je case.0x4bb47e.151
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4be4d3
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.004bb390
add esp, 0x1c
test eax, eax
je 0x4be4ab
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x164]
mov edx, 1
cmp ecx, edx
jl 0x4be576
mov esi, dword [eax + 0x7c]
cmp ebp, esi
jae 0x4c19d3
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
add ebp, 2
cmp ebx, 0xd800
jne 0x4be562
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.0x4bb47e.151
inc edx
cmp edx, ecx
jle 0x4be527
mov eax, dword [esp + 0x164]
mov esi, dword [esp + 0x14]
cmp ecx, esi
je 0x4bb451
cmp dword [esp + 0x1c], 0
jne 0x4c2089
mov dword [esp + 0x1c], ebp
cmp ecx, esi
jge 0x4be617
mov edi, dword [eax + 0x7c]
jmp 0x4be5a7
mov eax, dword [esp + 0x164]
mov edx, 1
cmp ebp, edi
jae 0x4be5f7
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4be5e6
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 0x4be617
inc ecx
lea ebp, [ebp + edx*2]
cmp ecx, esi
jl 0x4be5a0
jmp 0x4be617
cmp dword [eax + 0x8c], 0
je 0x4be617
cmp ebp, dword [eax + 0x88]
jbe 0x4be617
mov dword [eax + 0x64], edx
cmp dword [eax + 0x8c], edx
jg 0x4c150f
cmp dword [esp + 0x20], 0
jne 0x4bb451
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
mov ecx, ebp
sub ebp, 2
cmp ecx, dword [esp + 0x1c]
je case.0x4bb47e.151
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4be68c
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.004bb390
add esp, 0x1c
test eax, eax
je 0x4be664
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 0x4be792
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 0x4be792
xor ebx, ebx
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], ebx
add esi, 2
jmp 0x4be78a
mov ebx, 1
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
add esi, 2
jmp 0x4be78a
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 0x4be792
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 0x4be792
lea eax, [edx - 0x55]
movsx ebx, byte [eax + 0x500928]
mov edx, eax
movsx eax, byte [eax + 0x500930]
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 0x4be792
mov dword [esp + 0x14], SysStringLen
movzx eax, word [esi]
add esi, 2
mov dword [esp + 0x18], eax
mov dword [esp + 0x158], esi
cmp eax, 0x10
je 0x4be7ba
cmp eax, 0xf
je 0x4be7ba
mov edi, dword [esp + 0x2c]
or eax, 0xffffffff
mov dword [esp + 0x28], eax
jmp 0x4be7e3
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 0x4be8e9
cmp eax, ecx
jl 0x4bedd3
cmp eax, 8
ja case.default.0x4bd05b
jmp dword [eax*4 + 0x4c33bc]
cmp edi, ecx
jne case.0x4bb47e.151
mov ecx, 1
cmp ebx, ecx
jl 0x4be8e9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4c216b
movzx eax, word [ebp]
and eax, 0xfc00
add ebp, 2
cmp eax, 0xd800
jne 0x4be840
add ebp, 2
inc ecx
cmp ecx, ebx
jle 0x4be822
jmp 0x4be8f0
mov ecx, 1
cmp ebx, ecx
jl 0x4be8e9
mov eax, dword [esp + 0x164]
mov edx, dword [eax + 0x7c]
cmp ebp, edx
jae 0x4c2197
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4be89c
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 + 0x4f29e8]
and eax, 0x7f
shl esi, 7
add esi, eax
movzx eax, word [esi*2 + 0x4f4be8]
movzx eax, byte [eax*8 + 0x4f1909]
cmp eax, 9
je 0x4be8d3
cmp eax, 5
je 0x4be8d3
cmp eax, 8
je 0x4be8d3
xor eax, eax
jmp 0x4be8d8
mov eax, 1
cmp eax, edi
je case.0x4bb47e.151
inc ecx
cmp ecx, ebx
jle 0x4be861
mov esi, dword [esp + 0x164]
mov edi, dword [esp + 0x14]
cmp ebx, edi
je 0x4bb451
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 0x28]
jne 0x4c2209
mov dword [esp + 0x1c], ebp
test eax, eax
js 0x4bfd3c
cmp eax, 8
ja case.default.0x4bd05b
jmp dword [eax*4 + 0x4c33e0]
mov ecx, 1
cmp ebx, ecx
jl 0x4be8e9
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
cmp ebp, edx
jae 0x4c21ca
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4be975
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 + 0x4f29e8]
and eax, 0x7f
shl esi, 7
add esi, eax
movzx eax, word [esi*2 + 0x4f4be8]
movzx eax, byte [eax*8 + 0x4f1909]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x3c], ecx
xor ecx, ecx
cmp dword [eax*4 + 0x4f1160], esi
sete cl
cmp ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
je case.0x4bb47e.151
inc ecx
cmp ecx, ebx
jle 0x4be93a
jmp 0x4be8e9
mov ecx, 1
cmp ebx, ecx
jl 0x4be8e9
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
cmp ebp, edx
jae 0x4c21ca
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4bea1b
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 + 0x4f29e8]
and eax, 0x7f
shl esi, 7
add esi, eax
movzx eax, word [esi*2 + 0x4f4be8]
movzx eax, byte [eax*8 + 0x4f1909]
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.0x4bb47e.151
inc ecx
cmp ecx, ebx
jle 0x4be9e0
jmp 0x4be8e9
mov ecx, 1
cmp ebx, ecx
jl 0x4be8e9
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
cmp ebp, edx
jae 0x4c21ca
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4beab6
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 + 0x4f29e8]
and eax, 0x7f
shl esi, 7
add esi, eax
movzx eax, word [esi*2 + 0x4f4be8]
movzx eax, byte [eax*8 + 0x4f1908]
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.0x4bb47e.151
inc ecx
cmp ecx, ebx
jle 0x4bea7b
jmp 0x4be8e9
mov ecx, 1
cmp ebx, ecx
jl 0x4be8e9
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
cmp ebp, edx
jae 0x4c2197
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4beb51
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 + 0x4f29e8]
and eax, 0x7f
shl esi, 7
add esi, eax
movzx eax, word [esi*2 + 0x4f4be8]
movzx eax, byte [eax*8 + 0x4f1909]
mov eax, dword [eax*4 + 0x4f1160]
cmp eax, 1
je 0x4beb8a
cmp eax, 3
je 0x4beb8a
xor eax, eax
jmp 0x4beb8f
mov eax, 1
cmp eax, edi
je case.0x4bb47e.151
inc ecx
cmp ecx, ebx
jle 0x4beb16
jmp 0x4be8e9
mov ecx, 1
cmp ebx, ecx
jl 0x4be8e9
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
lea edi, [ecx + 5]
cmp ebp, edx
jae 0x4c2197
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4bebfa
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 + 0x4f29e8]
shl esi, 7
mov ebx, eax
and ebx, 0x7f
add esi, ebx
movzx esi, word [esi*2 + 0x4f4be8]
movzx esi, byte [esi*8 + 0x4f1909]
cmp dword [esi*4 + 0x4f1160], edi
je 0x4bec41
cmp eax, 9
je 0x4bec41
cmp eax, 0xa
je 0x4bec41
cmp eax, 0xc
je 0x4bec41
cmp eax, 0xd
je 0x4bec41
xor eax, eax
jmp 0x4bec46
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4bb47e.151
mov ebx, dword [esp + 0x24]
inc ecx
cmp ecx, ebx
jle 0x4bebbf
jmp 0x4be8e9
mov ecx, 1
cmp ebx, ecx
jl 0x4be8e9
mov eax, dword [esp + 0x164]
mov edx, dword [eax + 0x7c]
lea edi, [ecx + 5]
cmp ebp, edx
jae 0x4c2197
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4becb7
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 + 0x4f29e8]
shl esi, 7
mov ebx, eax
and ebx, 0x7f
add esi, ebx
movzx esi, word [esi*2 + 0x4f4be8]
movzx esi, byte [esi*8 + 0x4f1909]
cmp dword [esi*4 + 0x4f1160], edi
je 0x4bed03
cmp eax, 9
je 0x4bed03
cmp eax, 0xa
je 0x4bed03
cmp eax, 0xb
je 0x4bed03
cmp eax, 0xc
je 0x4bed03
cmp eax, 0xd
je 0x4bed03
xor eax, eax
jmp 0x4bed08
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4bb47e.151
mov ebx, dword [esp + 0x24]
inc ecx
cmp ecx, ebx
jle 0x4bec7c
jmp 0x4be8e9
mov edx, 1
cmp ebx, edx
jl 0x4be8e9
mov ecx, dword [esp + 0x164]
mov edi, dword [ecx + 0x7c]
cmp ebp, edi
jae 0x4c21ca
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4bed76
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 + 0x4f29e8]
shl ecx, 7
mov esi, eax
and esi, 0x7f
add ecx, esi
movzx ecx, word [ecx*2 + 0x4f4be8]
movzx ecx, byte [ecx*8 + 0x4f1909]
mov ecx, dword [ecx*4 + 0x4f1160]
cmp ecx, 1
je 0x4bedb6
cmp ecx, 3
je 0x4bedb6
cmp eax, 0x5f
je 0x4bedb6
xor eax, eax
jmp 0x4bedbb
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4bb47e.151
inc edx
cmp edx, ebx
jle 0x4bed3b
jmp 0x4be8e9
mov eax, dword [esp + 0x18]
cmp eax, 0x16
jne 0x4beee5
lea esi, [eax - 0x15]
cmp ebx, esi
jl 0x4be8e9
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
cmp ebp, edx
jae 0x4c21ca
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4bee30
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 + 0x4f29e8]
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4f4be8]
movzx ecx, byte [eax*8 + 0x4f1909]
cmp dword [ecx*4 + 0x4f1160], 2
je case.0x4bb47e.151
cmp ebp, edx
jae 0x4beed7
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
mov ecx, 1
cmp edi, 0xd800
jne 0x4beea1
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 + 0x4f29e8]
and eax, 0x7f
shl edi, 7
add edi, eax
movzx eax, word [edi*2 + 0x4f4be8]
movzx eax, byte [eax*8 + 0x4f1909]
cmp dword [eax*4 + 0x4f1160], 2
jne 0x4beed7
lea ebp, [ebp + ecx*2]
cmp ebp, edx
jb 0x4bee6a
inc esi
cmp esi, ebx
jle 0x4bedf5
jmp 0x4be8e9
add eax, 0xfffffffa
cmp eax, 0xf
ja case.default.0x4bd05b
jmp dword [eax*4 + 0x4c3404]
mov edi, 1
cmp ebx, edi
jl 0x4be8e9
mov ecx, dword [esp + 0x164]
lea esp, [esp]
cmp ebp, dword [ecx + 0x7c]
jae 0x4c219e
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x4bef4b
mov ecx, dword [esp + 0x164]
mov edx, dword [ecx + 0x7c]
push 1
lea esi, [ecx + 0x1c]
push eax
mov ecx, ebp
call fcn.004c4680
add esp, 8
test eax, eax
jne case.0x4bb47e.151
mov ecx, dword [esp + 0x164]
jmp 0x4bef7b
mov eax, dword [ecx + 0x1c]
mov esi, dword [ecx + 0x7c]
lea edx, [eax + eax]
sub esi, edx
cmp ebp, esi
ja 0x4bef7b
mov dx, word [ebp]
cmp dx, word [ecx + 0x2c]
jne 0x4bef7b
cmp eax, 1
je case.0x4bb47e.151
mov ax, word [ebp + 2]
cmp ax, word [ecx + 0x2e]
je case.0x4bb47e.151
add ebp, 2
cmp ebp, dword [ecx + 0x7c]
jae 0x4bef9c
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov eax, 0xdc00
cmp dx, ax
jne 0x4bef9c
add ebp, 2
inc edi
cmp edi, ebx
jle 0x4bef10
jmp 0x4be8e9
mov eax, 1
cmp ebx, eax
jl 0x4be8e9
mov esi, dword [esp + 0x164]
mov ecx, dword [esi + 0x7c]
cmp ebp, ecx
jae 0x4c216b
add ebp, 2
cmp ebp, ecx
jae 0x4befe9
mov dx, word [ebp]
mov edi, 0xfc00
and dx, di
mov edi, 0xdc00
cmp dx, di
jne 0x4befe9
add ebp, 2
inc eax
cmp eax, ebx
jle 0x4befc1
jmp 0x4be8f0
mov esi, dword [esp + 0x164]
mov ecx, dword [esi + 0x7c]
lea eax, [ebx + ebx]
sub ecx, eax
cmp ebp, ecx
ja case.0x4bb47e.151
add ebp, eax
jmp 0x4be8f0
mov ecx, 1
cmp ebx, ecx
jl 0x4be8e9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4c21dd
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4bf063
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 0x4bf088
je 0x4bf078
cmp eax, 0xa
je 0x4bf0a7
add eax, 0xfffffff5
jmp 0x4bf094
cmp ebp, edx
jae 0x4bf0a7
cmp word [ebp], 0xa
jne 0x4bf0a7
add ebp, 2
jmp 0x4bf0a7
cmp eax, 0x85
je 0x4bf09d
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x4bb47e.151
cmp dword [esi + 0x68], 0
jne case.0x4bb47e.151
inc ecx
cmp ecx, ebx
jle 0x4bf028
jmp 0x4be8f0
mov ecx, 1
cmp ebx, ecx
jl 0x4be8e9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
lea esp, [esp]
cmp ebp, edx
jae 0x4c21dd
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4bf10b
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 0x4bf13d
je case.0x4bb47e.151
cmp eax, 0xa0
ja 0x4bf136
je case.0x4bb47e.151
cmp eax, 9
je case.0x4bb47e.151
cmp eax, 0x20
jmp 0x4bf168
cmp eax, 0x1680
jmp 0x4bf168
cmp eax, 0x205f
ja 0x4bf163
je case.0x4bb47e.151
cmp eax, 0x2000
jb 0x4bf16e
cmp eax, 0x200a
jbe case.0x4bb47e.151
cmp eax, 0x202f
jmp 0x4bf168
cmp eax, 0x3000
je case.0x4bb47e.151
inc ecx
cmp ecx, ebx
jle 0x4bf0d0
jmp 0x4be8f0
mov ecx, 1
cmp ebx, ecx
jl 0x4be8e9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4c21dd
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4bf1ce
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 0x4bf203
je 0x4bf230
cmp eax, 0xa0
ja 0x4bf1f9
je 0x4bf230
cmp eax, 9
je 0x4bf230
cmp eax, 0x20
jmp 0x4bf22a
cmp eax, 0x1680
jmp 0x4bf22a
cmp eax, 0x205f
ja 0x4bf225
je 0x4bf230
cmp eax, 0x2000
jb case.0x4bb47e.151
cmp eax, 0x200a
jbe 0x4bf230
cmp eax, 0x202f
jmp 0x4bf22a
cmp eax, 0x3000
jne case.0x4bb47e.151
inc ecx
cmp ecx, ebx
jle 0x4bf193
jmp 0x4be8f0
mov ecx, 1
cmp ebx, ecx
jl 0x4be8e9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4c21dd
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4bf294
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 0x4bf2ab
je case.0x4bb47e.151
cmp eax, 0xa
jb 0x4bf2bd
cmp eax, 0xd
jmp 0x4bf2b7
cmp eax, 0x2028
jb 0x4bf2bd
cmp eax, 0x2029
jbe case.0x4bb47e.151
inc ecx
cmp ecx, ebx
jle 0x4bf255
jmp 0x4be8f0
mov ecx, 1
cmp ebx, ecx
jl 0x4be8e9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
mov edi, edi
cmp ebp, edx
jae 0x4c21dd
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4bf31f
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 0x4bf330
je 0x4bf33e
add eax, 0xfffffff6
cmp eax, 3
jmp 0x4bf338
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x4bb47e.151
inc ecx
cmp ecx, ebx
jle 0x4bf2e0
jmp 0x4be8f0
mov ecx, 1
cmp ebx, ecx
jl 0x4be8e9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
nop
cmp ebp, edx
jae 0x4c216b
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4bf39f
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 0x4bf3b3
mov edi, dword [esi + 0x3c]
test byte [eax + edi], 4
jne case.0x4bb47e.151
inc ecx
cmp ecx, ebx
jle 0x4bf360
jmp 0x4be8f0
mov ecx, 1
cmp ebx, ecx
jl 0x4be8e9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4c21dd
movzx eax, word [ebp]
mov edi, 0x80
cmp ax, di
jae case.0x4bb47e.151
mov edi, dword [esi + 0x3c]
test byte [eax + edi], 4
je case.0x4bb47e.151
inc ecx
add ebp, 2
cmp ecx, ebx
jle 0x4bf3d4
jmp 0x4be8f0
mov ecx, 1
cmp ebx, ecx
jl 0x4be8e9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
nop
cmp ebp, edx
jae 0x4c216b
movzx eax, word [ebp]
mov edi, 0x80
cmp ax, di
jae 0x4bf443
mov edi, dword [esi + 0x3c]
test byte [eax + edi], 1
jne case.0x4bb47e.151
add ebp, 2
cmp ebp, edx
jae 0x4bf467
mov ax, word [ebp]
mov edi, 0xfc00
and ax, di
mov edi, 0xdc00
cmp ax, di
jne 0x4bf467
add ebp, 2
inc ecx
cmp ecx, ebx
jle 0x4bf420
jmp 0x4be8f0
mov ecx, 1
cmp ebx, ecx
jl 0x4be8e9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4c21dd
movzx eax, word [ebp]
mov edi, 0x80
cmp ax, di
jae case.0x4bb47e.151
mov edi, dword [esi + 0x3c]
test byte [eax + edi], 1
je case.0x4bb47e.151
inc ecx
add ebp, 2
cmp ecx, ebx
jle 0x4bf488
jmp 0x4be8f0
mov ecx, 1
cmp ebx, ecx
jl 0x4be8e9
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4c216b
movzx eax, word [ebp]
mov edi, 0x80
cmp ax, di
jae 0x4bf4f6
mov edi, dword [esi + 0x3c]
test byte [eax + edi], 0x10
jne case.0x4bb47e.151
add ebp, 2
cmp ebp, edx
jae 0x4bf51a
mov ax, word [ebp]
mov edi, 0xfc00
and ax, di
mov edi, 0xdc00
cmp ax, di
jne 0x4bf51a
add ebp, 2
inc ecx
cmp ecx, ebx
jle 0x4bf4d3
jmp 0x4be8f0
mov esi, dword [esp + 0x164]
mov ecx, 1
cmp ebx, ecx
jl 0x4be8f0
mov edx, dword [esi + 0x7c]
jmp 0x4bf540
cmp ebp, edx
jae 0x4c21dd
movzx eax, word [ebp]
mov edi, 0x80
cmp ax, di
jae case.0x4bb47e.151
mov edi, dword [esi + 0x3c]
test byte [eax + edi], 0x10
je case.0x4bb47e.151
inc ecx
add ebp, 2
cmp ecx, ebx
jle 0x4bf540
jmp 0x4be8f0
mov ecx, ebx
cmp ebx, edi
jge 0x4bfc8d
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
mov eax, 1
cmp ebp, edx
jae 0x4bf5cb
mov si, word [ebp]
mov edi, 0xfc00
and si, di
mov edi, 0xd800
cmp si, di
jne 0x4bf5b0
mov eax, 2
cmp dword [esp + 0x2c], 0
jne 0x4bfc8d
inc ecx
lea ebp, [ebp + eax*2]
cmp ecx, dword [esp + 0x14]
jl 0x4bf588
jmp 0x4bfc8d
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je 0x4bfc8d
mov ecx, eax
cmp ebp, dword [ecx + 0x88]
jbe 0x4bfc8d
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jmp 0x4bfc87
mov edx, ebx
cmp ebx, edi
jge 0x4bfc8d
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4bf627
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4bf823
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4bf66a
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 + 0x4f29e8]
and eax, 0x7f
shl ebx, 7
add ebx, eax
movzx eax, word [ebx*2 + 0x4f4be8]
movzx eax, byte [eax*8 + 0x4f1909]
cmp eax, 9
je 0x4bf6a1
cmp eax, 5
je 0x4bf6a1
cmp eax, 8
je 0x4bf6a1
xor eax, eax
jmp 0x4bf6a6
mov eax, 1
cmp eax, dword [esp + 0x2c]
je 0x4bfc8d
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4bf620
jmp 0x4bfc8d
mov edx, ebx
cmp ebx, edi
jge 0x4bfc8d
mov ecx, dword [esp + 0x164]
mov esi, dword [ecx + 0x7c]
mov edi, dword [esp + 0x38]
mov eax, ecx
jmp 0x4bf6e7
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4bf823
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4bf72a
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 + 0x4f29e8]
shl ebx, 7
and eax, 0x7f
add ebx, eax
movzx eax, word [ebx*2 + 0x4f4be8]
movzx eax, byte [eax*8 + 0x4f1909]
xor ebx, ebx
cmp dword [eax*4 + 0x4f1160], edi
sete bl
cmp ebx, dword [esp + 0x2c]
je 0x4bfc8d
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, dword [esp + 0x14]
jl 0x4bf6e0
jmp 0x4bfc8d
mov edx, ebx
cmp ebx, edi
jge 0x4bfc8d
mov ecx, dword [esp + 0x164]
mov esi, dword [ecx + 0x7c]
mov edi, dword [esp + 0x14]
mov ecx, 1
cmp ebp, esi
jae 0x4bf81c
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4bf7d3
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 + 0x4f29e8]
shl ebx, 7
and eax, 0x7f
add ebx, eax
movzx eax, word [ebx*2 + 0x4f4be8]
movzx eax, byte [eax*8 + 0x4f1909]
xor ebx, ebx
cmp eax, dword [esp + 0x38]
sete bl
cmp ebx, dword [esp + 0x2c]
je 0x4bfc8d
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4bf790
jmp 0x4bfc8d
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je 0x4bfc8d
cmp ebp, dword [eax + 0x88]
jbe 0x4bfc8d
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jmp 0x4bfc87
mov edx, ebx
cmp ebx, edi
jge 0x4bfc8d
mov ecx, dword [esp + 0x164]
mov esi, dword [ecx + 0x7c]
mov edi, dword [esp + 0x14]
mov ecx, 1
cmp ebp, esi
jae 0x4bf81c
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4bf8a1
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 + 0x4f29e8]
shl ebx, 7
and eax, 0x7f
add ebx, eax
movzx eax, word [ebx*2 + 0x4f4be8]
movzx eax, byte [eax*8 + 0x4f1908]
xor ebx, ebx
cmp eax, dword [esp + 0x38]
sete bl
cmp ebx, dword [esp + 0x2c]
je 0x4bfc8d
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4bf862
jmp 0x4bfc8d
mov edx, ebx
cmp ebx, edi
jge 0x4bfc8d
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, 1
jmp 0x4bf908
mov eax, dword [esp + 0x164]
mov ecx, edi
cmp ebp, esi
jae 0x4bf9a1
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4bf948
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 + 0x4f29e8]
and eax, 0x7f
shl ebx, 7
add ebx, eax
movzx eax, word [ebx*2 + 0x4f4be8]
movzx eax, byte [eax*8 + 0x4f1909]
mov eax, dword [eax*4 + 0x4f1160]
cmp eax, edi
je 0x4bf980
cmp eax, 3
je 0x4bf980
xor eax, eax
jmp 0x4bf982
mov eax, edi
cmp eax, dword [esp + 0x2c]
je 0x4bfc8d
add edx, edi
lea ebp, [ebp + ecx*2]
cmp edx, dword [esp + 0x14]
jl 0x4bf901
jmp 0x4bfc8d
cmp dword [eax + 0x8c], 0
je 0x4bfc8d
cmp ebp, dword [eax + 0x88]
jbe 0x4bfc8d
mov dword [eax + 0x64], edi
cmp dword [eax + 0x8c], edi
jmp 0x4bfc87
mov edx, ebx
cmp ebx, edi
jge 0x4bfc8d
mov ecx, dword [esp + 0x164]
mov esi, dword [ecx + 0x7c]
mov eax, ecx
jmp 0x4bf9e7
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4bf823
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4bfa2a
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 + 0x4f29e8]
shl edi, 7
mov ebx, eax
and ebx, 0x7f
add edi, ebx
movzx edi, word [edi*2 + 0x4f4be8]
movzx edi, byte [edi*8 + 0x4f1909]
cmp dword [edi*4 + 0x4f1160], 6
je 0x4bfa7e
cmp eax, 9
je 0x4bfa7e
cmp eax, 0xa
je 0x4bfa7e
cmp eax, 0xc
je 0x4bfa7e
cmp eax, 0xd
je 0x4bfa7e
xor eax, eax
jmp 0x4bfa83
mov eax, 1
cmp eax, dword [esp + 0x2c]
je 0x4bfc8d
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, dword [esp + 0x14]
jl 0x4bf9e0
jmp 0x4bfc8d
mov edx, ebx
cmp ebx, edi
jge 0x4bfc8d
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
jmp 0x4bfac7
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4bf823
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4bfb0a
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 + 0x4f29e8]
shl edi, 7
mov ebx, eax
and ebx, 0x7f
add edi, ebx
movzx edi, word [edi*2 + 0x4f4be8]
movzx edi, byte [edi*8 + 0x4f1909]
cmp dword [edi*4 + 0x4f1160], 6
je 0x4bfb6b
cmp eax, 9
je 0x4bfb6b
cmp eax, 0xa
je 0x4bfb6b
cmp eax, 0xb
je 0x4bfb6b
cmp eax, 0xc
je 0x4bfb6b
cmp eax, 0xd
je 0x4bfb6b
xor eax, eax
jmp 0x4bfb70
mov eax, 1
cmp eax, dword [esp + 0x2c]
je 0x4bfc8d
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, dword [esp + 0x14]
jl 0x4bfac0
jmp 0x4bfc8d
mov esi, ebx
cmp ebx, dword [esp + 0x14]
jge 0x4bfc8d
mov edx, dword [esp + 0x164]
mov edi, dword [edx + 0x7c]
mov eax, edx
jmp 0x4bfbb7
mov eax, dword [esp + 0x164]
mov edx, 1
cmp ebp, edi
jae 0x4bfc65
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x4bfbfa
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 + 0x4f29e8]
shl ecx, 7
mov ebx, eax
and ebx, 0x7f
add ecx, ebx
movzx ecx, word [ecx*2 + 0x4f4be8]
movzx ecx, byte [ecx*8 + 0x4f1909]
mov ecx, dword [ecx*4 + 0x4f1160]
cmp ecx, 1
je 0x4bfc42
cmp ecx, 3
je 0x4bfc42
cmp eax, 0x5f
je 0x4bfc42
xor eax, eax
jmp 0x4bfc47
mov eax, 1
cmp eax, dword [esp + 0x2c]
je 0x4bfc8d
inc esi
lea ebp, [ebp + edx*2]
cmp esi, dword [esp + 0x14]
jl 0x4bfbb0
jmp 0x4bfc8d
cmp dword [eax + 0x8c], 0
je 0x4bfc8d
cmp ebp, dword [eax + 0x88]
jbe 0x4bfc8d
mov dword [eax + 0x64], edx
cmp dword [eax + 0x8c], edx
jg 0x4c150f
cmp dword [esp + 0x20], 0
jne 0x4bb451
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
lea ebx, [ebx]
mov ecx, ebp
sub ebp, 2
cmp ecx, dword [esp + 0x1c]
je case.0x4bb47e.151
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4bfd08
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.004bb390
add esp, 0x1c
test eax, eax
je 0x4bfce0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x18]
cmp eax, 0x16
jne 0x4bff7e
mov esi, ebx
cmp ebx, dword [esp + 0x14]
jge 0x4bfe99
mov eax, dword [esp + 0x164]
mov edx, dword [eax + 0x7c]
mov ebx, 2
jmp 0x4bfd77
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, edx
jae 0x4bfe71
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4bfdb7
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 + 0x4f29e8]
and eax, 0x7f
shl edi, 7
add edi, eax
movzx eax, word [edi*2 + 0x4f4be8]
movzx eax, byte [eax*8 + 0x4f1909]
cmp dword [eax*4 + 0x4f1160], ebx
je 0x4bfe99
lea ebp, [ebp + ecx*2]
cmp ebp, edx
jae 0x4bfe61
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
mov ecx, 1
cmp edi, 0xd800
jne 0x4bfe2c
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 + 0x4f29e8]
and eax, 0x7f
shl edi, 7
add edi, eax
movzx eax, word [edi*2 + 0x4f4be8]
movzx eax, byte [eax*8 + 0x4f1909]
cmp dword [eax*4 + 0x4f1160], ebx
jne 0x4bfe61
lea ebp, [ebp + ecx*2]
cmp ebp, edx
jb 0x4bfdf4
inc esi
cmp esi, dword [esp + 0x14]
jl 0x4bfd70
jmp 0x4bfe99
cmp dword [eax + 0x8c], 0
je 0x4bfe99
cmp ebp, dword [eax + 0x88]
jbe 0x4bfe99
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jg 0x4c150f
cmp dword [esp + 0x20], 0
jne 0x4bb451
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
mov edx, ebp
mov ecx, 2
sub ebp, ecx
cmp edx, dword [esp + 0x1c]
je case.0x4bb47e.151
lea esp, [esp]
mov ax, word [ebp]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4bff18
sub ebp, ecx
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4bff49
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 + 0x4f29e8]
shl edx, 7
and eax, 0x7f
add edx, eax
movzx eax, word [edx*2 + 0x4f4be8]
movzx edx, byte [eax*8 + 0x4f1909]
cmp dword [edx*4 + 0x4f1160], ecx
jne 0x4c3139
sub ebp, ecx
jmp 0x4bff00
add eax, 0xfffffffa
cmp eax, 0xf
ja case.default.0x4bd05b
jmp dword [eax*4 + 0x4c3444]
cmp edi, 0x7fffffff
mov edi, ebx
jge 0x4c0086
cmp ebx, dword [esp + 0x14]
jge 0x4c0413
lea esp, [esp]
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4c005f
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x4bfff2
mov edx, dword [ecx + 0x7c]
push 1
lea esi, [ecx + 0x1c]
push eax
mov ecx, ebp
call fcn.004c4680
add esp, 8
test eax, eax
jne 0x4c0413
mov ecx, dword [esp + 0x164]
jmp 0x4c002a
mov eax, dword [ecx + 0x1c]
mov esi, dword [ecx + 0x7c]
lea edx, [eax + eax]
sub esi, edx
cmp ebp, esi
ja 0x4c002a
mov dx, word [ebp]
cmp dx, word [ecx + 0x2c]
jne 0x4c002a
cmp eax, 1
je 0x4c0413
mov ax, word [ebp + 2]
cmp ax, word [ecx + 0x2e]
je 0x4c0413
add ebp, 2
cmp ebp, dword [ecx + 0x7c]
jae 0x4c004f
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4c004f
add ebp, 2
inc edi
cmp edi, dword [esp + 0x14]
jl 0x4bffb0
jmp 0x4c0413
cmp dword [ecx + 0x8c], 0
je 0x4c0413
mov edx, ecx
cmp ebp, dword [edx + 0x88]
jbe 0x4c0413
mov ecx, 1
mov eax, edx
jmp 0x4c0404
cmp ebx, dword [esp + 0x14]
jge 0x4c0413
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4c005f
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x4c00ce
mov edx, dword [ecx + 0x7c]
push 1
lea esi, [ecx + 0x1c]
push eax
mov ecx, ebp
call fcn.004c4680
add esp, 8
test eax, eax
jne 0x4c0413
mov ecx, dword [esp + 0x164]
jmp 0x4c0106
mov eax, dword [ecx + 0x1c]
mov esi, dword [ecx + 0x7c]
lea edx, [eax + eax]
sub esi, edx
cmp ebp, esi
ja 0x4c0106
mov dx, word [ebp]
cmp dx, word [ecx + 0x2c]
jne 0x4c0106
cmp eax, 1
je 0x4c0413
mov ax, word [ebp + 2]
cmp ax, word [ecx + 0x2e]
je 0x4c0413
add ebp, 2
cmp ebp, dword [ecx + 0x7c]
jae 0x4c012f
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4c012f
add ebp, 2
inc edi
cmp edi, dword [esp + 0x14]
jl 0x4c0090
jmp 0x4c0413
cmp edi, 0x7fffffff
jge 0x4c01a5
mov eax, ebx
cmp ebx, edi
jge 0x4c0413
mov ecx, dword [esi + 0x7c]
cmp ebp, ecx
jae 0x4c01a8
add ebp, 2
cmp ebp, ecx
jae 0x4c0188
mov dx, word [ebp]
mov ebx, 0xfc00
and dx, bx
mov ebx, 0xdc00
cmp dx, bx
jne 0x4c0188
add ebp, 2
inc eax
cmp eax, edi
jl 0x4c0158
jmp 0x4c0413
mov ecx, dword [esi + 0x7c]
sub edi, ebx
sub ecx, ebp
mov eax, edi
sar ecx, 1
cmp eax, ecx
jbe 0x4c01d4
mov ebp, dword [esi + 0x7c]
cmp dword [esi + 0x8c], 0
je 0x4c0413
cmp ebp, dword [esi + 0x88]
jbe 0x4c0413
mov eax, 1
mov dword [esi + 0x64], eax
cmp dword [esi + 0x8c], eax
jmp 0x4c040d
lea ebp, [ebp + eax*2]
jmp 0x4c0413
mov esi, ebx
cmp ebx, dword [esp + 0x14]
jge 0x4c0413
mov ebx, dword [esp + 0x164]
mov edx, dword [ebx + 0x7c]
mov ecx, 1
cmp ebp, edx
jae 0x4c02b7
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4c0236
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 0x4c025d
add ebp, 2
cmp ebp, edx
jae 0x4c0413
cmp word [ebp], 0xa
jne 0x4c02a7
add ebp, 2
jmp 0x4c02a7
cmp eax, 0xa
je 0x4c02a3
cmp dword [ebx + 0x68], 0
jne 0x4c0413
cmp eax, 0xb
je 0x4c02a3
cmp eax, 0xc
je 0x4c02a3
cmp eax, 0x85
je 0x4c02a3
cmp eax, 0x2028
je 0x4c02a3
cmp eax, 0x2029
jne 0x4c0413
lea ebp, [ebp + ecx*2]
inc esi
cmp esi, dword [esp + 0x14]
jl 0x4c01f3
jmp 0x4c0413
cmp dword [ebx + 0x8c], 0
je 0x4c0413
cmp ebp, dword [ebx + 0x88]
jbe 0x4c0413
mov dword [ebx + 0x64], ecx
cmp dword [ebx + 0x8c], ecx
jmp 0x4c040d
mov esi, ebx
cmp ebx, dword [esp + 0x14]
jge 0x4c0413
mov edx, dword [esp + 0x164]
mov edi, dword [edx + 0x7c]
mov edx, dword [esp + 0x14]
mov ecx, 1
cmp ebp, edi
jae 0x4c03e4
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c033b
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 0x4c0378
je 0x4c03bb
cmp eax, 0xa0
ja 0x4c036e
je 0x4c03bb
cmp eax, 9
je 0x4c03bb
cmp eax, 0x20
jmp 0x4c03ae
cmp eax, 0x1680
jmp 0x4c03ae
cmp eax, 0x205f
ja 0x4c03a9
je 0x4c03bb
cmp eax, 0x2000
jb 0x4c03b4
cmp eax, 0x200a
jbe 0x4c03bb
cmp eax, 0x202f
jmp 0x4c03ae
cmp eax, 0x3000
je 0x4c03bb
xor eax, eax
jmp 0x4c03c0
mov eax, 1
xor ebx, ebx
cmp dword [esp + 0x18], 0x12
sete bl
cmp eax, ebx
je 0x4c0413
inc esi
lea ebp, [ebp + ecx*2]
cmp esi, edx
jl 0x4c02f8
jmp 0x4c0413
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je 0x4c0413
cmp ebp, dword [eax + 0x88]
jbe 0x4c0413
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jg 0x4c150f
cmp dword [esp + 0x20], 0
jne 0x4bb451
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
mov eax, dword [esp + 0x1c]
mov ecx, ebp
sub ebp, 2
cmp ecx, eax
je case.0x4bb47e.151
mov dx, word [ebp]
mov ecx, 0xfc00
and dx, cx
mov ecx, 0xdc00
cmp dx, cx
jne 0x4c048e
sub ebp, 2
cmp dword [esp + 0x18], 0x11
jne 0x4c04ba
cmp ebp, eax
jbe 0x4c04ba
cmp word [ebp], 0xa
jne 0x4c04ba
cmp word [ebp - 2], 0xd
jne 0x4c04ba
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.004bb390
add esp, 0x1c
test eax, eax
je 0x4c0460
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov esi, ebx
cmp ebx, dword [esp + 0x14]
jge 0x4c0413
mov edx, dword [esp + 0x164]
mov edi, dword [edx + 0x7c]
mov edx, dword [esp + 0x14]
mov ecx, 1
cmp ebp, edi
jae 0x4c03e4
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c054f
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 0x4c0598
je 0x4c05a2
cmp eax, 0xa
jb 0x4c0572
cmp eax, 0xd
jbe 0x4c05a2
xor eax, eax
xor ebx, ebx
cmp dword [esp + 0x18], 0x14
sete bl
cmp eax, ebx
je 0x4c0413
inc esi
lea ebp, [ebp + ecx*2]
cmp esi, edx
jl 0x4c050c
jmp 0x4c0413
add eax, 0xffffdfd8
cmp eax, 1
ja 0x4c0572
mov eax, 1
jmp 0x4c0574
mov edx, ebx
cmp ebx, edi
jge 0x4c0413
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4c05d7
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4c03eb
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c061a
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 0x4c0639
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + 0x3c]
test byte [eax + ebx], 4
jne 0x4c0413
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4c05d0
jmp 0x4c0413
mov edx, ebx
cmp ebx, edi
jge 0x4c0413
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4c0677
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4c03eb
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c06ba
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 0x4c0413
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + 0x3c]
test byte [eax + ebx], 4
je 0x4c0413
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4c0670
jmp 0x4c0413
mov edx, ebx
cmp ebx, edi
jge 0x4c0413
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4c0717
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4c03eb
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c075a
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 0x4c0779
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + 0x3c]
test byte [eax + ebx], 1
jne 0x4c0413
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4c0710
jmp 0x4c0413
mov edx, ebx
cmp ebx, edi
jge 0x4c0413
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4c07b7
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4c03eb
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c07fa
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 0x4c0413
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + 0x3c]
test byte [eax + ebx], 1
je 0x4c0413
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4c07b0
jmp 0x4c0413
mov edx, ebx
cmp ebx, edi
jge 0x4c0413
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4c0857
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4c03eb
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c089a
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 0x4c08b9
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + 0x3c]
test byte [eax + ebx], 0x10
jne 0x4c0413
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4c0850
jmp 0x4c0413
mov edx, ebx
cmp ebx, edi
jge 0x4c0413
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4c08e8
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4c03eb
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4c092b
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 0x4c0413
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + 0x3c]
test byte [eax + ebx], 0x10
je 0x4c0413
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4c08e1
jmp 0x4c0413
mov eax, dword [ebx + 0x90]
cmp eax, dword [esp + 0x160]
jle 0x4c097a
mov dword [esp + 0x160], eax
movzx edx, word [esi + 6]
cmp word [esi + edx*2 + 4], 0x71
lea eax, [esi + edx*2 + 4]
jne 0x4c099e
mov edi, edi
movzx ecx, word [eax + 2]
cmp word [eax + ecx*2], 0x71
lea eax, [eax + ecx*2]
je 0x4c0990
mov edx, dword [esp + 0x14]
add eax, 4
cmp edx, 0x86
je 0x4c1240
mov dword [esp + 0x158], eax
jmp 0x4c0d33
cmp word [esi], 0x74
jne 0x4c0a00
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
mov edx, dword [esp + 0x18]
mov dword [esp + 0x158], edx
jmp 0x4c0d33
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
add esi, 4
mov dword [esp + 0x158], esi
jmp 0x4c0d33
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 0x4c0b50
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 0x4c0ac2
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 + 0x4f10c0]
push eax
lea eax, [edi + edx*2]
push eax
push ebp
call fcn.004bb390
add esp, 0x1c
cmp eax, 0xfffffc1c
je 0x4c11b4
cmp eax, 0xfffffc20
jne 0x4c1180
movzx ecx, word [edi + 2]
lea ecx, [edi + ecx*2]
cmp dword [ebx + 0x80], ecx
jae 0x4c3176
cmp word [edi], 0x71
je 0x4c0b38
cmp word [ecx], 0x71
jne 0x4c3176
xor eax, eax
jmp 0x4c1188
mov ebx, dword [esp + 0x164]
jmp 0x4c0b50
cmp edx, 0x82
jge 0x4c0b9e
cmp edx, 0x7b
je 0x4c0b9e
cmp dword [ebx + 0x6c], 0
jne 0x4c0ba8
mov eax, dword [esp + 0x158]
movzx edx, word [eax + 2]
cmp word [eax + edx*2], 0x71
je 0x4c0ba8
movzx ecx, word [eax]
movzx edx, byte [ecx + 0x4f10c0]
lea eax, [eax + edx*2]
mov dword [esp + 0x158], eax
jmp 0x4c0d33
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 + 0x4f10c0]
push eax
lea eax, [edi + edx*2]
push eax
push ebp
call fcn.004bb390
add esp, 0x1c
cmp eax, 0xfffffc20
jne 0x4c0c25
movzx ecx, word [edi + 2]
lea ecx, [edi + ecx*2]
cmp dword [ebx + 0x80], ecx
jae 0x4c3176
cmp word [edi], 0x71
je 0x4c0c2d
cmp word [ecx], 0x71
jne 0x4c3176
jmp 0x4c0c2d
test eax, eax
jne 0x4c11e5
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.0x4bb47e.151
mov edx, dword [esp + 0x14]
jmp 0x4c0b50
movzx eax, word [ecx]
cmp eax, 0x75
je 0x4c13f4
cmp eax, 0x74
jne 0x4c0cc6
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
movzx eax, word [edi]
cmp eax, 0x7b
je 0x4c1410
mov edx, 0x82
cmp ax, dx
jae 0x4c1431
mov dword [esp + 0x158], edi
jmp 0x4c0d33
mov eax, 0x82
cmp word [edi], ax
jb 0x4c0cde
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.004bb390
add esp, 0x1c
cmp eax, 0xfffffc1c
jne 0x4c0d19
cmp dword [ebx + 0xb8], edi
jmp 0x4c0d1b
test eax, eax
jne 0x4c3176
cmp word [edi], 0x7b
je 0x4c146b
add dword [esp + 0x158], 4
mov ecx, dword [ebx]
cmp ecx, dword [ebx + 4]
jb 0x4bb413
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 + 0x4f10c0]
movzx ecx, word [eax + 2]
add edx, ecx
lea edx, [eax + edx*2]
push edx
push ebp
call fcn.004bb390
mov edi, eax
add esp, 0x1c
cmp edi, 1
je 0x4c0dd3
cmp edi, 0xfffffc19
jne 0x4c0df3
cmp dword [esi + 0xb0], 0
jne 0x4c0df3
mov dword [esi + 0xb0], ebx
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp edi, 0xfffffc1f
jne 0x4c1359
mov eax, dword [esi + 0x80]
mov ecx, ebx
call fcn.004c45d0
test eax, eax
jne 0x4c1359
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 + 0x4f10c0]
push ecx
lea ecx, [esi + eax*2]
push ecx
push ebp
call fcn.004bb390
add esp, 0x1c
test eax, eax
je 0x4c0e9c
cmp eax, 0xfffffc1d
je 0x4c0e9c
cmp eax, 0xfffffc1e
je 0x4c0e9c
cmp eax, 0xfffffc1f
je 0x4c0e9c
cmp eax, 0xfffffc20
jne 0x4c3176
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 + 0x4f10c0]
push eax
lea eax, [esi + edx*2]
push eax
push ebp
call fcn.004bb390
add esp, 0x1c
test eax, eax
je 0x4c0eff
cmp eax, 0xfffffc20
jne 0x4c3176
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 + 0x4f10c0]
movzx ecx, word [eax + 2]
add edx, ecx
lea edx, [eax + edx*2]
push edx
push ebp
call fcn.004bb390
add esp, 0x1c
cmp eax, 1
je 0x4c0f7f
cmp eax, 0xfffffc19
jne 0x4c0eec
cmp dword [ebx + 0xb0], 0
jne 0x4c0eec
mov dword [ebx + 0xb0], esi
jmp 0x4c0eec
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 + 0x4f10c0]
push eax
lea eax, [esi + edx*2]
push eax
push ebp
call fcn.004bb390
add esp, 0x1c
test eax, eax
je 0x4c0ff5
cmp eax, 0xfffffc1d
je 0x4c0ff5
cmp eax, 0xfffffc20
jne 0x4c3176
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 + 0x4f10c0]
push ecx
movzx ecx, word [esi + 2]
add eax, ecx
lea edx, [esi + eax*2]
push edx
push ebp
call fcn.004bb390
add esp, 0x1c
test eax, eax
je 0x4c1068
cmp eax, 0xfffffc1d
je 0x4c1068
cmp eax, 0xfffffc20
jne 0x4c3176
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 + 0x4f10c0]
push eax
lea eax, [esi + edx*2]
push eax
push ebp
call fcn.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
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 + 0x4f10c0]
push ecx
movzx ecx, word [edi + 2]
add eax, ecx
lea edx, [edi + eax*2]
push edx
push ebp
call fcn.004bb390
add esp, 0x1c
cmp eax, 1
je 0x4c114f
cmp eax, 0xfffffc19
jne 0x4c1162
cmp dword [esi + 0xb0], 0
jne 0x4c1162
mov dword [esi + 0xb0], ebx
test eax, eax
jne 0x4c3176
mov dword [esi + 0x80], edi
mov eax, 0xfffffc20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
test eax, eax
jne 0x4c3176
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 0x4c0aa3
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 0x4c3176
movzx edx, word [edi]
mov ecx, edi
cmp edx, 0x7b
je 0x4c1227
cmp edx, 0x71
jne 0x4c121e
jmp 0x4c1210
movzx edx, word [ecx + 2]
cmp word [ecx + edx*2], 0x71
lea ecx, [ecx + edx*2]
je 0x4c1210
movzx edx, word [ecx + 2]
neg edx
lea ecx, [ecx + edx*2]
cmp dword [ebx + 0xb8], ecx
jne 0x4c3176
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.004bb390
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov ecx, dword [esp + 0x15c]
cmp ebp, ecx
jne 0x4c12e5
cmp edx, 0x99
je 0x4c12e5
mov eax, dword [esp + 0x164]
cmp dword [eax + 0xa8], 0
jne 0x4c12ec
cmp dword [eax + 0x5c], 0
jne 0x4c12d8
cmp dword [eax + 0x60], 0
je 0x4c12ec
mov esi, dword [eax + 0x98]
mov edi, dword [eax + 0x78]
lea esi, [edi + esi*2]
cmp ecx, esi
jne 0x4c12ec
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 0x4c1359
push eax
call dword [0x5113b4]
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 0x4c138d
push eax
call dword [0x5113b4]
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 0x4c14bc
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.004bb390
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 0x4c14bc
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
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.0x4bb47e.151
cmp ebp, dword [ebx + 0x88]
jbe case.0x4bb47e.151
mov eax, 1
mov dword [ebx + 0x64], eax
cmp dword [ebx + 0x8c], eax
jle case.0x4bb47e.151
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [eax + 0x8c], ecx
je case.0x4bb47e.151
cmp ebp, dword [eax + 0x88]
jbe case.0x4bb47e.151
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jle case.0x4bb47e.151
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [ecx + 0x8c], 0
je case.0x4bb47e.151
cmp ebp, dword [ecx + 0x88]
jbe case.0x4bb47e.151
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x8c], eax
jle case.0x4bb47e.151
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [edx + 0x8c], 0
je case.0x4bb47e.151
cmp ebp, dword [edx + 0x88]
jbe case.0x4bb47e.151
mov eax, 1
mov dword [edx + 0x64], eax
cmp dword [edx + 0x8c], eax
jle case.0x4bb47e.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.0x4bb47e.151
cmp ebp, dword [eax + 0x7c]
jb case.0x4bb47e.151
cmp ebp, dword [eax + 0x88]
jbe case.0x4bb47e.151
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jle case.0x4bb47e.151
lea eax, [ecx - 0xd]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [edi + 0x8c], 0
je case.0x4bb47e.151
cmp ebp, dword [edi + 0x7c]
jb case.0x4bb47e.151
cmp ebp, dword [edi + 0x88]
jbe case.0x4bb47e.151
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x8c], eax
jle case.0x4bb47e.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 0x4c1704
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.004bb1e0
add esp, 8
test eax, eax
js 0x4c16c4
lea ebp, [ebp + eax*2]
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0x14]
jl 0x4c1690
jmp 0x4c16fa
cmp dword [edi + 0x8c], 0
je 0x4c16fa
cmp ebp, dword [edi + 0x7c]
jb 0x4c16fa
cmp ebp, dword [edi + 0x88]
jbe 0x4c16fa
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x8c], eax
jg 0x4c150f
cmp ebp, dword [esp + 0x1c]
jb 0x4c1754
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
mov edx, ebx
neg edx
lea ebp, [ebp + edx*2]
cmp ebp, dword [esp + 0x1c]
jae 0x4c1712
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [esi + 0x8c], 0
je case.0x4bb47e.151
cmp ebp, dword [esi + 0x7c]
jb case.0x4bb47e.151
cmp ebp, dword [esi + 0x88]
jbe case.0x4bb47e.151
mov eax, 1
mov dword [esi + 0x64], eax
cmp dword [esi + 0x8c], eax
jle case.0x4bb47e.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.0x4bb47e.151
cmp ebp, dword [eax + 0x88]
jbe case.0x4bb47e.151
mov dword [eax + 0x64], 1
cmp dword [eax + 0x8c], 1
jle case.0x4bb47e.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.0x4bb47e.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.004bb390
add esp, 0x1c
test eax, eax
je 0x4bd647
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov dword [esp + 0x1c], ebp
mov edx, esi
cmp esi, edi
jge 0x4c1935
mov eax, dword [esp + 0x164]
mov ecx, dword [eax + 0x7c]
mov dword [esp + 0x18], ecx
jmp 0x4c1887
mov eax, dword [esp + 0x164]
mov esi, 1
cmp ebp, dword [esp + 0x18]
jae 0x4c190d
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x4c18cc
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 0x4c18dd
cmp dword [esp + 0x14], 0x6a
jmp 0x4c18f5
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 0x4c1935
inc edx
lea ebp, [ebp + esi*2]
cmp edx, edi
jl 0x4c1880
jmp 0x4c1935
cmp dword [eax + 0x8c], 0
je 0x4c1935
cmp ebp, dword [eax + 0x88]
jbe 0x4c1935
mov dword [eax + 0x64], esi
cmp dword [eax + 0x8c], esi
jg 0x4c150f
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
mov ecx, ebp
sub ebp, 2
cmp ecx, dword [esp + 0x1c]
je case.0x4bb47e.151
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4c199f
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.004bb390
add esp, 0x1c
test eax, eax
je 0x4c1977
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je case.0x4bb47e.151
cmp ebp, dword [eax + 0x88]
jbe case.0x4bb47e.151
mov dword [eax + 0x64], 1
cmp dword [eax + 0x8c], 1
jmp 0x4c1545
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x28], esi
cmp esi, edi
jge 0x4c1ac5
mov edx, dword [esp + 0x164]
mov eax, dword [edx + 0x7c]
mov dword [esp + 0x18], eax
mov esi, 1
cmp ebp, dword [esp + 0x18]
jae 0x4c1a96
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x4c1a69
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.004c4880
add esp, 8
test eax, eax
je 0x4c1ac5
mov eax, dword [esp + 0x28]
inc eax
lea ebp, [ebp + esi*2]
mov dword [esp + 0x28], eax
cmp eax, edi
jl 0x4c1a24
jmp 0x4c1ac5
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je 0x4c1ac5
cmp ebp, dword [eax + 0x88]
jbe 0x4c1ac5
mov dword [eax + 0x64], esi
cmp dword [eax + 0x8c], esi
jg 0x4c150f
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
mov eax, ebp
sub ebp, 2
cmp eax, dword [esp + 0x1c]
je case.0x4bb47e.151
mov cx, word [ebp]
mov edx, 0xfc00
and cx, dx
mov eax, 0xdc00
cmp cx, ax
jne 0x4c1b28
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.004bb390
add esp, 0x1c
test eax, eax
je 0x4c1b00
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [ecx + 0x8c], 0
je case.0x4bb47e.151
cmp ebp, dword [ecx + 0x7c]
jb case.0x4bb47e.151
cmp ebp, dword [ecx + 0x88]
jbe case.0x4bb47e.151
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x8c], 1
jmp 0x4c1545
cmp dword [edi + 0x8c], ecx
je case.0x4bb47e.151
cmp ebp, dword [edi + 0x88]
jbe case.0x4bb47e.151
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x8c], eax
jmp 0x4c1545
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je case.0x4bb47e.151
cmp ebp, dword [eax + 0x7c]
jb case.0x4bb47e.151
jmp 0x4c152b
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
cmp edi, dword [esp + 0x14]
jge case.0x4bb47e.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 0x4c1cbd
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
add eax, eax
mov esi, ebp
cmp eax, 4
jb 0x4c1c78
jmp 0x4c1c60
mov edx, dword [esi]
cmp edx, dword [ecx]
jne 0x4c1cbd
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x4c1c60
test eax, eax
je 0x4c1cb0
mov dl, byte [ecx]
cmp dl, byte [esi]
jne 0x4c1cbd
cmp eax, 1
jbe 0x4c1cb0
mov dl, byte [ecx + 1]
cmp dl, byte [esi + 1]
jne 0x4c1cbd
cmp eax, 2
jbe 0x4c1cb0
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x4c1cbd
mov eax, dword [esp + 0x24]
lea ebp, [ebp + eax*2]
jmp 0x4c1d42
cmp dword [esp + 0x18], 0
jle 0x4c1d98
mov edx, dword [esp + 0x18]
add edx, edx
sub edi, edx
cmp ebp, edi
ja 0x4c1d98
mov eax, dword [esp + 0x18]
add eax, eax
lea ecx, [esp + 0x5c]
mov esi, ebp
cmp eax, 4
jb 0x4c1d08
lea ecx, [ecx]
mov edi, dword [esi]
cmp edi, dword [ecx]
jne 0x4c1d98
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x4c1cf0
test eax, eax
je 0x4c1d40
mov bl, byte [ecx]
cmp bl, byte [esi]
jne 0x4c1d98
cmp eax, 1
jbe 0x4c1d40
mov bl, byte [ecx + 1]
cmp bl, byte [esi + 1]
jne 0x4c1d98
cmp eax, 2
jbe 0x4c1d40
mov cl, byte [ecx + 2]
cmp cl, byte [esi + 2]
jne 0x4c1d98
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.004bb390
add esp, 0x1c
test eax, eax
je 0x4c1c20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov ecx, dword [esp + 0x164]
cmp dword [ecx + 0x8c], 0
je case.0x4bb47e.151
cmp ebp, dword [ecx + 0x7c]
jb case.0x4bb47e.151
cmp ebp, dword [ecx + 0x88]
jbe case.0x4bb47e.151
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x8c], eax
jmp 0x4c1545
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je case.0x4bb47e.151
cmp ebp, dword [eax + 0x88]
jbe case.0x4bb47e.151
mov ecx, dword [esp + 0x164]
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x8c], eax
jmp 0x4c1545
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
cmp ebx, dword [esp + 0x14]
jge case.0x4bb47e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c21d1
movzx eax, word [ebp]
cmp esi, eax
je 0x4c1e7e
cmp dword [esp + 0x28], eax
jne case.0x4bb47e.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.004bb390
add esp, 0x1c
test eax, eax
je 0x4c1e52
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [edx + 0x8c], 0
je case.0x4bb47e.151
cmp ebp, dword [edx + 0x88]
jbe case.0x4bb47e.151
mov eax, 1
mov dword [edx + 0x64], eax
cmp dword [edx + 0x8c], eax
jmp 0x4c1545
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
cmp ebx, dword [esp + 0x14]
jge case.0x4bb47e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c21d1
movzx edx, word [ebp]
add ebp, 2
cmp esi, edx
jne case.0x4bb47e.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.004bb390
add esp, 0x1c
test eax, eax
je 0x4c1f34
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
cmp esi, dword [esp + 0x14]
jge case.0x4bb47e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c21d1
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c2035
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.0x4bb47e.151
cmp dword [esp + 0x28], eax
je case.0x4bb47e.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.004bb390
add esp, 0x1c
test eax, eax
je 0x4c1fe4
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
lea ecx, [ecx]
cmp esi, dword [esp + 0x14]
jge case.0x4bb47e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c21d1
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c2121
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.0x4bb47e.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.004bb390
add esp, 0x1c
test eax, eax
je 0x4c20d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [esi + 0x8c], 0
je case.0x4bb47e.151
cmp ebp, dword [esi + 0x88]
jbe case.0x4bb47e.151
mov eax, 1
mov dword [esi + 0x64], eax
cmp dword [esi + 0x8c], eax
jmp 0x4c1545
mov ecx, dword [esp + 0x164]
cmp dword [ecx + 0x8c], 0
je case.0x4bb47e.151
cmp ebp, dword [ecx + 0x88]
jbe case.0x4bb47e.151
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x8c], eax
jmp 0x4c1545
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
jmp 0x4c1525
cmp dword [esi + 0x8c], 0
je case.0x4bb47e.151
cmp ebp, dword [esi + 0x88]
jbe case.0x4bb47e.151
mov dword [esi + 0x64], 1
cmp dword [esi + 0x8c], 1
jmp 0x4c1545
test eax, eax
js 0x4c2be5
cmp eax, 8
ja case.default.0x4bd05b
jmp dword [eax*4 + 0x4c3484]
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
cmp esi, dword [esp + 0x14]
jge case.0x4bb47e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c21d1
movzx eax, word [ebp]
and eax, 0xfc00
add ebp, 2
cmp eax, 0xd800
jne 0x4c2295
add ebp, 2
cmp dword [esp + 0x2c], 0
jne case.0x4bb47e.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.004bb390
add esp, 0x1c
test eax, eax
je 0x4c2265
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
cmp edi, dword [esp + 0x14]
jge case.0x4bb47e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c21d1
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4c2371
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 + 0x4f29e8]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx edx, word [ecx*2 + 0x4f4be8]
movzx eax, byte [edx*8 + 0x4f1909]
cmp eax, 9
je 0x4c23ac
cmp eax, 5
je 0x4c23ac
cmp eax, 8
je 0x4c23ac
xor eax, eax
jmp 0x4c23b1
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4bb47e.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.004bb390
add esp, 0x1c
test eax, eax
je 0x4c2320
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
nop
cmp esi, dword [esp + 0x14]
jge case.0x4bb47e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c21d1
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4c2491
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 + 0x4f29e8]
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx edx, word [ecx*2 + 0x4f4be8]
movzx eax, byte [edx*8 + 0x4f1909]
mov edx, dword [esp + 0x38]
xor ecx, ecx
cmp dword [eax*4 + 0x4f1160], edx
sete cl
cmp ecx, dword [esp + 0x2c]
je case.0x4bb47e.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.004bb390
add esp, 0x1c
test eax, eax
je 0x4c2440
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
cmp esi, dword [esp + 0x14]
jge case.0x4bb47e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c21d1
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4c25a4
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 + 0x4f29e8]
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx edx, word [ecx*2 + 0x4f4be8]
movzx eax, byte [edx*8 + 0x4f1909]
xor ecx, ecx
cmp eax, dword [esp + 0x38]
sete cl
cmp ecx, dword [esp + 0x2c]
je case.0x4bb47e.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.004bb390
add esp, 0x1c
test eax, eax
je 0x4c2553
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
nop
cmp esi, dword [esp + 0x14]
jge case.0x4bb47e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c21d1
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c26b1
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 + 0x4f29e8]
shl edx, 7
and eax, 0x7f
add edx, eax
movzx eax, word [edx*2 + 0x4f4be8]
movzx ecx, byte [eax*8 + 0x4f1908]
xor edx, edx
cmp ecx, dword [esp + 0x38]
sete dl
cmp edx, dword [esp + 0x2c]
je case.0x4bb47e.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.004bb390
add esp, 0x1c
test eax, eax
je 0x4c2660
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
lea esp, [esp]
cmp edi, dword [esp + 0x14]
jge case.0x4bb47e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c21d1
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4c27c1
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 + 0x4f29e8]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx edx, word [ecx*2 + 0x4f4be8]
movzx eax, byte [edx*8 + 0x4f1909]
mov eax, dword [eax*4 + 0x4f1160]
cmp eax, 1
je 0x4c27fa
cmp eax, 3
je 0x4c27fa
xor eax, eax
jmp 0x4c27ff
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4bb47e.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.004bb390
add esp, 0x1c
test eax, eax
je 0x4c2770
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
lea ecx, [ecx]
cmp edi, dword [esp + 0x14]
jge case.0x4bb47e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c21d1
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c28e1
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 + 0x4f29e8]
shl edx, 7
mov ecx, eax
and ecx, 0x7f
add edx, ecx
movzx edx, word [edx*2 + 0x4f4be8]
movzx ecx, byte [edx*8 + 0x4f1909]
cmp dword [ecx*4 + 0x4f1160], 6
je 0x4c2931
cmp eax, 9
je 0x4c2931
cmp eax, 0xa
je 0x4c2931
cmp eax, 0xc
je 0x4c2931
cmp eax, 0xd
je 0x4c2931
xor eax, eax
jmp 0x4c2936
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4bb47e.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.004bb390
add esp, 0x1c
test eax, eax
je 0x4c2890
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
cmp edi, dword [esp + 0x14]
jge case.0x4bb47e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c21d1
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c2a15
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 + 0x4f29e8]
shl edx, 7
mov ecx, eax
and ecx, 0x7f
add edx, ecx
movzx edx, word [edx*2 + 0x4f4be8]
movzx ecx, byte [edx*8 + 0x4f1909]
cmp dword [ecx*4 + 0x4f1160], 6
je 0x4c2a6e
cmp eax, 9
je 0x4c2a6e
cmp eax, 0xa
je 0x4c2a6e
cmp eax, 0xb
je 0x4c2a6e
cmp eax, 0xc
je 0x4c2a6e
cmp eax, 0xd
je 0x4c2a6e
xor eax, eax
jmp 0x4c2a73
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4bb47e.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.004bb390
add esp, 0x1c
test eax, eax
je 0x4c29c4
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
cmp edi, dword [esp + 0x14]
jge case.0x4bb47e.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4c21d1
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c2b52
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 + 0x4f29e8]
shl edx, 7
mov ecx, eax
and ecx, 0x7f
add edx, ecx
movzx edx, word [edx*2 + 0x4f4be8]
movzx ecx, byte [edx*8 + 0x4f1909]
mov ecx, dword [ecx*4 + 0x4f1160]
cmp ecx, 1
je 0x4c2b96
cmp ecx, 3
je 0x4c2b96
cmp eax, 0x5f
je 0x4c2b96
xor eax, eax
jmp 0x4c2b9b
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4bb47e.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.004bb390
add esp, 0x1c
test eax, eax
je 0x4c2b01
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 0x4c2d79
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
mov eax, dword [esp + 0x164]
cmp edi, dword [esp + 0x14]
jge case.0x4bb47e.151
mov edx, dword [eax + 0x7c]
cmp ebp, edx
jae 0x4c21d1
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c2c87
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 + 0x4f29e8]
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4f4be8]
movzx ecx, byte [eax*8 + 0x4f1909]
cmp dword [ecx*4 + 0x4f1160], 2
je case.0x4bb47e.151
cmp ebp, edx
jae 0x4c2d32
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
mov ecx, 1
cmp ebx, 0xd800
jne 0x4c2cfc
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 + 0x4f29e8]
and eax, 0x7f
shl ebx, 7
add ebx, eax
movzx eax, word [ebx*2 + 0x4f4be8]
movzx eax, byte [eax*8 + 0x4f1909]
cmp dword [eax*4 + 0x4f1160], 2
jne 0x4c2d32
lea ebp, [ebp + ecx*2]
cmp ebp, edx
jb 0x4c2cc1
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.004bb390
add esp, 0x1c
test eax, eax
je 0x4c2c34
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.004bb390
add esp, 0x1c
test eax, eax
jne 0x4c3176
cmp edi, dword [esp + 0x14]
jge case.0x4bb47e.151
cmp ebp, dword [esi + 0x7c]
jae 0x4c216b
cmp dword [esp + 0x18], 0xc
jne 0x4c2e31
mov eax, dword [esi + 0x18]
test eax, eax
je 0x4c2e01
mov ecx, dword [esp + 0x164]
mov edx, dword [ecx + 0x7c]
push 1
lea esi, [ecx + 0x1c]
push eax
mov ecx, ebp
call fcn.004c4680
add esp, 8
test eax, eax
jne case.0x4bb47e.151
mov esi, dword [esp + 0x164]
jmp 0x4c2e31
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x7c]
lea ecx, [eax + eax]
sub edx, ecx
cmp ebp, edx
ja 0x4c2e31
mov cx, word [ebp]
cmp cx, word [esi + 0x2c]
jne 0x4c2e31
cmp eax, 1
je case.0x4bb47e.151
mov dx, word [ebp + 2]
cmp dx, word [esi + 0x2e]
je case.0x4bb47e.151
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4c2e68
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.0x4bd05b
jmp dword [ecx*4 + 0x4c34a8]
cmp eax, 0xd
ja 0x4c2ebd
je 0x4c2ea1
cmp eax, 0xa
je case.0x4c2e78.12
jbe case.0x4bb47e.151
cmp eax, 0xc
jmp 0x4c2ed4
cmp ebp, dword [esi + 0x7c]
jae case.0x4c2e78.12
cmp word [ebp], 0xa
jne case.0x4c2e78.12
add ebp, 2
jmp case.0x4c2e78.12
cmp eax, 0x85
je 0x4c2eda
cmp eax, 0x2027
jbe case.0x4bb47e.151
cmp eax, 0x2029
ja case.0x4bb47e.151
cmp dword [esi + 0x68], 0
jne case.0x4bb47e.151
jmp case.0x4c2e78.12
cmp eax, 0x180e
ja 0x4c2f22
je case.0x4bb47e.151
cmp eax, 0xa0
ja 0x4c2f18
je case.0x4bb47e.151
cmp eax, 9
je case.0x4bb47e.151
cmp eax, 0x20
jmp 0x4c30f3
cmp eax, 0x1680
jmp 0x4c30f3
cmp eax, 0x205f
ja 0x4c2f4f
je case.0x4bb47e.151
cmp eax, 0x2000
jb case.0x4c2e78.12
cmp eax, 0x200a
jbe case.0x4bb47e.151
cmp eax, 0x202f
jmp 0x4c30f3
cmp eax, 0x3000
jmp 0x4c30f3
cmp eax, 0x180e
ja 0x4c2f9e
je case.0x4c2e78.12
cmp eax, 0xa0
ja 0x4c2f8e
je case.0x4c2e78.12
cmp eax, 9
je case.0x4c2e78.12
cmp eax, 0x20
jne case.0x4bb47e.151
jmp case.0x4c2e78.12
cmp eax, 0x1680
jne case.0x4bb47e.151
jmp case.0x4c2e78.12
cmp eax, 0x205f
ja 0x4c2fd1
je case.0x4c2e78.12
cmp eax, 0x2000
jb case.0x4bb47e.151
cmp eax, 0x200a
jbe case.0x4c2e78.12
cmp eax, 0x202f
jne case.0x4bb47e.151
jmp case.0x4c2e78.12
cmp eax, 0x3000
jne case.0x4bb47e.151
jmp case.0x4c2e78.12
cmp eax, 0x85
ja 0x4c3005
je case.0x4bb47e.151
cmp eax, 0xa
jb case.0x4c2e78.12
cmp eax, 0xd
jbe case.0x4bb47e.151
jmp case.0x4c2e78.12
cmp eax, 0x2028
jb case.0x4c2e78.12
cmp eax, 0x2029
jbe case.0x4bb47e.151
jmp case.0x4c2e78.12
cmp eax, 0x85
ja 0x4c3044
je case.0x4c2e78.12
cmp eax, 0xa
jb case.0x4bb47e.151
cmp eax, 0xd
ja case.0x4bb47e.151
jmp case.0x4c2e78.12
cmp eax, 0x2028
jb case.0x4bb47e.151
cmp eax, 0x2029
ja case.0x4bb47e.151
jmp case.0x4c2e78.12
cmp eax, 0x100
jae case.0x4c2e78.12
mov ecx, dword [esi + 0x3c]
test byte [eax + ecx], 4
jne case.0x4bb47e.151
jmp case.0x4c2e78.12
cmp eax, 0x100
jae case.0x4bb47e.151
mov edx, dword [esi + 0x3c]
test byte [eax + edx], 4
jmp 0x4c30f3
cmp eax, 0x100
jae case.0x4c2e78.12
mov ecx, dword [esi + 0x3c]
test byte [eax + ecx], 1
jne case.0x4bb47e.151
jmp case.0x4c2e78.12
cmp eax, 0x100
jae case.0x4bb47e.151
mov edx, dword [esi + 0x3c]
test byte [eax + edx], 1
jmp 0x4c30f3
cmp eax, 0x100
jae case.0x4c2e78.12
mov ecx, dword [esi + 0x3c]
test byte [eax + ecx], 0x10
jne case.0x4bb47e.151
jmp case.0x4c2e78.12
cmp eax, 0x100
jae case.0x4bb47e.151
mov edx, dword [esi + 0x3c]
test byte [eax + edx], 0x10
je case.0x4bb47e.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.004bb390
add esp, 0x1c
test eax, eax
je 0x4c2daa
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.004bb390
add esp, 0x1c
test eax, eax
je 0x4bfee6
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