Function at 0x4afad0
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 0x4afb30
cmp dword [esp + 0x16c], eax
jne 0x4afb10
push 1
push eax
push eax
push eax
push eax
push eax
lea eax, [esp + 0x184]
push eax
call fcn.004afad0
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 0x4b547e
mov ebp, dword [esp + 0x154]
jmp 0x4afb55
xor eax, eax
inc ecx
mov dword [ebx], ecx
mov ecx, dword [esp + 0x16c]
cmp ecx, dword [ebx + 8]
jae 0x4b5490
cmp dword [ebx + 0x9c], 2
jne 0x4afb91
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.0x4afbbe.98
movzx edi, byte [edx + 0x4b7a0c]
jmp dword [edi*4 + 0x4b78c4]
mov ebx, dword [esp + 0x164]
cmp dword [ebx + 0x70], ecx
je 0x4b574b
movzx edx, byte [edx + 0x4c03c0]
movzx eax, word [esi + 2]
add edx, eax
lea ecx, [esi + edx*2]
mov dword [esp + 0x158], ecx
jmp 0x4afb91
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.004afad0
add esp, 0x1c
cmp eax, 1
je 0x4afd05
cmp eax, 0xfffffc20
jne 0x4afc6e
movzx ecx, word [esi + 2]
lea ecx, [esi + ecx*2]
cmp dword [ebx + 0x80], ecx
jae 0x4b78b6
cmp word [esi], 0x71
je 0x4afc76
cmp word [ecx], 0x71
jmp 0x4afc70
test eax, eax
jne 0x4b78b6
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 0x4afc10
mov esi, eax
movzx eax, word [esi]
cmp eax, 0x7c
je 0x4afcb0
cmp eax, 0x71
jne case.0x4afbbe.151
jmp 0x4afcb0
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 0x4afcb0
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 0x4afcf6
cmp ebp, dword [esp + 0x20]
jne 0x4b50fd
add esi, 4
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov edi, dword [ebx + 0x80]
mov dword [esp + 0x15c], edi
jmp 0x4afc9a
mov dword [esp + 0x24], ecx
jmp 0x4b0819
cmp word [esi + 4], 0x70
movzx edi, word [esi + 2]
mov ebx, dword [esp + 0x164]
jne 0x4afe14
mov ecx, dword [0x4e9878]
test ecx, ecx
je 0x4afe0a
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.0x4afbbe.151
js 0x4b78b6
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 0x4b001a
cmp ecx, 0x8a
je 0x4b001a
cmp ecx, 0x87
je 0x4afeab
cmp ecx, 0x88
je 0x4afeab
cmp ecx, 0x8b
jne 0x4afe57
movzx eax, word [esi + 2]
lea eax, [esi + eax*2]
jmp 0x4b0158
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.004afad0
add esp, 0x1c
cmp eax, 1
je 0x4b50a0
test eax, eax
je 0x4afe9f
cmp eax, 0xfffffc20
jne 0x4b78b6
mov edx, dword [esp + 0x14]
lea eax, [esi + edi*2]
jmp 0x4b0158
movzx eax, word [esi + 6]
add eax, eax
cmp eax, dword [esp + 0x160]
jge 0x4afec7
mov edi, dword [ebx + 0xc]
cmp dword [edi + eax*4], 0
jge 0x4b0005
mov dword [esp + 0x20], 0
cmp ecx, 0x88
jne 0x4affcf
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 0x4aff02
lea ecx, [ecx]
movzx edx, word [esi]
cmp edx, eax
je 0x4aff02
mov edx, dword [ebx + 0x24]
inc edi
lea esi, [esi + edx*2]
cmp edi, ecx
jl 0x4afef0
cmp edi, ecx
jge 0x4affcf
mov eax, dword [esp + 0x164]
mov eax, dword [eax + 0x28]
mov ebx, esi
mov dword [esp + 0x30], eax
cmp esi, eax
jbe 0x4aff73
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.004b8d10
test eax, eax
jne 0x4aff73
movzx eax, word [ebx]
add eax, eax
cmp eax, dword [esp + 0x160]
jge 0x4aff65
mov edx, dword [esp + 0x164]
mov ecx, dword [edx + 0xc]
cmp dword [ecx + eax*4], 0
jge 0x4afff4
mov dword [esp + 0x20], 0
cmp ebx, dword [esp + 0x30]
ja 0x4aff30
inc edi
cmp edi, dword [esp + 0x18]
jge 0x4affcf
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.004b8d10
test eax, eax
jne 0x4affcf
movzx eax, word [esi]
add eax, eax
cmp eax, dword [esp + 0x160]
jge 0x4affc0
mov ecx, dword [esp + 0x164]
mov edx, dword [ecx + 0xc]
cmp dword [edx + eax*4], 0
jge 0x4afff8
inc edi
mov dword [esp + 0x20], 0
cmp edi, dword [esp + 0x18]
jl 0x4aff90
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 0x4b014d
mov ebx, edx
jmp 0x4afffa
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 0x4b014d
cmp dword [ebx + 0xa8], 0
jne 0x4b002f
movzx ecx, word [esi + 2]
lea eax, [esi + ecx*2]
jmp 0x4b0158
movzx edx, word [esi + 6]
cmp edx, 0xffff
je 0x4b0171
mov eax, dword [ebx + 0xa8]
mov eax, dword [eax + 4]
mov dword [esp + 0x30], eax
cmp edx, eax
je 0x4b0171
mov dword [esp + 0x20], 0
cmp ecx, 0x8a
jne 0x4b0124
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 0x4b0092
nop
movzx edi, word [esi]
cmp edi, edx
je 0x4b0092
mov edi, dword [ecx + 0x24]
inc ebx
lea esi, [esi + edi*2]
cmp ebx, eax
jl 0x4b0080
cmp ebx, eax
jge 0x4b0124
mov eax, dword [ecx + 0x28]
mov edi, esi
mov dword [esp + 0x34], eax
cmp esi, eax
jbe 0x4b00df
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.004b8d10
test eax, eax
jne 0x4b00df
movzx ecx, word [edi]
cmp ecx, dword [esp + 0x30]
sete al
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4b0179
cmp edi, dword [esp + 0x34]
ja 0x4b00b0
inc ebx
cmp ebx, dword [esp + 0x18]
jge 0x4b0124
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.004b8d10
test eax, eax
jne 0x4b0124
movzx ecx, word [esi]
cmp ecx, dword [esp + 0x30]
sete al
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4b0179
inc ebx
cmp ebx, dword [esp + 0x18]
jl 0x4b00f9
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 0x4b50e2
cmp word [eax], 0x71
je 0x4b50e2
add eax, 4
mov dword [esp + 0x158], eax
jmp 0x4afb91
mov dword [esp + 0x20], 1
mov eax, 2
jmp 0x4b012f
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 0x4b01b4
add dword [esp + 0x158], 4
mov dword [ecx + 0x40], 1
jmp 0x4afb91
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 0x4b01e3
add eax, 2
mov dword [esp + 0x160], eax
add dword [esp + 0x158], 4
jmp 0x4afb91
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0xb0]
mov eax, 1
mov dword [esp + 0x24], edx
cmp dword [esi + 0x9c], eax
jne 0x4b021a
mov dword [esp + 0x20], eax
mov dword [esi + 0x9c], ecx
jmp 0x4b021e
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.004afad0
add esp, 0x1c
cmp eax, 1
je 0x4b0294
cmp eax, 0xfffffc19
je 0x4b0294
test eax, eax
je 0x4b026d
cmp eax, 0xfffffc20
jne 0x4b78b6
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 0x4b0230
jmp 0x4b02a1
mov edx, dword [esi + 0x80]
mov dword [esp + 0x15c], edx
mov eax, dword [esp + 0x158]
cmp word [eax], 0x72
je case.0x4afbbe.151
cmp dword [esp + 0x20], 0
jne 0x4b5b01
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 0x4b02c0
mov edx, dword [esi + 0x90]
add dword [esp + 0x158], 4
mov dword [esp + 0x160], edx
jmp 0x4afb91
mov esi, dword [esp + 0x164]
mov eax, dword [esi + 0xb0]
mov dword [esp + 0x24], eax
mov eax, 1
cmp dword [esi + 0x9c], eax
jne 0x4b0320
mov dword [esp + 0x20], eax
mov dword [esi + 0x9c], ecx
jmp 0x4b0324
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.004afad0
mov ecx, dword [esp + 0x40]
add esp, 0x1c
mov dword [esi + 0xb0], ecx
cmp eax, 1
je case.0x4afbbe.151
cmp eax, 0xfffffc19
je case.0x4afbbe.151
cmp eax, 0xfffffc1e
je 0x4b03b0
cmp eax, 0xfffffc1d
je 0x4b03b0
cmp eax, 0xfffffc1a
je 0x4b03b0
test eax, eax
je 0x4b0396
cmp eax, 0xfffffc20
jne 0x4b78b6
movzx edx, word [edi + 2]
cmp word [edi + edx*2], 0x71
lea eax, [edi + edx*2]
mov dword [esp + 0x158], eax
jne 0x4b03cc
jmp 0x4b032b
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 0x4b03b0
cmp dword [esp + 0x20], 0
jne 0x4b5b01
add eax, 4
mov dword [esp + 0x158], eax
jmp 0x4afb91
movzx eax, word [esi + 2]
mov edx, dword [esp + 0x164]
cmp eax, ecx
jle 0x4b0421
mov ecx, dword [edx + 0x78]
sub ebp, 2
dec eax
cmp ebp, ecx
jb case.0x4afbbe.151
mov di, word [ebp]
mov ebx, 0xfc00
and di, bx
mov ebx, 0xdc00
cmp di, bx
jne 0x4b041d
sub ebp, 2
test eax, eax
jg 0x4b03f8
cmp ebp, dword [edx + 0x88]
jae 0x4b042f
mov dword [edx + 0x88], ebp
add esi, 4
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov esi, dword [0x4e9878]
mov edi, dword [esp + 0x158]
test esi, esi
je 0x4b0514
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.0x4afbbe.151
js 0x4b78b6
add edi, 0xc
mov dword [esp + 0x158], edi
jmp 0x4afb91
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 0x4b0543
xor ecx, ecx
jmp 0x4b0547
movzx ecx, word [esi + 4]
mov eax, dword [ebx + 0xa8]
test eax, eax
je 0x4b0565
cmp ecx, dword [eax + 4]
jne 0x4b055f
cmp ebp, dword [eax + 0x10]
je 0x4b5a5c
mov eax, dword [eax]
test eax, eax
jne 0x4b0551
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 0x4b05a2
lea eax, [esp + 0xd8]
mov dword [esp + 0x48], eax
jmp 0x4b05c3
lea eax, [ecx*4]
push eax
call dword [0x4e4200]
add esp, 4
mov dword [esp + 0x48], eax
test eax, eax
je 0x4b5a6c
mov ecx, dword [esp + 0x4c]
mov edx, dword [ebx + 0xc]
add ecx, ecx
add ecx, ecx
push ecx
push edx
push eax
call sub.MSVCR100.dll_memcpy
mov eax, 0x82
add esp, 0xc
cmp word [esi], ax
sbb eax, eax
inc eax
mov dword [esp + 0x20], eax
test eax, eax
je 0x4b05f2
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 + 0x4c03c0]
push ecx
lea ecx, [esi + eax*2]
push ecx
push ebp
call fcn.004afad0
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 sub.MSVCR100.dll_memcpy
mov eax, dword [esp + 0x4c]
add esp, 0xc
mov dword [ebx + 0xa8], eax
cmp edi, 1
je 0x4b0696
cmp edi, 0xfffffc19
je 0x4b0696
test edi, edi
je 0x4b0671
cmp edi, 0xfffffc20
jne 0x4b5a7c
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 0x4b5aa6
mov eax, dword [esp + 0x20]
jmp 0x4b05e4
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0xd8]
cmp eax, ecx
je 0x4b06af
push eax
call dword [0x4e4204]
add esp, 4
mov edx, dword [ebx + 0x80]
mov ebp, dword [ebx + 0x84]
mov dword [esp + 0x15c], edx
jmp 0x4afb91
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.0x4afbbe.113
jmp 0x4afb91
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
jmp 0x4b0740
movzx ecx, word [esi + 2]
cmp word [esi + ecx*2], 0x71
lea esi, [esi + ecx*2]
je 0x4b0740
add esi, 4
mov dword [esp + 0x158], esi
jmp 0x4afb91
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 0x4b0770
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
mov dword [esp + 0x158], esi
jmp 0x4afb91
lea eax, [esi + 2]
jmp 0x4b07d0
movzx edx, word [eax + 2]
cmp word [eax + edx*2], 0x71
lea eax, [eax + edx*2]
je 0x4b07d0
add eax, 4
mov dword [esp + 0x158], eax
jmp 0x4afb91
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 0x4b0819
cmp eax, 0x85
jne 0x4b09cb
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 0x4b09c3
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 0x4b089f
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 + 0x4c03c0]
push ecx
lea ecx, [edi + eax*2]
push ecx
push ebp
call fcn.004afad0
add esp, 0x1c
cmp eax, 0xfffffc1b
jne 0x4b0916
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 0x4b0870
cmp eax, 0xfffffc20
jne 0x4b093c
movzx ecx, word [edi + 2]
lea ecx, [edi + ecx*2]
cmp dword [ebx + 0x80], ecx
jae 0x4b78b6
cmp word [edi], 0x71
je 0x4b0944
cmp word [ecx], 0x71
jmp 0x4b093e
test eax, eax
jne 0x4b78b6
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 0x4b0870
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x4b099a
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 0x4b09a9
test edx, edx
je case.0x4afbbe.151
add dword [esp + 0x158], 4
jmp 0x4afb91
mov ebx, dword [esp + 0x164]
mov dword [esp + 0x24], ecx
jmp 0x4b09d2
xor ecx, ecx
mov dword [esp + 0x24], ecx
jmp 0x4b09d2
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 0x4b0a0a
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 + 0x4c03c0]
push edi
push ebx
push ecx
lea ecx, [esi + eax*2]
push ecx
push ebp
call fcn.004afad0
add esp, 0x1c
cmp eax, 0xfffffc1b
jne 0x4b0a6a
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 0x4b09f6
cmp eax, 0xfffffc20
jne 0x4b0a90
movzx ecx, word [esi + 2]
lea ecx, [esi + ecx*2]
cmp dword [edi + 0x80], ecx
jae 0x4b78b6
cmp word [esi], 0x71
je 0x4b0a98
cmp word [ecx], 0x71
jmp 0x4b0a92
test eax, eax
jne 0x4b78b6
movzx edx, word [esi + 2]
cmp word [esi + edx*2], 0x71
lea esi, [esi + edx*2]
je 0x4b09f6
cmp dword [esp + 0x18], 0
jne 0x4b0abc
cmp dword [esp + 0x24], 0
je case.0x4afbbe.151
add esi, 4
mov dword [esp + 0x158], esi
jmp 0x4afb91
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 0x4b0afc
cmp eax, 0x7b
je 0x4b0afc
mov dword [esp + 0x20], 0
jmp 0x4b0b13
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 0x4b0b21
cmp eax, 0x7a
jbe 0x4b5ada
cmp eax, 0x7c
je 0x4b5ada
cmp eax, 0x7f
je 0x4b0b51
mov edx, 0x84
cmp ax, dx
je 0x4b0b51
mov edx, 0x80
cmp ax, dx
je 0x4b0b51
mov edx, 0x85
cmp ax, dx
jne 0x4b0bef
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 0x4b0b7b
mov esi, dword [ebx + 0xa8]
cmp dword [esi + 4], eax
je 0x4b5b11
mov esi, dword [esp + 0x160]
mov dword [ebx + 0x94], eax
cmp edx, dword [ebx + 0x14]
jl 0x4b0b99
mov dword [ebx + 0x40], 1
jmp 0x4b0bfd
cmp edx, esi
jle 0x4b0bba
mov eax, dword [ebx + 0xc]
lea edi, [eax + esi*4]
lea ecx, [eax + edx*4]
cmp edi, ecx
jae 0x4b0bb6
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 0x4b0bfd
lea esi, [edx + 2]
mov dword [esp + 0x160], esi
jmp 0x4b0bfd
mov esi, dword [esp + 0x160]
mov ebx, dword [esp + 0x164]
cmp word [ecx], 0x72
je 0x4b0c0d
cmp ebp, dword [esp + 0x20]
jne 0x4b5394
cmp word [edi], 0x7b
je 0x4b5bd6
add ecx, 4
mov dword [esp + 0x158], ecx
jmp 0x4afb91
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x44], ecx
je 0x4b0c44
cmp ebp, dword [eax + 0x78]
je case.0x4afbbe.151
jmp 0x4b0c44
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x78]
jne case.0x4afbbe.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x44], ecx
je 0x4b0c71
cmp ebp, dword [eax + 0x78]
je case.0x4afbbe.151
mov edx, dword [eax + 0x78]
cmp ebp, edx
je 0x4b0cf0
cmp ebp, dword [eax + 0x7c]
je case.0x4afbbe.151
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x4b0cb9
cmp ebp, edx
jbe case.0x4afbbe.151
push 1
push ecx
lea esi, [eax + 0x1c]
mov ecx, ebp
call fcn.004b8e80
add esp, 8
test eax, eax
je case.0x4afbbe.151
add dword [esp + 0x158], 2
jmp 0x4afb91
mov esi, dword [eax + 0x1c]
mov ecx, dword [eax + 0x78]
lea edx, [esi + esi]
add ecx, edx
cmp ebp, ecx
jb case.0x4afbbe.151
mov ecx, ebp
sub ecx, edx
mov dx, word [ecx]
cmp dx, word [eax + 0x2c]
jne case.0x4afbbe.151
cmp esi, 1
je 0x4b0cf0
mov cx, word [ecx + 2]
cmp cx, word [eax + 0x2e]
jne case.0x4afbbe.151
add dword [esp + 0x158], 2
jmp 0x4afb91
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.0x4afbbe.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4afb91
add esi, 2
mov dword [esp + 0x15c], ebp
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b0dc8
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x4b0d85
mov edx, dword [eax + 0x7c]
push 1
push ecx
lea esi, [eax + 0x1c]
mov ecx, ebp
call fcn.004b8dc0
add esp, 8
test eax, eax
je case.0x4afbbe.151
mov esi, dword [esp + 0x158]
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov ecx, dword [eax + 0x1c]
mov edi, dword [eax + 0x7c]
lea edx, [ecx + ecx]
sub edi, edx
cmp ebp, edi
ja case.0x4afbbe.151
mov dx, word [ebp]
cmp dx, word [eax + 0x2c]
jne case.0x4afbbe.151
cmp ecx, 1
je 0x4b0df5
mov cx, word [ebp + 2]
cmp cx, word [eax + 0x2e]
jne case.0x4afbbe.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4afb91
cmp dword [eax + 0x48], ecx
jne case.0x4afbbe.151
cmp dword [eax + 0x8c], ecx
je 0x4b0df5
cmp ebp, dword [eax + 0x88]
jbe 0x4b0df5
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jg 0x4b5c4f
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov ebx, dword [esp + 0x164]
cmp dword [ebx + 0x48], ecx
jne case.0x4afbbe.151
cmp dword [ebx + 0x58], ecx
je 0x4b0e65
jmp 0x4b0e22
mov ebx, dword [esp + 0x164]
cmp ebp, dword [ebx + 0x7c]
jb case.0x4afbbe.151
cmp dword [ebx + 0x8c], ecx
je 0x4b0e4f
cmp ebp, dword [ebx + 0x88]
jbe 0x4b0e4f
mov eax, 1
mov dword [ebx + 0x64], eax
cmp dword [ebx + 0x8c], eax
jg 0x4b5c4f
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov ebx, dword [esp + 0x164]
cmp ebp, dword [ebx + 0x7c]
jae 0x4b0ed6
mov eax, dword [ebx + 0x18]
lea esi, [ebx + 0x1c]
cmp eax, ecx
je 0x4b0e92
mov edx, dword [ebx + 0x7c]
push 1
push eax
mov ecx, ebp
call fcn.004b8dc0
add esp, 8
test eax, eax
je case.0x4afbbe.151
jmp 0x4b0ec5
mov eax, dword [esi]
mov ecx, dword [ebx + 0x7c]
lea edx, [eax + eax]
sub ecx, edx
cmp ebp, ecx
ja case.0x4afbbe.151
mov dx, word [ebp]
cmp dx, word [ebx + 0x2c]
jne case.0x4afbbe.151
cmp eax, 1
je 0x4b0ec5
mov ax, word [ebp + 2]
cmp ax, word [ebx + 0x2e]
jne case.0x4afbbe.151
mov ecx, dword [esi]
mov edx, dword [ebx + 0x7c]
add ecx, ecx
sub edx, ecx
cmp ebp, edx
jne case.0x4afbbe.151
cmp dword [ebx + 0x8c], 0
je 0x4b0efb
cmp ebp, dword [ebx + 0x88]
jbe 0x4b0efb
mov eax, 1
mov dword [ebx + 0x64], eax
cmp dword [ebx + 0x8c], eax
jg 0x4b5c4f
add dword [esp + 0x158], 2
jmp 0x4afb91
mov edx, dword [esp + 0x164]
cmp ebp, dword [edx + 0x78]
je 0x4b0fd4
mov ax, word [ebp - 2]
lea ecx, [ebp - 2]
mov edi, 0xfc00
and ax, di
mov edi, 0xdc00
cmp ax, di
jne 0x4b0f34
sub ecx, 2
cmp ecx, dword [edx + 0x88]
jae 0x4b0f42
mov dword [edx + 0x88], ecx
movzx eax, word [ecx]
mov edi, eax
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4b0f6e
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 0x4b0fbd
cmp eax, 0x5f
jne 0x4b0f81
lea ecx, [eax - 0x5e]
jmp 0x4b0fd6
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0x4c1ce8]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [ecx*2 + 0x4c3ee8]
movzx ecx, byte [eax*8 + 0x4c0c09]
mov eax, dword [ecx*4 + 0x4c0460]
cmp eax, 1
je 0x4b0fb6
cmp eax, 3
jne 0x4b0fd4
mov ecx, 1
jmp 0x4b0fd6
cmp eax, 0x100
jae 0x4b0fd4
mov ecx, dword [edx + 0x3c]
test byte [eax + ecx], 0x10
je 0x4b0fd4
mov ecx, 1
jmp 0x4b0fd6
xor ecx, ecx
cmp ebp, dword [edx + 0x7c]
jb 0x4b1025
cmp dword [edx + 0x8c], 0
je 0x4b1000
cmp ebp, dword [edx + 0x88]
jbe 0x4b1000
mov eax, 1
mov dword [edx + 0x64], eax
cmp dword [edx + 0x8c], eax
jg 0x4b5c4f
xor eax, eax
mov dx, word [esi]
add esi, 2
mov dword [esp + 0x158], esi
cmp dx, 5
jne 0x4b10c9
xor edx, edx
cmp eax, ecx
sete dl
jmp 0x4b10d0
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4b1052
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 0x4b10a7
cmp eax, 0x5f
jne 0x4b1064
mov eax, 1
jmp 0x4b1002
mov edx, eax
shr edx, 7
movzx edx, byte [edx + 0x4c1ce8]
and eax, 0x7f
shl edx, 7
add edx, eax
movzx eax, word [edx*2 + 0x4c3ee8]
movzx edx, byte [eax*8 + 0x4c0c09]
mov eax, dword [edx*4 + 0x4c0460]
cmp eax, 1
je 0x4b109d
cmp eax, 3
jne 0x4b1000
mov eax, 1
jmp 0x4b1002
cmp eax, 0x100
jae 0x4b1000
mov edx, dword [edx + 0x3c]
test byte [eax + edx], 0x10
je 0x4b1000
mov eax, 1
jmp 0x4b1002
xor edx, edx
cmp eax, ecx
setne dl
mov eax, edx
test eax, eax
je 0x4afb91
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 0x4b1124
cmp ebp, dword [ebx + 0x7c]
jae 0x4b115d
mov edx, dword [ebx + 0x7c]
push 1
lea esi, [ebx + 0x1c]
push eax
mov ecx, ebp
call fcn.004b8dc0
add esp, 8
test eax, eax
jne case.0x4afbbe.151
mov esi, dword [esp + 0x158]
xor ecx, ecx
jmp 0x4b115d
mov eax, dword [ebx + 0x1c]
mov edi, dword [ebx + 0x7c]
lea edx, [eax + eax]
sub edi, edx
cmp ebp, edi
ja 0x4b115d
mov dx, word [ebp]
cmp dx, word [ebx + 0x2c]
jne 0x4b115d
cmp eax, 1
je case.0x4afbbe.151
mov ax, word [ebp + 2]
cmp ax, word [ebx + 0x2e]
je case.0x4afbbe.151
jmp 0x4b115d
mov ebx, dword [esp + 0x164]
mov eax, dword [ebx + 0x7c]
cmp ebp, eax
jae 0x4b5c23
add ebp, 2
cmp ebp, eax
jae 0x4b1188
mov cx, word [ebp]
mov edx, 0xfc00
and cx, dx
mov eax, 0xdc00
cmp cx, ax
jne 0x4b1188
add ebp, 2
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b5c5f
add ebp, 2
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4b5c9b
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4b11fc
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 0x4b1210
mov ecx, dword [ecx + 0x3c]
test byte [eax + ecx], 4
jne case.0x4afbbe.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4b5c9b
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4b1262
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.0x4afbbe.151
mov ecx, dword [ecx + 0x3c]
test byte [eax + ecx], 4
je case.0x4afbbe.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4b5c9b
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4b12cc
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 0x4b12e0
mov ecx, dword [ecx + 0x3c]
test byte [eax + ecx], 1
jne case.0x4afbbe.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4b5c9b
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4b1332
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.0x4afbbe.151
mov ecx, dword [ecx + 0x3c]
test byte [eax + ecx], 1
je case.0x4afbbe.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4b5c9b
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4b139c
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 0x4b13b0
mov ecx, dword [ecx + 0x3c]
test byte [eax + ecx], 0x10
jne case.0x4afbbe.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4b5c9b
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4b1402
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.0x4afbbe.151
mov ecx, dword [ecx + 0x3c]
test byte [eax + ecx], 0x10
je case.0x4afbbe.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov edx, dword [esp + 0x164]
mov ecx, dword [edx + 0x7c]
cmp ebp, ecx
jae 0x4b5cd8
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4b146e
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 0x4b14a2
je 0x4b1485
cmp eax, 0xa
je 0x4b14c9
jbe case.0x4afbbe.151
cmp eax, 0xc
jmp 0x4b14b9
cmp ebp, ecx
jae 0x4b14c9
cmp word [ebp], 0xa
jne 0x4b14c9
add ebp, 2
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4afb91
cmp eax, 0x85
je 0x4b14bf
cmp eax, 0x2027
jbe case.0x4afbbe.151
cmp eax, 0x2029
ja case.0x4afbbe.151
cmp dword [edx + 0x68], 0
jne case.0x4afbbe.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b5c5f
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4b151b
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 0x4b154a
je case.0x4afbbe.151
cmp eax, 0xa0
ja 0x4b1543
je case.0x4afbbe.151
cmp eax, 9
je case.0x4afbbe.151
cmp eax, 0x20
jmp 0x4b1575
cmp eax, 0x1680
jmp 0x4b1575
cmp eax, 0x205f
ja 0x4b1570
je case.0x4afbbe.151
cmp eax, 0x2000
jb 0x4b157b
cmp eax, 0x200a
jbe case.0x4afbbe.151
cmp eax, 0x202f
jmp 0x4b1575
cmp eax, 0x3000
je case.0x4afbbe.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b5c5f
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4b15cd
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 0x4b15f0
je 0x4b161d
cmp eax, 0xa0
ja 0x4b15e9
je 0x4b161d
cmp eax, 9
je 0x4b161d
cmp eax, 0x20
jmp 0x4b1617
cmp eax, 0x1680
jmp 0x4b1617
cmp eax, 0x205f
ja 0x4b1612
je 0x4b161d
cmp eax, 0x2000
jb case.0x4afbbe.151
cmp eax, 0x200a
jbe 0x4b161d
cmp eax, 0x202f
jmp 0x4b1617
cmp eax, 0x3000
jne case.0x4afbbe.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b5c5f
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4b166f
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 0x4b1686
je case.0x4afbbe.151
cmp eax, 0xa
jb 0x4b1698
cmp eax, 0xd
jmp 0x4b1692
cmp eax, 0x2028
jb 0x4b1698
cmp eax, 0x2029
jbe case.0x4afbbe.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b5c5f
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4b16ea
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 0x4b1701
je 0x4b1717
cmp eax, 0xa
jb case.0x4afbbe.151
cmp eax, 0xd
jmp 0x4b1711
cmp eax, 0x2028
jb case.0x4afbbe.151
cmp eax, 0x2029
ja case.0x4afbbe.151
add esi, 2
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b5c5f
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4b1769
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 + 0x4c1ce8]
shl ecx, 7
mov edx, eax
and edx, 0x7f
add ecx, edx
movzx edx, word [esi + 2]
movzx ecx, word [ecx*2 + 0x4c3ee8]
lea ecx, [ecx*8 + 0x4c0c08]
cmp edx, 8
ja case.default.0x4b179b
jmp dword [edx*4 + 0x4b7aa8]
cmp dword [esp + 0x14], 0xf
jmp 0x4b18cb
mov cl, byte [ecx + 1]
cmp cl, 9
je 0x4b18ba
cmp cl, 5
je 0x4b18ba
cmp cl, 8
je 0x4b18ba
xor eax, eax
jmp 0x4b18bf
movzx edx, byte [ecx + 1]
movzx eax, word [esi + 4]
xor ecx, ecx
cmp eax, dword [edx*4 + 0x4c0460]
setne cl
xor edx, edx
cmp dword [esp + 0x14], 0x10
sete dl
cmp ecx, edx
jmp 0x4b18cb
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 0x4b18cb
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 0x4b18cb
movzx eax, byte [ecx + 1]
mov eax, dword [eax*4 + 0x4c0460]
cmp eax, 1
je 0x4b18ba
cmp eax, 3
je 0x4b18ba
xor eax, eax
jmp 0x4b18bf
movzx edx, byte [ecx + 1]
cmp dword [edx*4 + 0x4c0460], 6
je 0x4b18ba
cmp eax, 9
je 0x4b18ba
cmp eax, 0xa
je 0x4b18ba
cmp eax, 0xc
je 0x4b18ba
cmp eax, 0xd
je 0x4b18ba
xor eax, eax
jmp 0x4b18bf
movzx edx, byte [ecx + 1]
cmp dword [edx*4 + 0x4c0460], 6
je 0x4b18ba
cmp eax, 9
je 0x4b18ba
cmp eax, 0xa
je 0x4b18ba
cmp eax, 0xb
jmp 0x4b186f
movzx edx, byte [ecx + 1]
mov ecx, dword [edx*4 + 0x4c0460]
cmp ecx, 1
je 0x4b18ba
cmp ecx, 3
je 0x4b18ba
cmp eax, 0x5f
je 0x4b18ba
xor eax, eax
jmp 0x4b18bf
mov eax, 1
xor ecx, ecx
cmp dword [esp + 0x14], 0xf
sete cl
cmp eax, ecx
je case.0x4afbbe.151
add esi, 6
mov dword [esp + 0x158], esi
jmp 0x4afb91
mov eax, dword [esp + 0x164]
mov edi, dword [eax + 0x7c]
cmp ebp, edi
jae 0x4b5c5f
movzx eax, word [ebp]
mov ecx, eax
mov edx, 2
and ecx, 0xfc00
add ebp, edx
cmp ecx, 0xd800
jne 0x4b1928
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 + 0x4c1ce8]
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4c3ee8]
movzx ecx, byte [eax*8 + 0x4c0c09]
cmp dword [ecx*4 + 0x4c0460], edx
je case.0x4afbbe.151
cmp ebp, edi
jae 0x4b19ca
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
mov ecx, 1
cmp ebx, 0xd800
jne 0x4b1995
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 + 0x4c1ce8]
and eax, 0x7f
shl ebx, 7
add ebx, eax
movzx eax, word [ebx*2 + 0x4c3ee8]
movzx eax, byte [eax*8 + 0x4c0c09]
cmp dword [eax*4 + 0x4c0460], edx
jne 0x4b19ca
lea ebp, [ebp + ecx*2]
cmp ebp, edi
jb 0x4b1961
add esi, edx
mov dword [esp + 0x158], esi
jmp 0x4afb91
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 0x4b1a1f
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 0x4b1a1f
mov ebx, dword [eax + 4]
sub ebx, ecx
jmp 0x4b1a30
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.0x4b1a4f
movzx edx, byte [edx + 0x4b7ad4]
jmp dword [edx*4 + 0x4b7acc]
movsx edi, byte [eax + 0x4cfbc6]
add ecx, 2
mov dword [esp + 0x158], ecx
lea ecx, [eax - 0x62]
movsx eax, byte [eax + 0x4cfbce]
and ecx, 1
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4b1ab8
mov dword [esp + 0x14], connect
jmp 0x4b1ab8
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 0x4b1aae
mov dword [esp + 0x14], connect
add ecx, 6
mov dword [esp + 0x158], ecx
test ebx, ebx
je 0x4afb91
jns 0x4b1aca
test edi, edi
je 0x4afb91
mov dword [esp + 0x28], 1
cmp edi, 1
jl 0x4b1b12
jmp 0x4b1ae0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x164]
push ecx
push esi
mov eax, ebx
mov ecx, ebp
call fcn.004af920
add esp, 8
test eax, eax
js 0x4b5d25
lea ebp, [ebp + eax*2]
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, edi
jle 0x4b1ae0
mov eax, dword [esp + 0x14]
cmp edi, eax
je 0x4afb91
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x28], edi
je 0x4b5db6
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
mov edi, dword [esp + 0x164]
mov edx, dword [esp + 0x28]
cmp edx, dword [esp + 0x14]
jge case.0x4afbbe.151
mov eax, dword [esp + 0x18]
push eax
push esi
mov edx, edi
mov eax, ebx
mov ecx, ebp
call fcn.004af920
add esp, 8
test eax, eax
js 0x4b5d70
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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b1b76
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.004af920
add esp, 8
test eax, eax
js 0x4b5ea1
lea ebp, [ebp + eax*2]
jmp 0x4afb91
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.0x4b1c40
movzx edx, byte [edx + 0x4b7ae4]
jmp dword [edx*4 + 0x4b7adc]
movsx edi, byte [eax + 0x4cfbce]
add dword [esp + 0x158], 2
movsx esi, byte [eax + 0x4cfbc6]
lea ecx, [eax - 0x62]
and ecx, 1
mov dword [esp + 0x1c], ecx
test edi, edi
jne 0x4b1ca9
mov edi, SysReAllocString
jmp 0x4b1ca9
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 0x4b1c96
mov edi, SysReAllocString
add eax, 6
mov dword [esp + 0x158], eax
jmp 0x4b1ca9
mov edi, 1
mov esi, edi
mov edx, 1
cmp esi, edx
jl 0x4b1d32
mov ecx, dword [esp + 0x164]
mov eax, dword [ecx + 0x7c]
mov dword [esp + 0x18], eax
cmp ebp, dword [esp + 0x18]
jae 0x4b5ee7
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4b1d01
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 0x4b1d0f
cmp dword [esp + 0x14], 0x6a
jmp 0x4b1d27
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.0x4afbbe.151
inc edx
cmp edx, esi
jle 0x4b1cc4
cmp esi, edi
je 0x4afb91
cmp dword [esp + 0x1c], 0
je 0x4b5f90
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
cmp esi, edi
jge case.0x4afbbe.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b6911
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4b1dd2
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 0x4b5f2b
cmp dword [esp + 0x14], 0x6a
jmp 0x4b5f43
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.0x4b1e14
movzx edx, byte [edx + 0x4b7af4]
jmp dword [edx*4 + 0x4b7aec]
movsx edi, byte [eax + 0x4cfbce]
movsx esi, byte [eax + 0x4cfbc6]
lea ecx, [eax - 0x62]
add ebx, 2
and ecx, 1
mov dword [esp + 0x158], ebx
mov dword [esp + 0x1c], ecx
test edi, edi
jne 0x4b1e78
mov edi, SysReAllocString
jmp 0x4b1e78
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 0x4b1e65
mov edi, SysReAllocString
add ebx, 6
mov dword [esp + 0x158], ebx
jmp 0x4b1e78
mov edi, 1
mov esi, edi
mov dword [esp + 0x28], 1
cmp esi, 1
jl 0x4b1ef8
mov ecx, dword [esp + 0x164]
mov edx, dword [ecx + 0x7c]
mov dword [esp + 0x18], edx
cmp ebp, dword [esp + 0x18]
jae 0x4b6113
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4b1ed4
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.004b8fc0
add esp, 8
test eax, eax
je case.0x4afbbe.151
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, esi
jle 0x4b1e97
cmp esi, edi
je 0x4afb91
cmp dword [esp + 0x1c], 0
je 0x4b6146
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
jmp 0x4b1f50
mov eax, dword [esp + 0x164]
cmp esi, edi
jge case.0x4afbbe.151
cmp ebp, dword [eax + 0x7c]
jae 0x4b6911
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4b1f9b
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.004b8fc0
add esp, 8
test eax, eax
je case.0x4afbbe.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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b1f50
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 0x4b2023
mov eax, 2
mov ecx, dword [esp + 0x164]
mov edx, dword [ecx + 0x7c]
sub edx, ebp
sar edx, 1
cmp eax, edx
jg 0x4b629c
test eax, eax
jle 0x4afb91
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.0x4afbbe.151
test eax, eax
jg 0x4b2041
jmp 0x4afb91
mov edi, dword [esp + 0x164]
cmp ebp, dword [edi + 0x7c]
jae 0x4b62d1
movzx eax, word [esi + 2]
mov ecx, eax
and ecx, 0xfc00
mov edx, 1
cmp ecx, 0xd800
jne 0x4b20af
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 0x4b20ec
mov edx, 0xff
cmp cx, dx
ja 0x4b20cb
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.0x4afbbe.151
add esi, 4
mov dword [esp + 0x158], esi
add ebp, 2
jmp 0x4afb91
mov edi, ecx
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4b211d
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 0x4afb91
mov edx, eax
shr edx, 7
movzx edx, byte [edx + 0x4c1ce8]
shl edx, 7
mov esi, eax
and esi, 0x7f
add edx, esi
movzx edx, word [edx*2 + 0x4c3ee8]
mov edx, dword [edx*8 + 0x4c0c0c]
add edx, eax
cmp ecx, edx
je 0x4afb91
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 0x4b224a
mov dword [esp + 0x20], 1
movzx ebx, word [esi + 2]
xor edi, edi
mov dword [esp + 0x14], ebx
cmp eax, 0x28
je 0x4b21a3
mov dword [esp + 0x1c], ecx
cmp eax, 0x35
jne 0x4b21ab
mov dword [esp + 0x1c], 1
add esi, 4
mov dword [esp + 0x158], esi
jmp 0x4b224a
xor edi, edi
add esi, 2
mov dword [esp + 0x20], 1
mov dword [esp + 0x158], esi
jmp 0x4b2242
mov edi, 1
add esi, 2
mov dword [esp + 0x20], edi
mov dword [esp + 0x158], esi
jmp 0x4b2242
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 0x4b224a
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 + 0x4cfc28]
mov ecx, eax
movsx eax, byte [eax + 0x4cfc30]
and ecx, 1
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4b224a
mov dword [esp + 0x14], connect
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 0x4b2293
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 0x4b260c
cmp edx, 0x2e
jl 0x4b22ec
mov edx, esi
shr edx, 7
movzx eax, byte [edx + 0x4c1ce8]
shl eax, 7
mov ecx, esi
and ecx, 0x7f
add eax, ecx
movzx edx, word [eax*2 + 0x4c3ee8]
mov eax, dword [edx*8 + 0x4c0c0c]
add eax, esi
cmp eax, esi
je 0x4b22ec
lea ecx, [esp + 0x5c]
call fcn.004b8f60
mov dword [esp + 0x18], eax
jmp 0x4b22f4
mov dword [esp + 0x18], 0
mov dword [esp + 0x28], 1
cmp edi, 1
jl 0x4b2410
mov eax, dword [esp + 0x164]
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x3c], eax
sub eax, ebx
mov dword [esp + 0x34], eax
jmp 0x4b2324
mov eax, dword [esp + 0x34]
cmp ebp, eax
ja 0x4b2385
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
add eax, eax
mov esi, ebp
cmp eax, 4
jb 0x4b2354
lea ecx, [ecx]
mov edx, dword [esi]
cmp edx, dword [ecx]
jne 0x4b2385
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x4b2340
test eax, eax
je 0x4b2378
mov dl, byte [ecx]
cmp dl, byte [esi]
jne 0x4b2385
cmp eax, 1
jbe 0x4b2378
mov dl, byte [ecx + 1]
cmp dl, byte [esi + 1]
jne 0x4b2385
cmp eax, 2
jbe 0x4b2378
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x4b2385
mov eax, dword [esp + 0x24]
lea ebp, [ebp + eax*2]
jmp 0x4b23ff
cmp dword [esp + 0x18], 0
jle 0x4b62fc
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
add edx, edx
sub ecx, edx
cmp ebp, ecx
ja 0x4b62fc
mov eax, dword [esp + 0x18]
add eax, eax
lea ecx, [esp + 0x5c]
mov esi, ebp
cmp eax, 4
jb 0x4b23cd
mov ebx, dword [esi]
cmp ebx, dword [ecx]
jne 0x4b62fc
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x4b23b5
test eax, eax
je 0x4b23fd
mov bl, byte [ecx]
cmp bl, byte [esi]
jne 0x4b62fc
cmp eax, 1
jbe 0x4b23fd
mov bl, byte [ecx + 1]
cmp bl, byte [esi + 1]
jne 0x4b62fc
cmp eax, 2
jbe 0x4b23fd
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x4b62fc
add ebp, edx
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, edi
jle 0x4b2320
cmp edi, dword [esp + 0x14]
je 0x4afb91
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x28], edi
jne 0x4b631e
mov dword [esp + 0x1c], ebp
cmp edi, dword [esp + 0x14]
jge 0x4b2565
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 0x4b2455
mov ecx, dword [esp + 0x34]
cmp ebp, ecx
ja 0x4b24b9
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
add eax, eax
mov esi, ebp
cmp eax, 4
jb 0x4b2488
mov edi, edi
mov edi, dword [esi]
cmp edi, dword [ecx]
jne 0x4b24b9
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x4b2470
test eax, eax
je 0x4b24ac
mov bl, byte [ecx]
cmp bl, byte [esi]
jne 0x4b24b9
cmp eax, 1
jbe 0x4b24ac
mov bl, byte [ecx + 1]
cmp bl, byte [esi + 1]
jne 0x4b24b9
cmp eax, 2
jbe 0x4b24ac
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x4b24b9
mov eax, dword [esp + 0x24]
lea ebp, [ebp + eax*2]
jmp 0x4b251f
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x4b2534
lea edi, [eax + eax]
mov ecx, edx
sub ecx, edi
cmp ebp, ecx
ja 0x4b2534
add eax, eax
lea ecx, [esp + 0x5c]
mov esi, ebp
cmp eax, 4
jb 0x4b24f9
mov ebx, dword [esi]
cmp ebx, dword [ecx]
jne 0x4b2534
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x4b24e1
test eax, eax
je 0x4b251d
mov bl, byte [ecx]
cmp bl, byte [esi]
jne 0x4b2534
cmp eax, 1
jbe 0x4b251d
mov bl, byte [ecx + 1]
cmp bl, byte [esi + 1]
jne 0x4b2534
cmp eax, 2
jbe 0x4b251d
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x4b2534
add ebp, edi
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0x14]
jl 0x4b2451
jmp 0x4b2565
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je 0x4b2565
cmp ebp, dword [eax + 0x7c]
jb 0x4b2565
cmp ebp, dword [eax + 0x88]
jbe 0x4b2565
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jg 0x4b5c4f
cmp dword [esp + 0x20], 0
jne 0x4afb91
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
cmp ebp, dword [esp + 0x1c]
je case.0x4afbbe.151
mov dx, word [ebp - 2]
sub ebp, 2
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4b25d8
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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b25b2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp edx, 0x2e
jl 0x4b2783
cmp esi, 0x7f
jbe 0x4b2647
mov ecx, esi
shr ecx, 7
movzx edx, byte [ecx + 0x4c1ce8]
shl edx, 7
mov eax, esi
and eax, 0x7f
add edx, eax
movzx ecx, word [edx*2 + 0x4c3ee8]
mov edx, dword [ecx*8 + 0x4c0c0c]
add edx, esi
mov dword [esp + 0x28], edx
jmp 0x4b2669
cmp esi, 0xff
ja 0x4b2663
mov edx, dword [esp + 0x164]
mov eax, dword [edx + 0x38]
movzx edx, byte [eax + esi]
mov dword [esp + 0x28], edx
jmp 0x4b2669
mov edx, esi
mov dword [esp + 0x28], esi
mov ecx, 1
cmp edi, ecx
jl 0x4b269c
mov eax, dword [esp + 0x164]
mov ebx, dword [eax + 0x7c]
cmp ebp, ebx
jae 0x4b6514
movzx eax, word [ebp]
cmp esi, eax
je 0x4b2694
cmp edx, eax
jne case.0x4afbbe.151
inc ecx
add ebp, 2
cmp ecx, edi
jle 0x4b267c
mov ebx, dword [esp + 0x14]
cmp edi, ebx
je 0x4afb91
cmp dword [esp + 0x1c], 0
jne 0x4b654e
mov dword [esp + 0x1c], ebp
mov eax, edi
cmp edi, ebx
jge 0x4b2716
mov ecx, dword [esp + 0x164]
mov edi, dword [ecx + 0x7c]
jmp 0x4b26d7
mov ecx, dword [esp + 0x164]
cmp ebp, edi
jae 0x4b26f1
movzx ecx, word [ebp]
cmp esi, ecx
je 0x4b26e7
cmp edx, ecx
jne 0x4b2716
inc eax
add ebp, 2
cmp eax, ebx
jl 0x4b26d0
jmp 0x4b2716
cmp dword [ecx + 0x8c], 0
je 0x4b2716
cmp ebp, dword [ecx + 0x88]
jbe 0x4b2716
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x8c], eax
jg 0x4b5c4f
cmp dword [esp + 0x20], 0
jne 0x4afb91
cmp ebp, dword [esp + 0x1c]
jb 0x4b2776
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.004afad0
add esp, 0x1c
sub ebp, 2
test eax, eax
jne 0x4b78b6
cmp ebp, dword [esp + 0x1c]
jae 0x4b2740
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 0x4b27b2
mov ecx, dword [edx + 0x7c]
cmp ebp, ecx
jae 0x4b6604
movzx ebx, word [ebp]
add ebp, 2
cmp esi, ebx
jne case.0x4afbbe.151
inc eax
cmp eax, edi
jle 0x4b2796
cmp edi, dword [esp + 0x14]
je 0x4afb91
cmp dword [esp + 0x1c], 0
jne 0x4b6630
mov ebx, ebp
mov dword [esp + 0x1c], ebx
mov eax, edi
cmp edi, dword [esp + 0x14]
jge 0x4b281d
mov ecx, dword [edx + 0x7c]
lea esp, [esp]
cmp ebp, ecx
jae 0x4b27f8
movzx edi, word [ebp]
cmp esi, edi
jne 0x4b281d
inc eax
add ebp, 2
cmp eax, dword [esp + 0x14]
jl 0x4b27e0
jmp 0x4b281d
cmp dword [edx + 0x8c], 0
je 0x4b281d
cmp ebp, dword [edx + 0x88]
jbe 0x4b281d
mov eax, 1
mov dword [edx + 0x64], eax
cmp dword [edx + 0x8c], eax
jg 0x4b5c4f
cmp dword [esp + 0x20], 0
jne 0x4afb91
cmp ebp, ebx
jb 0x4b287b
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.004afad0
add esp, 0x1c
sub ebp, 2
test eax, eax
jne 0x4b78b6
cmp ebp, dword [esp + 0x1c]
jae 0x4b2845
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 0x4b62d1
movzx ecx, word [ebp]
mov eax, ecx
and eax, 0xfc00
add ebp, 2
cmp eax, 0xd800
jne 0x4b28ca
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 0x4b293e
cmp eax, 0x7f
jbe 0x4b290f
mov edx, eax
shr edx, 7
movzx edx, byte [edx + 0x4c1ce8]
shl edx, 7
mov esi, eax
and esi, 0x7f
add edx, esi
movzx edx, word [edx*2 + 0x4c3ee8]
mov edx, dword [edx*8 + 0x4c0c0c]
add edx, eax
jmp 0x4b2921
cmp eax, 0xff
ja 0x4b291f
mov edx, dword [edi + 0x38]
movzx edx, byte [edx + eax]
jmp 0x4b2921
mov edx, eax
cmp eax, ecx
je case.0x4afbbe.151
cmp edx, ecx
jne 0x4afb91
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp eax, ecx
jne 0x4afb91
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 0x4b2a19
movzx edi, word [esi + 2]
xor ecx, ecx
mov dword [esp + 0x14], edi
cmp eax, 0x42
je 0x4b297b
mov dword [esp + 0x1c], ecx
cmp eax, 0x4f
jne 0x4b2983
mov dword [esp + 0x1c], 1
add esi, 4
jmp 0x4b2a19
xor ecx, ecx
mov dword [esp + 0x20], 1
add esi, 2
jmp 0x4b2a11
mov ecx, 1
mov dword [esp + 0x20], ecx
add esi, 2
jmp 0x4b2a11
mov eax, 1
xor ecx, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], eax
add esi, 2
jmp 0x4b2a19
movzx eax, word [esi + 2]
xor ecx, ecx
mov dword [esp + 0x20], 1
mov dword [esp + 0x14], eax
add esi, 4
jmp 0x4b2a19
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 + 0x4cfc28]
movsx eax, byte [eax + 0x4cfc30]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4b2a19
mov dword [esp + 0x14], connect
movzx edi, word [esi]
add esi, 2
mov dword [esp + 0x24], edi
mov dword [esp + 0x158], esi
cmp edx, 0x48
jl 0x4b2c50
cmp edi, 0x7f
jbe 0x4b2a65
mov edx, edi
shr edx, 7
movzx eax, byte [edx + 0x4c1ce8]
shl eax, 7
mov edx, edi
and edx, 0x7f
add eax, edx
movzx eax, word [eax*2 + 0x4c3ee8]
mov esi, dword [eax*8 + 0x4c0c0c]
add esi, edi
mov dword [esp + 0x28], esi
jmp 0x4b2a87
cmp edi, 0xff
ja 0x4b2a81
mov edx, dword [esp + 0x164]
mov eax, dword [edx + 0x38]
movzx esi, byte [eax + edi]
mov dword [esp + 0x28], esi
jmp 0x4b2a87
mov esi, edi
mov dword [esp + 0x28], edi
mov edx, 1
cmp ecx, edx
jl 0x4b2af4
mov eax, dword [esp + 0x164]
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x18], eax
cmp ebp, dword [esp + 0x18]
jae 0x4b6113
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
add ebp, 2
cmp ebx, 0xd800
jne 0x4b2adf
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.0x4afbbe.151
cmp esi, eax
je case.0x4afbbe.151
inc edx
cmp edx, ecx
jle 0x4b2aa2
mov esi, dword [esp + 0x14]
cmp ecx, esi
je 0x4afb91
cmp dword [esp + 0x1c], 0
jne 0x4b66e0
mov dword [esp + 0x1c], ebp
cmp ecx, esi
jge 0x4b2b9e
mov edx, dword [esp + 0x164]
mov edi, dword [edx + 0x7c]
mov edx, 1
cmp ebp, edi
jae 0x4b2b77
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4b2b60
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 0x4b2b9e
cmp dword [esp + 0x28], eax
je 0x4b2b9e
inc ecx
lea ebp, [ebp + edx*2]
cmp ecx, esi
jl 0x4b2b21
jmp 0x4b2b9e
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je 0x4b2b9e
cmp ebp, dword [eax + 0x88]
jbe 0x4b2b9e
mov dword [eax + 0x64], edx
cmp dword [eax + 0x8c], edx
jg 0x4b5c4f
cmp dword [esp + 0x20], 0
jne 0x4afb91
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
mov ecx, ebp
sub ebp, 2
cmp ecx, dword [esp + 0x1c]
je case.0x4afbbe.151
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4b2c13
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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b2beb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x164]
mov edx, 1
cmp ecx, edx
jl 0x4b2cb6
mov esi, dword [eax + 0x7c]
cmp ebp, esi
jae 0x4b6113
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
add ebp, 2
cmp ebx, 0xd800
jne 0x4b2ca2
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.0x4afbbe.151
inc edx
cmp edx, ecx
jle 0x4b2c67
mov eax, dword [esp + 0x164]
mov esi, dword [esp + 0x14]
cmp ecx, esi
je 0x4afb91
cmp dword [esp + 0x1c], 0
jne 0x4b67c9
mov dword [esp + 0x1c], ebp
cmp ecx, esi
jge 0x4b2d57
mov edi, dword [eax + 0x7c]
jmp 0x4b2ce7
mov eax, dword [esp + 0x164]
mov edx, 1
cmp ebp, edi
jae 0x4b2d37
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4b2d26
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 0x4b2d57
inc ecx
lea ebp, [ebp + edx*2]
cmp ecx, esi
jl 0x4b2ce0
jmp 0x4b2d57
cmp dword [eax + 0x8c], 0
je 0x4b2d57
cmp ebp, dword [eax + 0x88]
jbe 0x4b2d57
mov dword [eax + 0x64], edx
cmp dword [eax + 0x8c], edx
jg 0x4b5c4f
cmp dword [esp + 0x20], 0
jne 0x4afb91
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
mov ecx, ebp
sub ebp, 2
cmp ecx, dword [esp + 0x1c]
je case.0x4afbbe.151
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4b2dcc
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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b2da4
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 0x4b2ed2
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 0x4b2ed2
xor ebx, ebx
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], ebx
add esi, 2
jmp 0x4b2eca
mov ebx, 1
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
add esi, 2
jmp 0x4b2eca
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 0x4b2ed2
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 0x4b2ed2
lea eax, [edx - 0x55]
movsx ebx, byte [eax + 0x4cfc28]
mov edx, eax
movsx eax, byte [eax + 0x4cfc30]
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 0x4b2ed2
mov dword [esp + 0x14], connect
movzx eax, word [esi]
add esi, 2
mov dword [esp + 0x18], eax
mov dword [esp + 0x158], esi
cmp eax, 0x10
je 0x4b2efa
cmp eax, 0xf
je 0x4b2efa
mov edi, dword [esp + 0x2c]
or eax, 0xffffffff
mov dword [esp + 0x28], eax
jmp 0x4b2f23
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 0x4b3029
cmp eax, ecx
jl 0x4b3513
cmp eax, 8
ja case.default.0x4b179b
jmp dword [eax*4 + 0x4b7afc]
cmp edi, ecx
jne case.0x4afbbe.151
mov ecx, 1
cmp ebx, ecx
jl 0x4b3029
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4b68ab
movzx eax, word [ebp]
and eax, 0xfc00
add ebp, 2
cmp eax, 0xd800
jne 0x4b2f80
add ebp, 2
inc ecx
cmp ecx, ebx
jle 0x4b2f62
jmp 0x4b3030
mov ecx, 1
cmp ebx, ecx
jl 0x4b3029
mov eax, dword [esp + 0x164]
mov edx, dword [eax + 0x7c]
cmp ebp, edx
jae 0x4b68d7
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4b2fdc
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 + 0x4c1ce8]
and eax, 0x7f
shl esi, 7
add esi, eax
movzx eax, word [esi*2 + 0x4c3ee8]
movzx eax, byte [eax*8 + 0x4c0c09]
cmp eax, 9
je 0x4b3013
cmp eax, 5
je 0x4b3013
cmp eax, 8
je 0x4b3013
xor eax, eax
jmp 0x4b3018
mov eax, 1
cmp eax, edi
je case.0x4afbbe.151
inc ecx
cmp ecx, ebx
jle 0x4b2fa1
mov esi, dword [esp + 0x164]
mov edi, dword [esp + 0x14]
cmp ebx, edi
je 0x4afb91
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 0x28]
jne 0x4b6949
mov dword [esp + 0x1c], ebp
test eax, eax
js 0x4b447c
cmp eax, 8
ja case.default.0x4b179b
jmp dword [eax*4 + 0x4b7b20]
mov ecx, 1
cmp ebx, ecx
jl 0x4b3029
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
cmp ebp, edx
jae 0x4b690a
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4b30b5
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 + 0x4c1ce8]
and eax, 0x7f
shl esi, 7
add esi, eax
movzx eax, word [esi*2 + 0x4c3ee8]
movzx eax, byte [eax*8 + 0x4c0c09]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x3c], ecx
xor ecx, ecx
cmp dword [eax*4 + 0x4c0460], esi
sete cl
cmp ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
je case.0x4afbbe.151
inc ecx
cmp ecx, ebx
jle 0x4b307a
jmp 0x4b3029
mov ecx, 1
cmp ebx, ecx
jl 0x4b3029
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
cmp ebp, edx
jae 0x4b690a
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4b315b
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 + 0x4c1ce8]
and eax, 0x7f
shl esi, 7
add esi, eax
movzx eax, word [esi*2 + 0x4c3ee8]
movzx eax, byte [eax*8 + 0x4c0c09]
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.0x4afbbe.151
inc ecx
cmp ecx, ebx
jle 0x4b3120
jmp 0x4b3029
mov ecx, 1
cmp ebx, ecx
jl 0x4b3029
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
cmp ebp, edx
jae 0x4b690a
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4b31f6
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 + 0x4c1ce8]
and eax, 0x7f
shl esi, 7
add esi, eax
movzx eax, word [esi*2 + 0x4c3ee8]
movzx eax, byte [eax*8 + 0x4c0c08]
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.0x4afbbe.151
inc ecx
cmp ecx, ebx
jle 0x4b31bb
jmp 0x4b3029
mov ecx, 1
cmp ebx, ecx
jl 0x4b3029
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
cmp ebp, edx
jae 0x4b68d7
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4b3291
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 + 0x4c1ce8]
and eax, 0x7f
shl esi, 7
add esi, eax
movzx eax, word [esi*2 + 0x4c3ee8]
movzx eax, byte [eax*8 + 0x4c0c09]
mov eax, dword [eax*4 + 0x4c0460]
cmp eax, 1
je 0x4b32ca
cmp eax, 3
je 0x4b32ca
xor eax, eax
jmp 0x4b32cf
mov eax, 1
cmp eax, edi
je case.0x4afbbe.151
inc ecx
cmp ecx, ebx
jle 0x4b3256
jmp 0x4b3029
mov ecx, 1
cmp ebx, ecx
jl 0x4b3029
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
lea edi, [ecx + 5]
cmp ebp, edx
jae 0x4b68d7
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4b333a
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 + 0x4c1ce8]
shl esi, 7
mov ebx, eax
and ebx, 0x7f
add esi, ebx
movzx esi, word [esi*2 + 0x4c3ee8]
movzx esi, byte [esi*8 + 0x4c0c09]
cmp dword [esi*4 + 0x4c0460], edi
je 0x4b3381
cmp eax, 9
je 0x4b3381
cmp eax, 0xa
je 0x4b3381
cmp eax, 0xc
je 0x4b3381
cmp eax, 0xd
je 0x4b3381
xor eax, eax
jmp 0x4b3386
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4afbbe.151
mov ebx, dword [esp + 0x24]
inc ecx
cmp ecx, ebx
jle 0x4b32ff
jmp 0x4b3029
mov ecx, 1
cmp ebx, ecx
jl 0x4b3029
mov eax, dword [esp + 0x164]
mov edx, dword [eax + 0x7c]
lea edi, [ecx + 5]
cmp ebp, edx
jae 0x4b68d7
movzx eax, word [ebp]
mov esi, eax
and esi, 0xfc00
add ebp, 2
cmp esi, 0xd800
jne 0x4b33f7
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 + 0x4c1ce8]
shl esi, 7
mov ebx, eax
and ebx, 0x7f
add esi, ebx
movzx esi, word [esi*2 + 0x4c3ee8]
movzx esi, byte [esi*8 + 0x4c0c09]
cmp dword [esi*4 + 0x4c0460], edi
je 0x4b3443
cmp eax, 9
je 0x4b3443
cmp eax, 0xa
je 0x4b3443
cmp eax, 0xb
je 0x4b3443
cmp eax, 0xc
je 0x4b3443
cmp eax, 0xd
je 0x4b3443
xor eax, eax
jmp 0x4b3448
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4afbbe.151
mov ebx, dword [esp + 0x24]
inc ecx
cmp ecx, ebx
jle 0x4b33bc
jmp 0x4b3029
mov edx, 1
cmp ebx, edx
jl 0x4b3029
mov ecx, dword [esp + 0x164]
mov edi, dword [ecx + 0x7c]
cmp ebp, edi
jae 0x4b690a
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4b34b6
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 + 0x4c1ce8]
shl ecx, 7
mov esi, eax
and esi, 0x7f
add ecx, esi
movzx ecx, word [ecx*2 + 0x4c3ee8]
movzx ecx, byte [ecx*8 + 0x4c0c09]
mov ecx, dword [ecx*4 + 0x4c0460]
cmp ecx, 1
je 0x4b34f6
cmp ecx, 3
je 0x4b34f6
cmp eax, 0x5f
je 0x4b34f6
xor eax, eax
jmp 0x4b34fb
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4afbbe.151
inc edx
cmp edx, ebx
jle 0x4b347b
jmp 0x4b3029
mov eax, dword [esp + 0x18]
cmp eax, 0x16
jne 0x4b3625
lea esi, [eax - 0x15]
cmp ebx, esi
jl 0x4b3029
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
cmp ebp, edx
jae 0x4b690a
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4b3570
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 + 0x4c1ce8]
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4c3ee8]
movzx ecx, byte [eax*8 + 0x4c0c09]
cmp dword [ecx*4 + 0x4c0460], 2
je case.0x4afbbe.151
cmp ebp, edx
jae 0x4b3617
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
mov ecx, 1
cmp edi, 0xd800
jne 0x4b35e1
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 + 0x4c1ce8]
and eax, 0x7f
shl edi, 7
add edi, eax
movzx eax, word [edi*2 + 0x4c3ee8]
movzx eax, byte [eax*8 + 0x4c0c09]
cmp dword [eax*4 + 0x4c0460], 2
jne 0x4b3617
lea ebp, [ebp + ecx*2]
cmp ebp, edx
jb 0x4b35aa
inc esi
cmp esi, ebx
jle 0x4b3535
jmp 0x4b3029
add eax, 0xfffffffa
cmp eax, 0xf
ja case.default.0x4b179b
jmp dword [eax*4 + 0x4b7b44]
mov edi, 1
cmp ebx, edi
jl 0x4b3029
mov ecx, dword [esp + 0x164]
lea esp, [esp]
cmp ebp, dword [ecx + 0x7c]
jae 0x4b68de
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x4b368b
mov ecx, dword [esp + 0x164]
mov edx, dword [ecx + 0x7c]
push 1
lea esi, [ecx + 0x1c]
push eax
mov ecx, ebp
call fcn.004b8dc0
add esp, 8
test eax, eax
jne case.0x4afbbe.151
mov ecx, dword [esp + 0x164]
jmp 0x4b36bb
mov eax, dword [ecx + 0x1c]
mov esi, dword [ecx + 0x7c]
lea edx, [eax + eax]
sub esi, edx
cmp ebp, esi
ja 0x4b36bb
mov dx, word [ebp]
cmp dx, word [ecx + 0x2c]
jne 0x4b36bb
cmp eax, 1
je case.0x4afbbe.151
mov ax, word [ebp + 2]
cmp ax, word [ecx + 0x2e]
je case.0x4afbbe.151
add ebp, 2
cmp ebp, dword [ecx + 0x7c]
jae 0x4b36dc
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov eax, 0xdc00
cmp dx, ax
jne 0x4b36dc
add ebp, 2
inc edi
cmp edi, ebx
jle 0x4b3650
jmp 0x4b3029
mov eax, 1
cmp ebx, eax
jl 0x4b3029
mov esi, dword [esp + 0x164]
mov ecx, dword [esi + 0x7c]
cmp ebp, ecx
jae 0x4b68ab
add ebp, 2
cmp ebp, ecx
jae 0x4b3729
mov dx, word [ebp]
mov edi, 0xfc00
and dx, di
mov edi, 0xdc00
cmp dx, di
jne 0x4b3729
add ebp, 2
inc eax
cmp eax, ebx
jle 0x4b3701
jmp 0x4b3030
mov esi, dword [esp + 0x164]
mov ecx, dword [esi + 0x7c]
lea eax, [ebx + ebx]
sub ecx, eax
cmp ebp, ecx
ja case.0x4afbbe.151
add ebp, eax
jmp 0x4b3030
mov ecx, 1
cmp ebx, ecx
jl 0x4b3029
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4b691d
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4b37a3
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 0x4b37c8
je 0x4b37b8
cmp eax, 0xa
je 0x4b37e7
add eax, 0xfffffff5
jmp 0x4b37d4
cmp ebp, edx
jae 0x4b37e7
cmp word [ebp], 0xa
jne 0x4b37e7
add ebp, 2
jmp 0x4b37e7
cmp eax, 0x85
je 0x4b37dd
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x4afbbe.151
cmp dword [esi + 0x68], 0
jne case.0x4afbbe.151
inc ecx
cmp ecx, ebx
jle 0x4b3768
jmp 0x4b3030
mov ecx, 1
cmp ebx, ecx
jl 0x4b3029
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
lea esp, [esp]
cmp ebp, edx
jae 0x4b691d
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4b384b
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 0x4b387d
je case.0x4afbbe.151
cmp eax, 0xa0
ja 0x4b3876
je case.0x4afbbe.151
cmp eax, 9
je case.0x4afbbe.151
cmp eax, 0x20
jmp 0x4b38a8
cmp eax, 0x1680
jmp 0x4b38a8
cmp eax, 0x205f
ja 0x4b38a3
je case.0x4afbbe.151
cmp eax, 0x2000
jb 0x4b38ae
cmp eax, 0x200a
jbe case.0x4afbbe.151
cmp eax, 0x202f
jmp 0x4b38a8
cmp eax, 0x3000
je case.0x4afbbe.151
inc ecx
cmp ecx, ebx
jle 0x4b3810
jmp 0x4b3030
mov ecx, 1
cmp ebx, ecx
jl 0x4b3029
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4b691d
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4b390e
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 0x4b3943
je 0x4b3970
cmp eax, 0xa0
ja 0x4b3939
je 0x4b3970
cmp eax, 9
je 0x4b3970
cmp eax, 0x20
jmp 0x4b396a
cmp eax, 0x1680
jmp 0x4b396a
cmp eax, 0x205f
ja 0x4b3965
je 0x4b3970
cmp eax, 0x2000
jb case.0x4afbbe.151
cmp eax, 0x200a
jbe 0x4b3970
cmp eax, 0x202f
jmp 0x4b396a
cmp eax, 0x3000
jne case.0x4afbbe.151
inc ecx
cmp ecx, ebx
jle 0x4b38d3
jmp 0x4b3030
mov ecx, 1
cmp ebx, ecx
jl 0x4b3029
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4b691d
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4b39d4
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 0x4b39eb
je case.0x4afbbe.151
cmp eax, 0xa
jb 0x4b39fd
cmp eax, 0xd
jmp 0x4b39f7
cmp eax, 0x2028
jb 0x4b39fd
cmp eax, 0x2029
jbe case.0x4afbbe.151
inc ecx
cmp ecx, ebx
jle 0x4b3995
jmp 0x4b3030
mov ecx, 1
cmp ebx, ecx
jl 0x4b3029
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
mov edi, edi
cmp ebp, edx
jae 0x4b691d
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4b3a5f
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 0x4b3a70
je 0x4b3a7e
add eax, 0xfffffff6
cmp eax, 3
jmp 0x4b3a78
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x4afbbe.151
inc ecx
cmp ecx, ebx
jle 0x4b3a20
jmp 0x4b3030
mov ecx, 1
cmp ebx, ecx
jl 0x4b3029
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
nop
cmp ebp, edx
jae 0x4b68ab
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
add ebp, 2
cmp edi, 0xd800
jne 0x4b3adf
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 0x4b3af3
mov edi, dword [esi + 0x3c]
test byte [eax + edi], 4
jne case.0x4afbbe.151
inc ecx
cmp ecx, ebx
jle 0x4b3aa0
jmp 0x4b3030
mov ecx, 1
cmp ebx, ecx
jl 0x4b3029
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4b691d
movzx eax, word [ebp]
mov edi, 0x80
cmp ax, di
jae case.0x4afbbe.151
mov edi, dword [esi + 0x3c]
test byte [eax + edi], 4
je case.0x4afbbe.151
inc ecx
add ebp, 2
cmp ecx, ebx
jle 0x4b3b14
jmp 0x4b3030
mov ecx, 1
cmp ebx, ecx
jl 0x4b3029
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
nop
cmp ebp, edx
jae 0x4b68ab
movzx eax, word [ebp]
mov edi, 0x80
cmp ax, di
jae 0x4b3b83
mov edi, dword [esi + 0x3c]
test byte [eax + edi], 1
jne case.0x4afbbe.151
add ebp, 2
cmp ebp, edx
jae 0x4b3ba7
mov ax, word [ebp]
mov edi, 0xfc00
and ax, di
mov edi, 0xdc00
cmp ax, di
jne 0x4b3ba7
add ebp, 2
inc ecx
cmp ecx, ebx
jle 0x4b3b60
jmp 0x4b3030
mov ecx, 1
cmp ebx, ecx
jl 0x4b3029
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4b691d
movzx eax, word [ebp]
mov edi, 0x80
cmp ax, di
jae case.0x4afbbe.151
mov edi, dword [esi + 0x3c]
test byte [eax + edi], 1
je case.0x4afbbe.151
inc ecx
add ebp, 2
cmp ecx, ebx
jle 0x4b3bc8
jmp 0x4b3030
mov ecx, 1
cmp ebx, ecx
jl 0x4b3029
mov esi, dword [esp + 0x164]
mov edx, dword [esi + 0x7c]
cmp ebp, edx
jae 0x4b68ab
movzx eax, word [ebp]
mov edi, 0x80
cmp ax, di
jae 0x4b3c36
mov edi, dword [esi + 0x3c]
test byte [eax + edi], 0x10
jne case.0x4afbbe.151
add ebp, 2
cmp ebp, edx
jae 0x4b3c5a
mov ax, word [ebp]
mov edi, 0xfc00
and ax, di
mov edi, 0xdc00
cmp ax, di
jne 0x4b3c5a
add ebp, 2
inc ecx
cmp ecx, ebx
jle 0x4b3c13
jmp 0x4b3030
mov esi, dword [esp + 0x164]
mov ecx, 1
cmp ebx, ecx
jl 0x4b3030
mov edx, dword [esi + 0x7c]
jmp 0x4b3c80
cmp ebp, edx
jae 0x4b691d
movzx eax, word [ebp]
mov edi, 0x80
cmp ax, di
jae case.0x4afbbe.151
mov edi, dword [esi + 0x3c]
test byte [eax + edi], 0x10
je case.0x4afbbe.151
inc ecx
add ebp, 2
cmp ecx, ebx
jle 0x4b3c80
jmp 0x4b3030
mov ecx, ebx
cmp ebx, edi
jge 0x4b43cd
mov edx, dword [esp + 0x164]
mov edx, dword [edx + 0x7c]
mov eax, 1
cmp ebp, edx
jae 0x4b3d0b
mov si, word [ebp]
mov edi, 0xfc00
and si, di
mov edi, 0xd800
cmp si, di
jne 0x4b3cf0
mov eax, 2
cmp dword [esp + 0x2c], 0
jne 0x4b43cd
inc ecx
lea ebp, [ebp + eax*2]
cmp ecx, dword [esp + 0x14]
jl 0x4b3cc8
jmp 0x4b43cd
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je 0x4b43cd
mov ecx, eax
cmp ebp, dword [ecx + 0x88]
jbe 0x4b43cd
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jmp 0x4b43c7
mov edx, ebx
cmp ebx, edi
jge 0x4b43cd
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4b3d67
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4b3f63
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4b3daa
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 + 0x4c1ce8]
and eax, 0x7f
shl ebx, 7
add ebx, eax
movzx eax, word [ebx*2 + 0x4c3ee8]
movzx eax, byte [eax*8 + 0x4c0c09]
cmp eax, 9
je 0x4b3de1
cmp eax, 5
je 0x4b3de1
cmp eax, 8
je 0x4b3de1
xor eax, eax
jmp 0x4b3de6
mov eax, 1
cmp eax, dword [esp + 0x2c]
je 0x4b43cd
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4b3d60
jmp 0x4b43cd
mov edx, ebx
cmp ebx, edi
jge 0x4b43cd
mov ecx, dword [esp + 0x164]
mov esi, dword [ecx + 0x7c]
mov edi, dword [esp + 0x38]
mov eax, ecx
jmp 0x4b3e27
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4b3f63
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4b3e6a
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 + 0x4c1ce8]
shl ebx, 7
and eax, 0x7f
add ebx, eax
movzx eax, word [ebx*2 + 0x4c3ee8]
movzx eax, byte [eax*8 + 0x4c0c09]
xor ebx, ebx
cmp dword [eax*4 + 0x4c0460], edi
sete bl
cmp ebx, dword [esp + 0x2c]
je 0x4b43cd
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, dword [esp + 0x14]
jl 0x4b3e20
jmp 0x4b43cd
mov edx, ebx
cmp ebx, edi
jge 0x4b43cd
mov ecx, dword [esp + 0x164]
mov esi, dword [ecx + 0x7c]
mov edi, dword [esp + 0x14]
mov ecx, 1
cmp ebp, esi
jae 0x4b3f5c
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4b3f13
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 + 0x4c1ce8]
shl ebx, 7
and eax, 0x7f
add ebx, eax
movzx eax, word [ebx*2 + 0x4c3ee8]
movzx eax, byte [eax*8 + 0x4c0c09]
xor ebx, ebx
cmp eax, dword [esp + 0x38]
sete bl
cmp ebx, dword [esp + 0x2c]
je 0x4b43cd
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4b3ed0
jmp 0x4b43cd
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je 0x4b43cd
cmp ebp, dword [eax + 0x88]
jbe 0x4b43cd
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jmp 0x4b43c7
mov edx, ebx
cmp ebx, edi
jge 0x4b43cd
mov ecx, dword [esp + 0x164]
mov esi, dword [ecx + 0x7c]
mov edi, dword [esp + 0x14]
mov ecx, 1
cmp ebp, esi
jae 0x4b3f5c
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4b3fe1
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 + 0x4c1ce8]
shl ebx, 7
and eax, 0x7f
add ebx, eax
movzx eax, word [ebx*2 + 0x4c3ee8]
movzx eax, byte [eax*8 + 0x4c0c08]
xor ebx, ebx
cmp eax, dword [esp + 0x38]
sete bl
cmp ebx, dword [esp + 0x2c]
je 0x4b43cd
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4b3fa2
jmp 0x4b43cd
mov edx, ebx
cmp ebx, edi
jge 0x4b43cd
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, 1
jmp 0x4b4048
mov eax, dword [esp + 0x164]
mov ecx, edi
cmp ebp, esi
jae 0x4b40e1
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4b4088
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 + 0x4c1ce8]
and eax, 0x7f
shl ebx, 7
add ebx, eax
movzx eax, word [ebx*2 + 0x4c3ee8]
movzx eax, byte [eax*8 + 0x4c0c09]
mov eax, dword [eax*4 + 0x4c0460]
cmp eax, edi
je 0x4b40c0
cmp eax, 3
je 0x4b40c0
xor eax, eax
jmp 0x4b40c2
mov eax, edi
cmp eax, dword [esp + 0x2c]
je 0x4b43cd
add edx, edi
lea ebp, [ebp + ecx*2]
cmp edx, dword [esp + 0x14]
jl 0x4b4041
jmp 0x4b43cd
cmp dword [eax + 0x8c], 0
je 0x4b43cd
cmp ebp, dword [eax + 0x88]
jbe 0x4b43cd
mov dword [eax + 0x64], edi
cmp dword [eax + 0x8c], edi
jmp 0x4b43c7
mov edx, ebx
cmp ebx, edi
jge 0x4b43cd
mov ecx, dword [esp + 0x164]
mov esi, dword [ecx + 0x7c]
mov eax, ecx
jmp 0x4b4127
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4b3f63
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4b416a
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 + 0x4c1ce8]
shl edi, 7
mov ebx, eax
and ebx, 0x7f
add edi, ebx
movzx edi, word [edi*2 + 0x4c3ee8]
movzx edi, byte [edi*8 + 0x4c0c09]
cmp dword [edi*4 + 0x4c0460], 6
je 0x4b41be
cmp eax, 9
je 0x4b41be
cmp eax, 0xa
je 0x4b41be
cmp eax, 0xc
je 0x4b41be
cmp eax, 0xd
je 0x4b41be
xor eax, eax
jmp 0x4b41c3
mov eax, 1
cmp eax, dword [esp + 0x2c]
je 0x4b43cd
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, dword [esp + 0x14]
jl 0x4b4120
jmp 0x4b43cd
mov edx, ebx
cmp ebx, edi
jge 0x4b43cd
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
jmp 0x4b4207
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4b3f63
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4b424a
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 + 0x4c1ce8]
shl edi, 7
mov ebx, eax
and ebx, 0x7f
add edi, ebx
movzx edi, word [edi*2 + 0x4c3ee8]
movzx edi, byte [edi*8 + 0x4c0c09]
cmp dword [edi*4 + 0x4c0460], 6
je 0x4b42ab
cmp eax, 9
je 0x4b42ab
cmp eax, 0xa
je 0x4b42ab
cmp eax, 0xb
je 0x4b42ab
cmp eax, 0xc
je 0x4b42ab
cmp eax, 0xd
je 0x4b42ab
xor eax, eax
jmp 0x4b42b0
mov eax, 1
cmp eax, dword [esp + 0x2c]
je 0x4b43cd
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, dword [esp + 0x14]
jl 0x4b4200
jmp 0x4b43cd
mov esi, ebx
cmp ebx, dword [esp + 0x14]
jge 0x4b43cd
mov edx, dword [esp + 0x164]
mov edi, dword [edx + 0x7c]
mov eax, edx
jmp 0x4b42f7
mov eax, dword [esp + 0x164]
mov edx, 1
cmp ebp, edi
jae 0x4b43a5
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x4b433a
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 + 0x4c1ce8]
shl ecx, 7
mov ebx, eax
and ebx, 0x7f
add ecx, ebx
movzx ecx, word [ecx*2 + 0x4c3ee8]
movzx ecx, byte [ecx*8 + 0x4c0c09]
mov ecx, dword [ecx*4 + 0x4c0460]
cmp ecx, 1
je 0x4b4382
cmp ecx, 3
je 0x4b4382
cmp eax, 0x5f
je 0x4b4382
xor eax, eax
jmp 0x4b4387
mov eax, 1
cmp eax, dword [esp + 0x2c]
je 0x4b43cd
inc esi
lea ebp, [ebp + edx*2]
cmp esi, dword [esp + 0x14]
jl 0x4b42f0
jmp 0x4b43cd
cmp dword [eax + 0x8c], 0
je 0x4b43cd
cmp ebp, dword [eax + 0x88]
jbe 0x4b43cd
mov dword [eax + 0x64], edx
cmp dword [eax + 0x8c], edx
jg 0x4b5c4f
cmp dword [esp + 0x20], 0
jne 0x4afb91
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
lea ebx, [ebx]
mov ecx, ebp
sub ebp, 2
cmp ecx, dword [esp + 0x1c]
je case.0x4afbbe.151
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4b4448
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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b4420
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x18]
cmp eax, 0x16
jne 0x4b46be
mov esi, ebx
cmp ebx, dword [esp + 0x14]
jge 0x4b45d9
mov eax, dword [esp + 0x164]
mov edx, dword [eax + 0x7c]
mov ebx, 2
jmp 0x4b44b7
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, edx
jae 0x4b45b1
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4b44f7
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 + 0x4c1ce8]
and eax, 0x7f
shl edi, 7
add edi, eax
movzx eax, word [edi*2 + 0x4c3ee8]
movzx eax, byte [eax*8 + 0x4c0c09]
cmp dword [eax*4 + 0x4c0460], ebx
je 0x4b45d9
lea ebp, [ebp + ecx*2]
cmp ebp, edx
jae 0x4b45a1
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
mov ecx, 1
cmp edi, 0xd800
jne 0x4b456c
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 + 0x4c1ce8]
and eax, 0x7f
shl edi, 7
add edi, eax
movzx eax, word [edi*2 + 0x4c3ee8]
movzx eax, byte [eax*8 + 0x4c0c09]
cmp dword [eax*4 + 0x4c0460], ebx
jne 0x4b45a1
lea ebp, [ebp + ecx*2]
cmp ebp, edx
jb 0x4b4534
inc esi
cmp esi, dword [esp + 0x14]
jl 0x4b44b0
jmp 0x4b45d9
cmp dword [eax + 0x8c], 0
je 0x4b45d9
cmp ebp, dword [eax + 0x88]
jbe 0x4b45d9
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jg 0x4b5c4f
cmp dword [esp + 0x20], 0
jne 0x4afb91
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
mov edx, ebp
mov ecx, 2
sub ebp, ecx
cmp edx, dword [esp + 0x1c]
je case.0x4afbbe.151
lea esp, [esp]
mov ax, word [ebp]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4b4658
sub ebp, ecx
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x4b4689
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 + 0x4c1ce8]
shl edx, 7
and eax, 0x7f
add edx, eax
movzx eax, word [edx*2 + 0x4c3ee8]
movzx edx, byte [eax*8 + 0x4c0c09]
cmp dword [edx*4 + 0x4c0460], ecx
jne 0x4b7879
sub ebp, ecx
jmp 0x4b4640
add eax, 0xfffffffa
cmp eax, 0xf
ja case.default.0x4b179b
jmp dword [eax*4 + 0x4b7b84]
cmp edi, 0x7fffffff
mov edi, ebx
jge 0x4b47c6
cmp ebx, dword [esp + 0x14]
jge 0x4b4b53
lea esp, [esp]
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4b479f
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x4b4732
mov edx, dword [ecx + 0x7c]
push 1
lea esi, [ecx + 0x1c]
push eax
mov ecx, ebp
call fcn.004b8dc0
add esp, 8
test eax, eax
jne 0x4b4b53
mov ecx, dword [esp + 0x164]
jmp 0x4b476a
mov eax, dword [ecx + 0x1c]
mov esi, dword [ecx + 0x7c]
lea edx, [eax + eax]
sub esi, edx
cmp ebp, esi
ja 0x4b476a
mov dx, word [ebp]
cmp dx, word [ecx + 0x2c]
jne 0x4b476a
cmp eax, 1
je 0x4b4b53
mov ax, word [ebp + 2]
cmp ax, word [ecx + 0x2e]
je 0x4b4b53
add ebp, 2
cmp ebp, dword [ecx + 0x7c]
jae 0x4b478f
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4b478f
add ebp, 2
inc edi
cmp edi, dword [esp + 0x14]
jl 0x4b46f0
jmp 0x4b4b53
cmp dword [ecx + 0x8c], 0
je 0x4b4b53
mov edx, ecx
cmp ebp, dword [edx + 0x88]
jbe 0x4b4b53
mov ecx, 1
mov eax, edx
jmp 0x4b4b44
cmp ebx, dword [esp + 0x14]
jge 0x4b4b53
mov ecx, dword [esp + 0x164]
cmp ebp, dword [ecx + 0x7c]
jae 0x4b479f
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x4b480e
mov edx, dword [ecx + 0x7c]
push 1
lea esi, [ecx + 0x1c]
push eax
mov ecx, ebp
call fcn.004b8dc0
add esp, 8
test eax, eax
jne 0x4b4b53
mov ecx, dword [esp + 0x164]
jmp 0x4b4846
mov eax, dword [ecx + 0x1c]
mov esi, dword [ecx + 0x7c]
lea edx, [eax + eax]
sub esi, edx
cmp ebp, esi
ja 0x4b4846
mov dx, word [ebp]
cmp dx, word [ecx + 0x2c]
jne 0x4b4846
cmp eax, 1
je 0x4b4b53
mov ax, word [ebp + 2]
cmp ax, word [ecx + 0x2e]
je 0x4b4b53
add ebp, 2
cmp ebp, dword [ecx + 0x7c]
jae 0x4b486f
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4b486f
add ebp, 2
inc edi
cmp edi, dword [esp + 0x14]
jl 0x4b47d0
jmp 0x4b4b53
cmp edi, 0x7fffffff
jge 0x4b48e5
mov eax, ebx
cmp ebx, edi
jge 0x4b4b53
mov ecx, dword [esi + 0x7c]
cmp ebp, ecx
jae 0x4b48e8
add ebp, 2
cmp ebp, ecx
jae 0x4b48c8
mov dx, word [ebp]
mov ebx, 0xfc00
and dx, bx
mov ebx, 0xdc00
cmp dx, bx
jne 0x4b48c8
add ebp, 2
inc eax
cmp eax, edi
jl 0x4b4898
jmp 0x4b4b53
mov ecx, dword [esi + 0x7c]
sub edi, ebx
sub ecx, ebp
mov eax, edi
sar ecx, 1
cmp eax, ecx
jbe 0x4b4914
mov ebp, dword [esi + 0x7c]
cmp dword [esi + 0x8c], 0
je 0x4b4b53
cmp ebp, dword [esi + 0x88]
jbe 0x4b4b53
mov eax, 1
mov dword [esi + 0x64], eax
cmp dword [esi + 0x8c], eax
jmp 0x4b4b4d
lea ebp, [ebp + eax*2]
jmp 0x4b4b53
mov esi, ebx
cmp ebx, dword [esp + 0x14]
jge 0x4b4b53
mov ebx, dword [esp + 0x164]
mov edx, dword [ebx + 0x7c]
mov ecx, 1
cmp ebp, edx
jae 0x4b49f7
movzx eax, word [ebp]
mov edi, eax
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4b4976
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 0x4b499d
add ebp, 2
cmp ebp, edx
jae 0x4b4b53
cmp word [ebp], 0xa
jne 0x4b49e7
add ebp, 2
jmp 0x4b49e7
cmp eax, 0xa
je 0x4b49e3
cmp dword [ebx + 0x68], 0
jne 0x4b4b53
cmp eax, 0xb
je 0x4b49e3
cmp eax, 0xc
je 0x4b49e3
cmp eax, 0x85
je 0x4b49e3
cmp eax, 0x2028
je 0x4b49e3
cmp eax, 0x2029
jne 0x4b4b53
lea ebp, [ebp + ecx*2]
inc esi
cmp esi, dword [esp + 0x14]
jl 0x4b4933
jmp 0x4b4b53
cmp dword [ebx + 0x8c], 0
je 0x4b4b53
cmp ebp, dword [ebx + 0x88]
jbe 0x4b4b53
mov dword [ebx + 0x64], ecx
cmp dword [ebx + 0x8c], ecx
jmp 0x4b4b4d
mov esi, ebx
cmp ebx, dword [esp + 0x14]
jge 0x4b4b53
mov edx, dword [esp + 0x164]
mov edi, dword [edx + 0x7c]
mov edx, dword [esp + 0x14]
mov ecx, 1
cmp ebp, edi
jae 0x4b4b24
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4b4a7b
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 0x4b4ab8
je 0x4b4afb
cmp eax, 0xa0
ja 0x4b4aae
je 0x4b4afb
cmp eax, 9
je 0x4b4afb
cmp eax, 0x20
jmp 0x4b4aee
cmp eax, 0x1680
jmp 0x4b4aee
cmp eax, 0x205f
ja 0x4b4ae9
je 0x4b4afb
cmp eax, 0x2000
jb 0x4b4af4
cmp eax, 0x200a
jbe 0x4b4afb
cmp eax, 0x202f
jmp 0x4b4aee
cmp eax, 0x3000
je 0x4b4afb
xor eax, eax
jmp 0x4b4b00
mov eax, 1
xor ebx, ebx
cmp dword [esp + 0x18], 0x12
sete bl
cmp eax, ebx
je 0x4b4b53
inc esi
lea ebp, [ebp + ecx*2]
cmp esi, edx
jl 0x4b4a38
jmp 0x4b4b53
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je 0x4b4b53
cmp ebp, dword [eax + 0x88]
jbe 0x4b4b53
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jg 0x4b5c4f
cmp dword [esp + 0x20], 0
jne 0x4afb91
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
mov eax, dword [esp + 0x1c]
mov ecx, ebp
sub ebp, 2
cmp ecx, eax
je case.0x4afbbe.151
mov dx, word [ebp]
mov ecx, 0xfc00
and dx, cx
mov ecx, 0xdc00
cmp dx, cx
jne 0x4b4bce
sub ebp, 2
cmp dword [esp + 0x18], 0x11
jne 0x4b4bfa
cmp ebp, eax
jbe 0x4b4bfa
cmp word [ebp], 0xa
jne 0x4b4bfa
cmp word [ebp - 2], 0xd
jne 0x4b4bfa
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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b4ba0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov esi, ebx
cmp ebx, dword [esp + 0x14]
jge 0x4b4b53
mov edx, dword [esp + 0x164]
mov edi, dword [edx + 0x7c]
mov edx, dword [esp + 0x14]
mov ecx, 1
cmp ebp, edi
jae 0x4b4b24
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4b4c8f
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 0x4b4cd8
je 0x4b4ce2
cmp eax, 0xa
jb 0x4b4cb2
cmp eax, 0xd
jbe 0x4b4ce2
xor eax, eax
xor ebx, ebx
cmp dword [esp + 0x18], 0x14
sete bl
cmp eax, ebx
je 0x4b4b53
inc esi
lea ebp, [ebp + ecx*2]
cmp esi, edx
jl 0x4b4c4c
jmp 0x4b4b53
add eax, 0xffffdfd8
cmp eax, 1
ja 0x4b4cb2
mov eax, 1
jmp 0x4b4cb4
mov edx, ebx
cmp ebx, edi
jge 0x4b4b53
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4b4d17
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4b4b2b
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4b4d5a
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 0x4b4d79
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + 0x3c]
test byte [eax + ebx], 4
jne 0x4b4b53
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4b4d10
jmp 0x4b4b53
mov edx, ebx
cmp ebx, edi
jge 0x4b4b53
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4b4db7
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4b4b2b
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4b4dfa
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 0x4b4b53
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + 0x3c]
test byte [eax + ebx], 4
je 0x4b4b53
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4b4db0
jmp 0x4b4b53
mov edx, ebx
cmp ebx, edi
jge 0x4b4b53
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4b4e57
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4b4b2b
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4b4e9a
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 0x4b4eb9
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + 0x3c]
test byte [eax + ebx], 1
jne 0x4b4b53
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4b4e50
jmp 0x4b4b53
mov edx, ebx
cmp ebx, edi
jge 0x4b4b53
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4b4ef7
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4b4b2b
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4b4f3a
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 0x4b4b53
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + 0x3c]
test byte [eax + ebx], 1
je 0x4b4b53
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4b4ef0
jmp 0x4b4b53
mov edx, ebx
cmp ebx, edi
jge 0x4b4b53
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4b4f97
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4b4b2b
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4b4fda
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 0x4b4ff9
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + 0x3c]
test byte [eax + ebx], 0x10
jne 0x4b4b53
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4b4f90
jmp 0x4b4b53
mov edx, ebx
cmp ebx, edi
jge 0x4b4b53
mov eax, dword [esp + 0x164]
mov esi, dword [eax + 0x7c]
mov edi, dword [esp + 0x14]
jmp 0x4b5028
mov eax, dword [esp + 0x164]
mov ecx, 1
cmp ebp, esi
jae 0x4b4b2b
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4b506b
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 0x4b4b53
mov ebx, dword [esp + 0x164]
mov ebx, dword [ebx + 0x3c]
test byte [eax + ebx], 0x10
je 0x4b4b53
inc edx
lea ebp, [ebp + ecx*2]
cmp edx, edi
jl 0x4b5021
jmp 0x4b4b53
mov eax, dword [ebx + 0x90]
cmp eax, dword [esp + 0x160]
jle 0x4b50ba
mov dword [esp + 0x160], eax
movzx edx, word [esi + 6]
cmp word [esi + edx*2 + 4], 0x71
lea eax, [esi + edx*2 + 4]
jne 0x4b50de
mov edi, edi
movzx ecx, word [eax + 2]
cmp word [eax + ecx*2], 0x71
lea eax, [eax + ecx*2]
je 0x4b50d0
mov edx, dword [esp + 0x14]
add eax, 4
cmp edx, 0x86
je 0x4b5980
mov dword [esp + 0x158], eax
jmp 0x4b5473
cmp word [esi], 0x74
jne 0x4b5140
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
mov edx, dword [esp + 0x18]
mov dword [esp + 0x158], edx
jmp 0x4b5473
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
add esi, 4
mov dword [esp + 0x158], esi
jmp 0x4b5473
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 0x4b5290
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 0x4b5202
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 + 0x4c03c0]
push eax
lea eax, [edi + edx*2]
push eax
push ebp
call fcn.004afad0
add esp, 0x1c
cmp eax, 0xfffffc1c
je 0x4b58f4
cmp eax, 0xfffffc20
jne 0x4b58c0
movzx ecx, word [edi + 2]
lea ecx, [edi + ecx*2]
cmp dword [ebx + 0x80], ecx
jae 0x4b78b6
cmp word [edi], 0x71
je 0x4b5278
cmp word [ecx], 0x71
jne 0x4b78b6
xor eax, eax
jmp 0x4b58c8
mov ebx, dword [esp + 0x164]
jmp 0x4b5290
cmp edx, 0x82
jge 0x4b52de
cmp edx, 0x7b
je 0x4b52de
cmp dword [ebx + 0x6c], 0
jne 0x4b52e8
mov eax, dword [esp + 0x158]
movzx edx, word [eax + 2]
cmp word [eax + edx*2], 0x71
je 0x4b52e8
movzx ecx, word [eax]
movzx edx, byte [ecx + 0x4c03c0]
lea eax, [eax + edx*2]
mov dword [esp + 0x158], eax
jmp 0x4b5473
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 + 0x4c03c0]
push eax
lea eax, [edi + edx*2]
push eax
push ebp
call fcn.004afad0
add esp, 0x1c
cmp eax, 0xfffffc20
jne 0x4b5365
movzx ecx, word [edi + 2]
lea ecx, [edi + ecx*2]
cmp dword [ebx + 0x80], ecx
jae 0x4b78b6
cmp word [edi], 0x71
je 0x4b536d
cmp word [ecx], 0x71
jne 0x4b78b6
jmp 0x4b536d
test eax, eax
jne 0x4b5925
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.0x4afbbe.151
mov edx, dword [esp + 0x14]
jmp 0x4b5290
movzx eax, word [ecx]
cmp eax, 0x75
je 0x4b5b34
cmp eax, 0x74
jne 0x4b5406
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
movzx eax, word [edi]
cmp eax, 0x7b
je 0x4b5b50
mov edx, 0x82
cmp ax, dx
jae 0x4b5b71
mov dword [esp + 0x158], edi
jmp 0x4b5473
mov eax, 0x82
cmp word [edi], ax
jb 0x4b541e
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.004afad0
add esp, 0x1c
cmp eax, 0xfffffc1c
jne 0x4b5459
cmp dword [ebx + 0xb8], edi
jmp 0x4b545b
test eax, eax
jne 0x4b78b6
cmp word [edi], 0x7b
je 0x4b5bab
add dword [esp + 0x158], 4
mov ecx, dword [ebx]
cmp ecx, dword [ebx + 4]
jb 0x4afb53
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 + 0x4c03c0]
movzx ecx, word [eax + 2]
add edx, ecx
lea edx, [eax + edx*2]
push edx
push ebp
call fcn.004afad0
mov edi, eax
add esp, 0x1c
cmp edi, 1
je 0x4b5513
cmp edi, 0xfffffc19
jne 0x4b5533
cmp dword [esi + 0xb0], 0
jne 0x4b5533
mov dword [esi + 0xb0], ebx
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp edi, 0xfffffc1f
jne 0x4b5a99
mov eax, dword [esi + 0x80]
mov ecx, ebx
call fcn.004b8d10
test eax, eax
jne 0x4b5a99
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 + 0x4c03c0]
push ecx
lea ecx, [esi + eax*2]
push ecx
push ebp
call fcn.004afad0
add esp, 0x1c
test eax, eax
je 0x4b55dc
cmp eax, 0xfffffc1d
je 0x4b55dc
cmp eax, 0xfffffc1e
je 0x4b55dc
cmp eax, 0xfffffc1f
je 0x4b55dc
cmp eax, 0xfffffc20
jne 0x4b78b6
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 + 0x4c03c0]
push eax
lea eax, [esi + edx*2]
push eax
push ebp
call fcn.004afad0
add esp, 0x1c
test eax, eax
je 0x4b563f
cmp eax, 0xfffffc20
jne 0x4b78b6
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 + 0x4c03c0]
movzx ecx, word [eax + 2]
add edx, ecx
lea edx, [eax + edx*2]
push edx
push ebp
call fcn.004afad0
add esp, 0x1c
cmp eax, 1
je 0x4b56bf
cmp eax, 0xfffffc19
jne 0x4b562c
cmp dword [ebx + 0xb0], 0
jne 0x4b562c
mov dword [ebx + 0xb0], esi
jmp 0x4b562c
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 + 0x4c03c0]
push eax
lea eax, [esi + edx*2]
push eax
push ebp
call fcn.004afad0
add esp, 0x1c
test eax, eax
je 0x4b5735
cmp eax, 0xfffffc1d
je 0x4b5735
cmp eax, 0xfffffc20
jne 0x4b78b6
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 + 0x4c03c0]
push ecx
movzx ecx, word [esi + 2]
add eax, ecx
lea edx, [esi + eax*2]
push edx
push ebp
call fcn.004afad0
add esp, 0x1c
test eax, eax
je 0x4b57a8
cmp eax, 0xfffffc1d
je 0x4b57a8
cmp eax, 0xfffffc20
jne 0x4b78b6
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 + 0x4c03c0]
push eax
lea eax, [esi + edx*2]
push eax
push ebp
call fcn.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
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 + 0x4c03c0]
push ecx
movzx ecx, word [edi + 2]
add eax, ecx
lea edx, [edi + eax*2]
push edx
push ebp
call fcn.004afad0
add esp, 0x1c
cmp eax, 1
je 0x4b588f
cmp eax, 0xfffffc19
jne 0x4b58a2
cmp dword [esi + 0xb0], 0
jne 0x4b58a2
mov dword [esi + 0xb0], ebx
test eax, eax
jne 0x4b78b6
mov dword [esi + 0x80], edi
mov eax, 0xfffffc20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
test eax, eax
jne 0x4b78b6
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 0x4b51e3
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 0x4b78b6
movzx edx, word [edi]
mov ecx, edi
cmp edx, 0x7b
je 0x4b5967
cmp edx, 0x71
jne 0x4b595e
jmp 0x4b5950
movzx edx, word [ecx + 2]
cmp word [ecx + edx*2], 0x71
lea ecx, [ecx + edx*2]
je 0x4b5950
movzx edx, word [ecx + 2]
neg edx
lea ecx, [ecx + edx*2]
cmp dword [ebx + 0xb8], ecx
jne 0x4b78b6
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.004afad0
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov ecx, dword [esp + 0x15c]
cmp ebp, ecx
jne 0x4b5a25
cmp edx, 0x99
je 0x4b5a25
mov eax, dword [esp + 0x164]
cmp dword [eax + 0xa8], 0
jne 0x4b5a2c
cmp dword [eax + 0x5c], 0
jne 0x4b5a18
cmp dword [eax + 0x60], 0
je 0x4b5a2c
mov esi, dword [eax + 0x98]
mov edi, dword [eax + 0x78]
lea esi, [edi + esi*2]
cmp ecx, esi
jne 0x4b5a2c
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 0x4b5a99
push eax
call dword [0x4e4204]
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 0x4b5acd
push eax
call dword [0x4e4204]
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 0x4b5bfc
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.004afad0
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 0x4b5bfc
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
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.0x4afbbe.151
cmp ebp, dword [ebx + 0x88]
jbe case.0x4afbbe.151
mov eax, 1
mov dword [ebx + 0x64], eax
cmp dword [ebx + 0x8c], eax
jle case.0x4afbbe.151
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [eax + 0x8c], ecx
je case.0x4afbbe.151
cmp ebp, dword [eax + 0x88]
jbe case.0x4afbbe.151
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jle case.0x4afbbe.151
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [ecx + 0x8c], 0
je case.0x4afbbe.151
cmp ebp, dword [ecx + 0x88]
jbe case.0x4afbbe.151
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x8c], eax
jle case.0x4afbbe.151
mov eax, 0xfffffff4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [edx + 0x8c], 0
je case.0x4afbbe.151
cmp ebp, dword [edx + 0x88]
jbe case.0x4afbbe.151
mov eax, 1
mov dword [edx + 0x64], eax
cmp dword [edx + 0x8c], eax
jle case.0x4afbbe.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.0x4afbbe.151
cmp ebp, dword [eax + 0x7c]
jb case.0x4afbbe.151
cmp ebp, dword [eax + 0x88]
jbe case.0x4afbbe.151
mov ecx, 1
mov dword [eax + 0x64], ecx
cmp dword [eax + 0x8c], ecx
jle case.0x4afbbe.151
lea eax, [ecx - 0xd]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [edi + 0x8c], 0
je case.0x4afbbe.151
cmp ebp, dword [edi + 0x7c]
jb case.0x4afbbe.151
cmp ebp, dword [edi + 0x88]
jbe case.0x4afbbe.151
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x8c], eax
jle case.0x4afbbe.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 0x4b5e44
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.004af920
add esp, 8
test eax, eax
js 0x4b5e04
lea ebp, [ebp + eax*2]
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0x14]
jl 0x4b5dd0
jmp 0x4b5e3a
cmp dword [edi + 0x8c], 0
je 0x4b5e3a
cmp ebp, dword [edi + 0x7c]
jb 0x4b5e3a
cmp ebp, dword [edi + 0x88]
jbe 0x4b5e3a
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x8c], eax
jg 0x4b5c4f
cmp ebp, dword [esp + 0x1c]
jb 0x4b5e94
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
mov edx, ebx
neg edx
lea ebp, [ebp + edx*2]
cmp ebp, dword [esp + 0x1c]
jae 0x4b5e52
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [esi + 0x8c], 0
je case.0x4afbbe.151
cmp ebp, dword [esi + 0x7c]
jb case.0x4afbbe.151
cmp ebp, dword [esi + 0x88]
jbe case.0x4afbbe.151
mov eax, 1
mov dword [esi + 0x64], eax
cmp dword [esi + 0x8c], eax
jle case.0x4afbbe.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.0x4afbbe.151
cmp ebp, dword [eax + 0x88]
jbe case.0x4afbbe.151
mov dword [eax + 0x64], 1
cmp dword [eax + 0x8c], 1
jle case.0x4afbbe.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.0x4afbbe.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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b1d87
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov dword [esp + 0x1c], ebp
mov edx, esi
cmp esi, edi
jge 0x4b6075
mov eax, dword [esp + 0x164]
mov ecx, dword [eax + 0x7c]
mov dword [esp + 0x18], ecx
jmp 0x4b5fc7
mov eax, dword [esp + 0x164]
mov esi, 1
cmp ebp, dword [esp + 0x18]
jae 0x4b604d
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x4b600c
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 0x4b601d
cmp dword [esp + 0x14], 0x6a
jmp 0x4b6035
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 0x4b6075
inc edx
lea ebp, [ebp + esi*2]
cmp edx, edi
jl 0x4b5fc0
jmp 0x4b6075
cmp dword [eax + 0x8c], 0
je 0x4b6075
cmp ebp, dword [eax + 0x88]
jbe 0x4b6075
mov dword [eax + 0x64], esi
cmp dword [eax + 0x8c], esi
jg 0x4b5c4f
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
mov ecx, ebp
sub ebp, 2
cmp ecx, dword [esp + 0x1c]
je case.0x4afbbe.151
mov dx, word [ebp]
mov eax, 0xfc00
and dx, ax
mov ecx, 0xdc00
cmp dx, cx
jne 0x4b60df
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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b60b7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je case.0x4afbbe.151
cmp ebp, dword [eax + 0x88]
jbe case.0x4afbbe.151
mov dword [eax + 0x64], 1
cmp dword [eax + 0x8c], 1
jmp 0x4b5c85
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x28], esi
cmp esi, edi
jge 0x4b6205
mov edx, dword [esp + 0x164]
mov eax, dword [edx + 0x7c]
mov dword [esp + 0x18], eax
mov esi, 1
cmp ebp, dword [esp + 0x18]
jae 0x4b61d6
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x4b61a9
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.004b8fc0
add esp, 8
test eax, eax
je 0x4b6205
mov eax, dword [esp + 0x28]
inc eax
lea ebp, [ebp + esi*2]
mov dword [esp + 0x28], eax
cmp eax, edi
jl 0x4b6164
jmp 0x4b6205
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je 0x4b6205
cmp ebp, dword [eax + 0x88]
jbe 0x4b6205
mov dword [eax + 0x64], esi
cmp dword [eax + 0x8c], esi
jg 0x4b5c4f
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
mov eax, ebp
sub ebp, 2
cmp eax, dword [esp + 0x1c]
je case.0x4afbbe.151
mov cx, word [ebp]
mov edx, 0xfc00
and cx, dx
mov eax, 0xdc00
cmp cx, ax
jne 0x4b6268
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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b6240
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [ecx + 0x8c], 0
je case.0x4afbbe.151
cmp ebp, dword [ecx + 0x7c]
jb case.0x4afbbe.151
cmp ebp, dword [ecx + 0x88]
jbe case.0x4afbbe.151
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x8c], 1
jmp 0x4b5c85
cmp dword [edi + 0x8c], ecx
je case.0x4afbbe.151
cmp ebp, dword [edi + 0x88]
jbe case.0x4afbbe.151
mov eax, 1
mov dword [edi + 0x64], eax
cmp dword [edi + 0x8c], eax
jmp 0x4b5c85
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je case.0x4afbbe.151
cmp ebp, dword [eax + 0x7c]
jb case.0x4afbbe.151
jmp 0x4b5c6b
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
cmp edi, dword [esp + 0x14]
jge case.0x4afbbe.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 0x4b63fd
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
add eax, eax
mov esi, ebp
cmp eax, 4
jb 0x4b63b8
jmp 0x4b63a0
mov edx, dword [esi]
cmp edx, dword [ecx]
jne 0x4b63fd
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x4b63a0
test eax, eax
je 0x4b63f0
mov dl, byte [ecx]
cmp dl, byte [esi]
jne 0x4b63fd
cmp eax, 1
jbe 0x4b63f0
mov dl, byte [ecx + 1]
cmp dl, byte [esi + 1]
jne 0x4b63fd
cmp eax, 2
jbe 0x4b63f0
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x4b63fd
mov eax, dword [esp + 0x24]
lea ebp, [ebp + eax*2]
jmp 0x4b6482
cmp dword [esp + 0x18], 0
jle 0x4b64d8
mov edx, dword [esp + 0x18]
add edx, edx
sub edi, edx
cmp ebp, edi
ja 0x4b64d8
mov eax, dword [esp + 0x18]
add eax, eax
lea ecx, [esp + 0x5c]
mov esi, ebp
cmp eax, 4
jb 0x4b6448
lea ecx, [ecx]
mov edi, dword [esi]
cmp edi, dword [ecx]
jne 0x4b64d8
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x4b6430
test eax, eax
je 0x4b6480
mov bl, byte [ecx]
cmp bl, byte [esi]
jne 0x4b64d8
cmp eax, 1
jbe 0x4b6480
mov bl, byte [ecx + 1]
cmp bl, byte [esi + 1]
jne 0x4b64d8
cmp eax, 2
jbe 0x4b6480
mov cl, byte [ecx + 2]
cmp cl, byte [esi + 2]
jne 0x4b64d8
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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b6360
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
mov ecx, dword [esp + 0x164]
cmp dword [ecx + 0x8c], 0
je case.0x4afbbe.151
cmp ebp, dword [ecx + 0x7c]
jb case.0x4afbbe.151
cmp ebp, dword [ecx + 0x88]
jbe case.0x4afbbe.151
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x8c], eax
jmp 0x4b5c85
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
je case.0x4afbbe.151
cmp ebp, dword [eax + 0x88]
jbe case.0x4afbbe.151
mov ecx, dword [esp + 0x164]
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x8c], eax
jmp 0x4b5c85
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
cmp ebx, dword [esp + 0x14]
jge case.0x4afbbe.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b6911
movzx eax, word [ebp]
cmp esi, eax
je 0x4b65be
cmp dword [esp + 0x28], eax
jne case.0x4afbbe.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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b6592
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [edx + 0x8c], 0
je case.0x4afbbe.151
cmp ebp, dword [edx + 0x88]
jbe case.0x4afbbe.151
mov eax, 1
mov dword [edx + 0x64], eax
cmp dword [edx + 0x8c], eax
jmp 0x4b5c85
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
cmp ebx, dword [esp + 0x14]
jge case.0x4afbbe.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b6911
movzx edx, word [ebp]
add ebp, 2
cmp esi, edx
jne case.0x4afbbe.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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b6674
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
cmp esi, dword [esp + 0x14]
jge case.0x4afbbe.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b6911
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4b6775
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.0x4afbbe.151
cmp dword [esp + 0x28], eax
je case.0x4afbbe.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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b6724
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
lea ecx, [ecx]
cmp esi, dword [esp + 0x14]
jge case.0x4afbbe.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b6911
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4b6861
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.0x4afbbe.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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b6810
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x140
ret
cmp dword [esi + 0x8c], 0
je case.0x4afbbe.151
cmp ebp, dword [esi + 0x88]
jbe case.0x4afbbe.151
mov eax, 1
mov dword [esi + 0x64], eax
cmp dword [esi + 0x8c], eax
jmp 0x4b5c85
mov ecx, dword [esp + 0x164]
cmp dword [ecx + 0x8c], 0
je case.0x4afbbe.151
cmp ebp, dword [ecx + 0x88]
jbe case.0x4afbbe.151
mov eax, 1
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x8c], eax
jmp 0x4b5c85
mov eax, dword [esp + 0x164]
cmp dword [eax + 0x8c], 0
jmp 0x4b5c65
cmp dword [esi + 0x8c], 0
je case.0x4afbbe.151
cmp ebp, dword [esi + 0x88]
jbe case.0x4afbbe.151
mov dword [esi + 0x64], 1
cmp dword [esi + 0x8c], 1
jmp 0x4b5c85
test eax, eax
js 0x4b7325
cmp eax, 8
ja case.default.0x4b179b
jmp dword [eax*4 + 0x4b7bc4]
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
cmp esi, dword [esp + 0x14]
jge case.0x4afbbe.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b6911
movzx eax, word [ebp]
and eax, 0xfc00
add ebp, 2
cmp eax, 0xd800
jne 0x4b69d5
add ebp, 2
cmp dword [esp + 0x2c], 0
jne case.0x4afbbe.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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b69a5
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
cmp edi, dword [esp + 0x14]
jge case.0x4afbbe.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b6911
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4b6ab1
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 + 0x4c1ce8]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx edx, word [ecx*2 + 0x4c3ee8]
movzx eax, byte [edx*8 + 0x4c0c09]
cmp eax, 9
je 0x4b6aec
cmp eax, 5
je 0x4b6aec
cmp eax, 8
je 0x4b6aec
xor eax, eax
jmp 0x4b6af1
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4afbbe.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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b6a60
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
nop
cmp esi, dword [esp + 0x14]
jge case.0x4afbbe.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b6911
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4b6bd1
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 + 0x4c1ce8]
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx edx, word [ecx*2 + 0x4c3ee8]
movzx eax, byte [edx*8 + 0x4c0c09]
mov edx, dword [esp + 0x38]
xor ecx, ecx
cmp dword [eax*4 + 0x4c0460], edx
sete cl
cmp ecx, dword [esp + 0x2c]
je case.0x4afbbe.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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b6b80
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
cmp esi, dword [esp + 0x14]
jge case.0x4afbbe.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b6911
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4b6ce4
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 + 0x4c1ce8]
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx edx, word [ecx*2 + 0x4c3ee8]
movzx eax, byte [edx*8 + 0x4c0c09]
xor ecx, ecx
cmp eax, dword [esp + 0x38]
sete cl
cmp ecx, dword [esp + 0x2c]
je case.0x4afbbe.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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b6c93
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
nop
cmp esi, dword [esp + 0x14]
jge case.0x4afbbe.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b6911
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4b6df1
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 + 0x4c1ce8]
shl edx, 7
and eax, 0x7f
add edx, eax
movzx eax, word [edx*2 + 0x4c3ee8]
movzx ecx, byte [eax*8 + 0x4c0c08]
xor edx, edx
cmp ecx, dword [esp + 0x38]
sete dl
cmp edx, dword [esp + 0x2c]
je case.0x4afbbe.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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b6da0
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
lea esp, [esp]
cmp edi, dword [esp + 0x14]
jge case.0x4afbbe.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b6911
movzx eax, word [ebp]
mov edx, eax
and edx, 0xfc00
add ebp, 2
cmp edx, 0xd800
jne 0x4b6f01
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 + 0x4c1ce8]
and eax, 0x7f
shl ecx, 7
add ecx, eax
movzx edx, word [ecx*2 + 0x4c3ee8]
movzx eax, byte [edx*8 + 0x4c0c09]
mov eax, dword [eax*4 + 0x4c0460]
cmp eax, 1
je 0x4b6f3a
cmp eax, 3
je 0x4b6f3a
xor eax, eax
jmp 0x4b6f3f
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4afbbe.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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b6eb0
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
lea ecx, [ecx]
cmp edi, dword [esp + 0x14]
jge case.0x4afbbe.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b6911
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4b7021
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 + 0x4c1ce8]
shl edx, 7
mov ecx, eax
and ecx, 0x7f
add edx, ecx
movzx edx, word [edx*2 + 0x4c3ee8]
movzx ecx, byte [edx*8 + 0x4c0c09]
cmp dword [ecx*4 + 0x4c0460], 6
je 0x4b7071
cmp eax, 9
je 0x4b7071
cmp eax, 0xa
je 0x4b7071
cmp eax, 0xc
je 0x4b7071
cmp eax, 0xd
je 0x4b7071
xor eax, eax
jmp 0x4b7076
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4afbbe.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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b6fd0
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
cmp edi, dword [esp + 0x14]
jge case.0x4afbbe.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b6911
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4b7155
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 + 0x4c1ce8]
shl edx, 7
mov ecx, eax
and ecx, 0x7f
add edx, ecx
movzx edx, word [edx*2 + 0x4c3ee8]
movzx ecx, byte [edx*8 + 0x4c0c09]
cmp dword [ecx*4 + 0x4c0460], 6
je 0x4b71ae
cmp eax, 9
je 0x4b71ae
cmp eax, 0xa
je 0x4b71ae
cmp eax, 0xb
je 0x4b71ae
cmp eax, 0xc
je 0x4b71ae
cmp eax, 0xd
je 0x4b71ae
xor eax, eax
jmp 0x4b71b3
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4afbbe.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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b7104
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
cmp edi, dword [esp + 0x14]
jge case.0x4afbbe.151
mov eax, dword [esp + 0x164]
cmp ebp, dword [eax + 0x7c]
jae 0x4b6911
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4b7292
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 + 0x4c1ce8]
shl edx, 7
mov ecx, eax
and ecx, 0x7f
add edx, ecx
movzx edx, word [edx*2 + 0x4c3ee8]
movzx ecx, byte [edx*8 + 0x4c0c09]
mov ecx, dword [ecx*4 + 0x4c0460]
cmp ecx, 1
je 0x4b72d6
cmp ecx, 3
je 0x4b72d6
cmp eax, 0x5f
je 0x4b72d6
xor eax, eax
jmp 0x4b72db
mov eax, 1
cmp eax, dword [esp + 0x2c]
je case.0x4afbbe.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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b7241
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 0x4b74b9
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
mov eax, dword [esp + 0x164]
cmp edi, dword [esp + 0x14]
jge case.0x4afbbe.151
mov edx, dword [eax + 0x7c]
cmp ebp, edx
jae 0x4b6911
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4b73c7
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 + 0x4c1ce8]
shl ecx, 7
and eax, 0x7f
add ecx, eax
movzx eax, word [ecx*2 + 0x4c3ee8]
movzx ecx, byte [eax*8 + 0x4c0c09]
cmp dword [ecx*4 + 0x4c0460], 2
je case.0x4afbbe.151
cmp ebp, edx
jae 0x4b7472
movzx eax, word [ebp]
mov ebx, eax
and ebx, 0xfc00
mov ecx, 1
cmp ebx, 0xd800
jne 0x4b743c
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 + 0x4c1ce8]
and eax, 0x7f
shl ebx, 7
add ebx, eax
movzx eax, word [ebx*2 + 0x4c3ee8]
movzx eax, byte [eax*8 + 0x4c0c09]
cmp dword [eax*4 + 0x4c0460], 2
jne 0x4b7472
lea ebp, [ebp + ecx*2]
cmp ebp, edx
jb 0x4b7401
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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b7374
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.004afad0
add esp, 0x1c
test eax, eax
jne 0x4b78b6
cmp edi, dword [esp + 0x14]
jge case.0x4afbbe.151
cmp ebp, dword [esi + 0x7c]
jae 0x4b68ab
cmp dword [esp + 0x18], 0xc
jne 0x4b7571
mov eax, dword [esi + 0x18]
test eax, eax
je 0x4b7541
mov ecx, dword [esp + 0x164]
mov edx, dword [ecx + 0x7c]
push 1
lea esi, [ecx + 0x1c]
push eax
mov ecx, ebp
call fcn.004b8dc0
add esp, 8
test eax, eax
jne case.0x4afbbe.151
mov esi, dword [esp + 0x164]
jmp 0x4b7571
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x7c]
lea ecx, [eax + eax]
sub edx, ecx
cmp ebp, edx
ja 0x4b7571
mov cx, word [ebp]
cmp cx, word [esi + 0x2c]
jne 0x4b7571
cmp eax, 1
je case.0x4afbbe.151
mov dx, word [ebp + 2]
cmp dx, word [esi + 0x2e]
je case.0x4afbbe.151
movzx eax, word [ebp]
mov ecx, eax
and ecx, 0xfc00
add ebp, 2
cmp ecx, 0xd800
jne 0x4b75a8
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.0x4b179b
jmp dword [ecx*4 + 0x4b7be8]
cmp eax, 0xd
ja 0x4b75fd
je 0x4b75e1
cmp eax, 0xa
je case.0x4b75b8.12
jbe case.0x4afbbe.151
cmp eax, 0xc
jmp 0x4b7614
cmp ebp, dword [esi + 0x7c]
jae case.0x4b75b8.12
cmp word [ebp], 0xa
jne case.0x4b75b8.12
add ebp, 2
jmp case.0x4b75b8.12
cmp eax, 0x85
je 0x4b761a
cmp eax, 0x2027
jbe case.0x4afbbe.151
cmp eax, 0x2029
ja case.0x4afbbe.151
cmp dword [esi + 0x68], 0
jne case.0x4afbbe.151
jmp case.0x4b75b8.12
cmp eax, 0x180e
ja 0x4b7662
je case.0x4afbbe.151
cmp eax, 0xa0
ja 0x4b7658
je case.0x4afbbe.151
cmp eax, 9
je case.0x4afbbe.151
cmp eax, 0x20
jmp 0x4b7833
cmp eax, 0x1680
jmp 0x4b7833
cmp eax, 0x205f
ja 0x4b768f
je case.0x4afbbe.151
cmp eax, 0x2000
jb case.0x4b75b8.12
cmp eax, 0x200a
jbe case.0x4afbbe.151
cmp eax, 0x202f
jmp 0x4b7833
cmp eax, 0x3000
jmp 0x4b7833
cmp eax, 0x180e
ja 0x4b76de
je case.0x4b75b8.12
cmp eax, 0xa0
ja 0x4b76ce
je case.0x4b75b8.12
cmp eax, 9
je case.0x4b75b8.12
cmp eax, 0x20
jne case.0x4afbbe.151
jmp case.0x4b75b8.12
cmp eax, 0x1680
jne case.0x4afbbe.151
jmp case.0x4b75b8.12
cmp eax, 0x205f
ja 0x4b7711
je case.0x4b75b8.12
cmp eax, 0x2000
jb case.0x4afbbe.151
cmp eax, 0x200a
jbe case.0x4b75b8.12
cmp eax, 0x202f
jne case.0x4afbbe.151
jmp case.0x4b75b8.12
cmp eax, 0x3000
jne case.0x4afbbe.151
jmp case.0x4b75b8.12
cmp eax, 0x85
ja 0x4b7745
je case.0x4afbbe.151
cmp eax, 0xa
jb case.0x4b75b8.12
cmp eax, 0xd
jbe case.0x4afbbe.151
jmp case.0x4b75b8.12
cmp eax, 0x2028
jb case.0x4b75b8.12
cmp eax, 0x2029
jbe case.0x4afbbe.151
jmp case.0x4b75b8.12
cmp eax, 0x85
ja 0x4b7784
je case.0x4b75b8.12
cmp eax, 0xa
jb case.0x4afbbe.151
cmp eax, 0xd
ja case.0x4afbbe.151
jmp case.0x4b75b8.12
cmp eax, 0x2028
jb case.0x4afbbe.151
cmp eax, 0x2029
ja case.0x4afbbe.151
jmp case.0x4b75b8.12
cmp eax, 0x100
jae case.0x4b75b8.12
mov ecx, dword [esi + 0x3c]
test byte [eax + ecx], 4
jne case.0x4afbbe.151
jmp case.0x4b75b8.12
cmp eax, 0x100
jae case.0x4afbbe.151
mov edx, dword [esi + 0x3c]
test byte [eax + edx], 4
jmp 0x4b7833
cmp eax, 0x100
jae case.0x4b75b8.12
mov ecx, dword [esi + 0x3c]
test byte [eax + ecx], 1
jne case.0x4afbbe.151
jmp case.0x4b75b8.12
cmp eax, 0x100
jae case.0x4afbbe.151
mov edx, dword [esi + 0x3c]
test byte [eax + edx], 1
jmp 0x4b7833
cmp eax, 0x100
jae case.0x4b75b8.12
mov ecx, dword [esi + 0x3c]
test byte [eax + ecx], 0x10
jne case.0x4afbbe.151
jmp case.0x4b75b8.12
cmp eax, 0x100
jae case.0x4afbbe.151
mov edx, dword [esi + 0x3c]
test byte [eax + edx], 0x10
je case.0x4afbbe.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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b74ea
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.004afad0
add esp, 0x1c
test eax, eax
je 0x4b4626
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