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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x150
push ebx
push esi
push edi
mov edi, edx
mov eax, ecx
mov dword [ebp - 0x38], edi
mov dword [ebp - 8], eax
test edi, edi
je 0x483bc3
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x40], 0
mov eax, dword [ebx]
mov ecx, dword [ebx + 0x50]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x20], ecx
cmp eax, dword [ebx + 4]
jae 0x48c297
inc eax
mov dword [ebx], eax
mov eax, dword [ebp + 0x18]
cmp eax, dword [ebx + 8]
jae 0x48c28d
cmp dword [ebx + 0x9c], 2
je 0x483bf4
lea esp, [esp]
movzx ecx, word [edi]
xor edx, edx
mov esi, ecx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x2c], edx
cmp esi, 0x9b
ja case.0x4094e0.98
movzx eax, byte [esi + 0x40a000]
jmp dword [eax*4 + 0x409eb8]
cmp esi, 0x82
jae 0x48a13b
cmp esi, 0x7b
je 0x48a13b
cmp dword [ebx + 0x70], 0
jne 0x409de4
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
je 0x409de4
movzx eax, word [edi]
movzx eax, byte [eax + 0x49e530]
lea edi, [edi + eax*2]
mov dword [ebp - 0x38], edi
mov eax, dword [ebx + 0x50]
mov dword [ebp - 0x20], eax
mov eax, dword [ebx]
cmp eax, dword [ebx + 4]
jb 0x4094a0
jmp 0x48c297
movzx eax, word [edi + 2]
add eax, eax
mov esi, edi
sub esi, eax
mov ecx, 0x82
movzx eax, word [esi]
mov dword [ebp - 0x18], esi
cmp ax, cx
jae 0x4848dd
cmp eax, 0x7b
je 0x4848dd
xor ecx, ecx
mov dword [ebp - 0x10], ecx
cmp eax, 0x7a
jbe 0x4848ed
cmp eax, 0x7f
je 0x409983
cmp eax, 0x7c
je 0x4848f6
mov edx, 0x84
cmp ax, dx
je 0x409983
mov edx, 0x80
cmp ax, dx
je 0x409983
mov edx, 0x85
cmp ax, dx
je 0x409983
mov edx, dword [ebp + 0xc]
cmp word [edi], 0x72
jne 0x48497c
cmp word [esi], 0x7b
je 0x48a2be
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4094c0
mov edx, dword [ebp - 8]
mov edi, dword [ebp + 8]
cmp edx, edi
je 0x48c233
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x84], edx
mov dword [ebx + 0x90], eax
mov dword [ebx + 0x80], edi
test esi, esi
jne 0x48c279
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx ecx, word [edi + 0x22]
lea eax, [edi + 2]
add edi, 0x22
mov dword [ebp - 0x1c], eax
mov eax, ecx
mov dword [ebp - 0x38], edi
cmp eax, 0x69
jle 0x409d3e
mov edx, dword [ebp - 0x2c]
mov eax, 1
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x485a8e
mov dword [ebp - 0x28], 1
cmp eax, 1
jl 0x409d9a
mov ecx, dword [ebx + 0x7c]
lea esp, [esp]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x409d24
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x30], ecx
cmp eax, 0xd800
je 0x485a58
cmp ecx, 0xff
ja 0x485a80
mov ebx, dword [ebp - 0x1c]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x30]
shr ecx, 3
test byte [ecx + ebx], al
mov ebx, dword [ebp + 0x10]
jne 0x4097c1
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x28], esi
cmp eax, esi
jae 0x409d36
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x4096ee
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x48580d
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and ecx, 0x8000007f
jns 0x409710
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d2]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 8]
cmp eax, esi
jae 0x4097a9
mov edi, dword [ebp - 0x20]
mov ebx, eax
movzx ecx, word [ebx]
mov esi, 1
test edi, edi
je 0x40974f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x485832
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and ecx, 0x8000007f
jns 0x409771
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x30]
add eax, ecx
movzx eax, word [eax*2 + 0x49e5d0]
movzx ecx, byte [eax*8 + 0x4ab0d2]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x49e454], eax
jne 0x409886
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x38]
mov dword [ebp - 8], ebx
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
jne 0x485856
add edi, 2
mov dword [ebp - 0x38], edi
jmp 0x4094c0
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebx + 0x7c]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, dword [ebp - 0x34]
jle 0x409660
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x18]
cmp dword [ebp - 0x34], ebx
mov ebx, dword [ebp + 0x10]
je 0x4094c0
test edx, edx
jne 0x48a428
mov dword [ebp - 0x40], eax
test ecx, ecx
je 0x48a66c
mov ecx, dword [ebp - 0x18]
cmp dword [ebp - 0x34], ecx
jge 0x40985b
mov dword [ebp - 0xc], 1
cmp eax, dword [ebx + 0x7c]
jae 0x48a5f0
movzx ecx, word [eax]
mov edx, dword [ebp - 8]
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x10], ecx
cmp eax, 0xd800
je 0x48a5b9
cmp ecx, 0xff
ja 0x48a5e2
shr dword [ebp - 0x10], 3
mov ebx, dword [ebp - 0x10]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x1c]
test byte [ebx + ecx], al
mov ebx, dword [ebp + 0x10]
jne 0x409e5b
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
jmp 0x48a622
lea ebx, [ebx + esi*2]
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x30], ecx
cmp ebx, esi
jb 0x409731
jmp 0x40979d
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d36
cmp dword [ebp - 0x20], edx
je 0x485d8f
movzx esi, word [edi + 2]
add edi, 2
mov eax, esi
and eax, 0xfc00
mov edx, 1
cmp eax, 0xd800
je 0x485cdf
mov eax, dword [ebp - 8]
movzx ecx, word [eax]
cmp esi, 0x80
jae 0x485d03
cmp ecx, 0xff
ja 0x4098f0
mov eax, dword [ebx + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebx + 0x3c]
movzx eax, byte [eax + esi]
cmp eax, ecx
jne case.0x4094e0.151
add edi, 2
add dword [ebp - 8], 2
mov dword [ebp - 0x38], edi
jmp 0x4094c0
mov edx, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, edx
jae 0x409d24
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 8], eax
je 0x409940
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [ebp - 8]
je 0x4852e5
cmp ecx, 0xe
jb 0x409951
cmp ecx, 0x85
jb case.0x4094e0.151
cmp ecx, 0xd
ja 0x485356
jne 0x48530a
cmp eax, edx
jae 0x485324
cmp word [eax], 0xa
jne 0x4097b6
add eax, 2
add edi, 2
mov dword [ebp - 8], eax
mov dword [ebp - 0x38], edi
jmp 0x4094c0
movzx ecx, word [esi + 4]
mov eax, dword [ebx + 0xa8]
mov dword [ebp - 0xc], ecx
lea edx, [ecx + ecx]
test eax, eax
jne 0x484916
mov eax, dword [ebx + 0x94]
and eax, 0xffff0000
or eax, ecx
mov dword [ebx + 0x94], eax
cmp edx, dword [ebx + 0x14]
jge 0x48493b
mov ecx, dword [ebp + 0xc]
cmp edx, ecx
jg 0x48494e
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
sub eax, dword [ebp - 0xc]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp - 8]
sub ecx, dword [ebx + 0x78]
mov eax, dword [ebx + 0xc]
sar ecx, 1
mov dword [eax + edx*4 + 4], ecx
mov ecx, dword [ebp - 0x10]
cmp dword [ebp + 0xc], edx
jg 0x4095b5
add edx, 2
mov dword [ebp + 0xc], edx
jmp 0x4095b8
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d36
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 0x30], ecx
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x409a26
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x485629
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0x30]
sar eax, 7
movzx ecx, byte [eax + 0x4ac470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x409a4c
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49e5d0]
movzx ecx, word [edi + 2]
cmp ecx, 9
jne 0x485651
movzx eax, word [edi + 4]
mov ecx, dword [eax*4 + 0x4ae670]
lea eax, [eax*4 + 0x4ae670]
cmp edx, ecx
jb 0x4857ff
lea ecx, [ecx]
lea eax, [eax + 4]
cmp edx, ecx
je 0x409a92
mov ecx, dword [eax]
cmp edx, ecx
jae 0x409a80
jmp 0x4857ff
cmp esi, 0x10
jne case.0x4094e0.151
add edi, 6
mov dword [ebp - 0x38], edi
jmp 0x4094c0
cmp dword [ebp - 0x20], edx
je 0x485cb0
mov ax, word [edi + 2]
add edi, 2
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xd800
mov esi, 1
mov dword [ebp - 0x38], edi
cmp ax, cx
je 0x409ea5
mov eax, dword [ebx + 0x7c]
mov edx, dword [ebp - 8]
sub eax, edx
sar eax, 1
cmp esi, eax
jg 0x48a892
test esi, esi
jle 0x4094c0
mov edi, edi
mov cx, word [edi]
mov ax, word [edx]
add edx, 2
add edi, 2
dec esi
mov dword [ebp - 8], edx
mov dword [ebp - 0x38], edi
cmp cx, ax
jne case.0x4094e0.151
test esi, esi
jle 0x4094c0
jmp 0x409af0
movzx edx, word [edi + 4]
mov dword [ebp - 0xc], edx
lea eax, [edx + edx]
cmp eax, dword [ebx + 0x14]
jge case.0x4094e0.123
mov ecx, dword [ebx + 0xc]
mov edx, dword [ecx + eax*4]
mov eax, dword [ecx + eax*4 + 4]
mov dword [ebp - 0x40], eax
mov eax, dword [ebx + 0x10]
sub eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], edx
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 0x94]
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 8]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ecx], eax
cmp esi, 0x82
jae 0x48bf2b
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x49e530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00409460
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc1b
je 0x48bf82
cmp edx, 0xfffffc20
je 0x48bf3a
test edx, edx
je 0x48bf5f
pop edi
pop esi
mov eax, edx
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esi - 0x55]
add edi, 2
test cl, 1
je 0x409eaf
mov eax, 1
movsx esi, byte [ecx + 0x49e520]
movsx ecx, byte [ecx + 0x49e528]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x409bf7
mov dword [ebp - 0x1c], SysAllocStringLen
movzx ecx, word [edi]
add edi, 2
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], edi
cmp ecx, 0x10
je 0x486c44
cmp ecx, 0xf
je 0x486c3b
or ecx, 0xffffffff
mov dword [ebp - 0x30], ecx
test esi, esi
jg 0x486c63
mov esi, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x24]
je 0x4094c0
test eax, eax
mov eax, dword [ebp - 0x30]
je 0x488550
test eax, eax
jns 0x48ac9f
mov eax, dword [ebp + 0x18]
inc eax
cmp dword [ebp - 0x34], 0x16
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
je 0x48b696
test ecx, ecx
mov ecx, esi
je 0x48bb8e
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge case.0x4094e0.151
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x48a760
cmp dword [ebp - 0x34], 0xc
jne 0x409cc7
cmp dword [ebx + 0x18], 0
je 0x48b83f
push dword [ebp - 0x20]
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.004080a0
add esp, 0xc
test eax, eax
jne case.0x4094e0.151
mov ecx, dword [ebp - 0x14]
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
add esi, 2
cmp eax, 0xd800
je 0x48b878
mov eax, dword [ebp - 0x34]
cmp eax, 0xc
jne 0x48b899
cmp dword [ebx + 0x8c], 0
jne 0x48bb4c
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x14], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
jmp 0x409c80
cmp dword [ebx + 0x8c], 0
je case.0x4094e0.151
jmp 0x48a41d
cmp dword [ebx + 0x8c], edx
jmp 0x409d2b
sub eax, 0x62
cmp eax, 7
ja case.default.0x409d51
movzx eax, byte [eax + 0x40a0a4]
jmp dword [eax*4 + 0x40a09c]
add ecx, 0xffffff9e
add edi, 2
mov dword [ebp - 0x38], edi
test cl, 1
jne 0x409e9b
xor eax, eax
mov dword [ebp - 0x2c], eax
movsx eax, byte [ecx + 0x49e520]
movsx ecx, byte [ecx + 0x49e528]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x40963b
mov dword [ebp - 0x18], SysAllocStringLen
jmp 0x40963b
mov eax, dword [ebp - 8]
jmp 0x4097da
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je case.0x4094e0.113
mov dword [ebp - 0x38], edi
jmp 0x4094c0
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
add edi, 2
push ebx
push dword [ebp + 0xc]
mov edx, edi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
jmp 0x4845e9
mov eax, dword [ebx + 0xb0]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0x94]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x49e530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00409460
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc20
je 0x48a14a
test edx, edx
jne 0x48bfae
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0xb0], eax
cmp word [edi], 0x71
jne case.0x4094e0.151
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0x94], eax
jmp case.0x4094e0.123
mov eax, dword [ebp - 0xc]
lea edx, [edx + eax*2]
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 8], edx
mov dword [ebp - 0x34], eax
cmp eax, dword [ebp - 0x18]
jge 0x40985b
mov eax, edx
jmp 0x409804
mov dword [ebp - 0x10], edx
jmp 0x48467d
add edi, 2
jmp 0x484642
mov eax, dword [ebp - 8]
jmp 0x484a0f
mov esi, dword [ebp - 0x20]
jmp 0x485024
mov eax, 1
jmp 0x409d6c
mov esi, 2
jmp 0x409ad4
xor eax, eax
jmp 0x409bd5
cmp dword [ebp + 0x18], 0
lea ecx, [ebp + 0x18]
jne 0x483be5
push 1
push 0
push 0
push 0
push 0
xor edx, edx
call fcn.00409460
add esp, 0x14
jmp 0x409607
sub ecx, eax
test ecx, ecx
jle 0x483bed
neg ecx
mov eax, ecx
jmp 0x409607
mov eax, dword [ebp - 8]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x60]
mov dword [ebp + 0x14], eax
mov dword [ebx + 0x9c], 0
jmp 0x4094c0
inc dword [ebx + 0x28]
mov eax, dword [ebx + 0x28]
cmp eax, dword [ebx + 0x2c]
ja 0x48a176
movzx eax, word [edi]
movzx ecx, byte [eax + 0x49e530]
movzx eax, word [edi + 2]
add ecx, eax
lea edi, [edi + ecx*2]
mov dword [ebp - 0x38], edi
jmp 0x4094c0
mov eax, dword [ebp - 8]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
lea edx, [edi + 4]
push ebx
push dword [ebp + 0xc]
push esi
call fcn.00409460
add esp, 0x14
cmp eax, 1
je 0x483cc3
cmp eax, 0xfffffc20
jne 0x483ca0
movzx ecx, word [edi + 2]
lea ecx, [edi + ecx*2]
cmp dword [ebx + 0x80], ecx
jae 0x409607
cmp word [edi], 0x71
je 0x483ca8
cmp word [ecx], 0x71
jne 0x409607
jmp 0x483ca8
test eax, eax
jne 0x409607
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0xb0], eax
cmp word [edi], 0x71
je 0x483c54
mov ecx, dword [ebp + 8]
jmp 0x483ccc
mov ecx, dword [ebx + 0x80]
mov dword [ebp + 8], ecx
movzx eax, word [edi]
cmp eax, 0x7c
je 0x483cdd
cmp eax, 0x71
jne case.0x4094e0.151
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x483cdd
cmp word [edi], 0x72
mov edx, dword [ebx + 0x90]
mov eax, dword [ebx + 0x84]
mov dword [ebp + 0xc], edx
mov dword [ebp - 8], eax
je 0x4864c5
cmp eax, dword [ebp - 0x28]
jne 0x489fc4
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4094c0
cmp word [edi + 4], 0x70
movzx eax, word [edi + 2]
mov dword [ebp - 0x10], eax
jne 0x483df6
cmp dword [0x4c34ec], edx
je 0x483ded
mov dword [ebp - 0xa0], 2
movzx eax, word [edi + 6]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x98], eax
mov eax, dword [ebx + 0x78]
mov dword [ebp - 0x94], eax
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ebp - 0x90], eax
mov eax, dword [ebp + 8]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 8]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ebp - 0x88], eax
movzx eax, word [edi + 8]
mov dword [ebp - 0x78], eax
movzx eax, word [edi + 0xa]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x84], eax
movzx eax, word [ebx + 0x94]
mov dword [ebp - 0x80], eax
test eax, eax
jne 0x483dba
mov dword [ebp - 0x80], 0xffffffff
mov eax, dword [ebx + 0xac]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebx + 0xb4]
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0xa0]
push eax
call dword [0x4c34ec]
add esp, 4
test eax, eax
jg case.0x4094e0.151
js 0x409607
mov eax, dword [ebp - 0x10]
add edi, 8
sub eax, 4
mov dword [ebp - 0x10], eax
movzx ecx, word [edi + 4]
lea edx, [edi + 4]
cmp ecx, 0x89
je 0x483fa9
cmp ecx, 0x8a
je 0x483fa9
cmp ecx, 0x87
je 0x483e7f
cmp ecx, 0x88
je 0x483e7f
cmp ecx, 0x8b
jne 0x483e39
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
jmp 0x4840e0
mov ecx, dword [ebp - 8]
mov dword [ebx + 0x9c], 1
mov eax, dword [ebp + 0x18]
inc eax
push eax
push 0
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
cmp eax, 1
je 0x48a00e
test eax, eax
je 0x483e74
cmp eax, 0xfffffc20
jne 0x409607
mov eax, dword [ebp - 0x10]
lea edi, [edi + eax*2]
jmp 0x4840e0
movzx edx, word [edi + 6]
add edx, edx
cmp edx, dword [ebp + 0xc]
jge 0x483e97
mov eax, dword [ebx + 0xc]
cmp dword [eax + edx*4], 0
jge 0x4840cb
xor eax, eax
mov dword [ebp - 0x18], eax
cmp ecx, 0x88
jne 0x4840c5
mov ecx, dword [ebx + 0x30]
sar edx, 1
mov dword [ebp - 0xc], edx
xor edx, edx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x10], edx
cmp dword [ebx + 0x20], eax
jle 0x483eda
movzx eax, word [ecx]
cmp eax, dword [ebp - 0xc]
je 0x483ed1
mov eax, dword [ebx + 0x24]
inc edx
lea ecx, [ecx + eax*2]
cmp edx, dword [ebx + 0x20]
jl 0x483ebd
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x34], ecx
cmp edx, dword [ebx + 0x20]
jge 0x4840c5
mov dword [ebp - 0x38], ecx
cmp ecx, dword [ebx + 0x30]
jbe 0x483f42
mov eax, dword [ebx + 0x24]
add eax, eax
add ecx, 2
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x30], eax
sub ecx, eax
mov dword [ebp - 0x38], ecx
lea edx, [ecx + 2]
mov ecx, dword [ebp - 0xc]
call fcn.004718ee
test eax, eax
jne 0x483f39
mov ecx, dword [ebp - 0x38]
movzx edx, word [ecx]
add edx, edx
cmp edx, dword [ebp + 0xc]
jge 0x483f2a
mov eax, dword [ebx + 0xc]
cmp dword [eax + edx*4], 0
jge 0x4840cb
xor eax, eax
mov dword [ebp - 0x18], eax
cmp ecx, dword [ebx + 0x30]
jbe 0x483f3c
mov eax, dword [ebp - 0x30]
jmp 0x483efc
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x34]
inc edx
mov dword [ebp - 0x10], edx
cmp edx, dword [ebx + 0x20]
jge 0x4840c5
mov eax, dword [ebx + 0x24]
add eax, eax
lea edx, [ecx + 2]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0xc], edx
add ecx, eax
mov dword [ebp - 0x34], ecx
lea edx, [ecx + 2]
mov ecx, dword [ebp - 0xc]
call fcn.004718ee
test eax, eax
jne 0x4840c2
mov ecx, dword [ebp - 0x34]
movzx edx, word [ecx]
add edx, edx
cmp edx, dword [ebp + 0xc]
jge 0x483f8f
mov eax, dword [ebx + 0xc]
cmp dword [eax + edx*4], 0
jge 0x4840cb
mov edx, dword [ebp - 0x10]
inc edx
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], edx
cmp edx, dword [ebx + 0x20]
jge 0x4840c5
mov eax, dword [ebp - 0x30]
jmp 0x483f5d
mov edx, dword [ebx + 0xa8]
test edx, edx
jne 0x483fbf
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
jmp 0x4840e0
movzx eax, word [edi + 6]
mov dword [ebp - 0xc], eax
cmp eax, 0xffff
je 0x4840cb
mov edx, dword [edx + 4]
mov dword [ebp - 0x30], edx
cmp eax, edx
je 0x4840cb
xor eax, eax
mov dword [ebp - 0x18], eax
cmp ecx, 0x8a
jne 0x4840c5
mov ecx, dword [ebx + 0x30]
xor edx, edx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x10], edx
cmp dword [ebx + 0x20], eax
jle 0x48401d
movzx eax, word [ecx]
cmp eax, dword [ebp - 0xc]
je 0x484014
mov eax, dword [ebx + 0x24]
inc edx
lea ecx, [ecx + eax*2]
cmp edx, dword [ebx + 0x20]
jl 0x484000
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x34], ecx
cmp edx, dword [ebx + 0x20]
jge 0x4840c5
mov dword [ebp - 0x38], ecx
cmp ecx, dword [ebx + 0x30]
jbe 0x484076
mov eax, dword [ebx + 0x24]
add eax, eax
add ecx, 2
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x28], eax
sub ecx, eax
mov dword [ebp - 0x38], ecx
lea edx, [ecx + 2]
mov ecx, dword [ebp - 0xc]
call fcn.004718ee
test eax, eax
jne 0x48406d
mov ecx, dword [ebp - 0x38]
movzx eax, word [ecx]
cmp eax, dword [ebp - 0x30]
je 0x4840cb
xor eax, eax
mov dword [ebp - 0x18], eax
cmp ecx, dword [ebx + 0x30]
jbe 0x484070
mov eax, dword [ebp - 0x28]
jmp 0x48403f
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x34]
inc edx
mov dword [ebp - 0x10], edx
cmp edx, dword [ebx + 0x20]
jge 0x4840c5
mov eax, dword [ebx + 0x24]
add eax, eax
lea edx, [ecx + 2]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], edx
add ecx, eax
mov dword [ebp - 0x34], ecx
lea edx, [ecx + 2]
mov ecx, dword [ebp - 0xc]
call fcn.004718ee
test eax, eax
jne 0x4840c2
mov ecx, dword [ebp - 0x34]
movzx eax, word [ecx]
cmp eax, dword [ebp - 0x30]
je 0x4840cb
mov edx, dword [ebp - 0x10]
inc edx
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], edx
cmp edx, dword [ebx + 0x20]
jge 0x4840c5
mov eax, dword [ebp - 0x28]
jmp 0x48408d
mov eax, dword [ebp - 0x18]
movzx ecx, word [edi + 2]
jmp 0x4840d5
mov ecx, 2
mov eax, 1
lea edi, [edi + ecx*2]
test eax, eax
jne 0x48a040
cmp word [edi], 0x71
je 0x48a040
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4094c0
movzx esi, word [edi + 2]
mov eax, dword [ebx + 0x94]
and eax, 0xffff0000
or eax, esi
lea edx, [esi + esi]
mov dword [ebx + 0x94], eax
cmp edx, dword [ebx + 0x14]
jl 0x48412a
or eax, 0x10000
add edi, 4
mov dword [ebx + 0x94], eax
mov dword [ebp - 0x38], edi
jmp 0x4094c0
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
sub eax, esi
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp - 8]
sub ecx, dword [ebx + 0x78]
mov eax, dword [ebx + 0xc]
sar ecx, 1
mov dword [eax + edx*4 + 4], ecx
cmp dword [ebp + 0xc], edx
jg 0x484152
lea eax, [edx + 2]
mov dword [ebp + 0xc], eax
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4094c0
cmp dword [ebx + 0x9c], 1
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0xc], eax
jne 0x48417c
mov esi, 1
mov dword [ebx + 0x9c], edx
jmp 0x48417e
xor esi, esi
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push 0
push ebx
push dword [ebp + 0xc]
lea edx, [edi + 4]
push dword [ebp + 8]
call fcn.00409460
mov ecx, eax
add esp, 0x14
cmp ecx, 1
je 0x4841f7
cmp ecx, 0xfffffc19
je 0x4841f7
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0xb0], eax
cmp ecx, 0xfffffc20
jne 0x4841df
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
cmp dword [ebx + 0x80], eax
jae 0x483bed
cmp word [edi], 0x71
je 0x4841e7
cmp word [eax], 0x71
jne 0x483bed
jmp 0x4841e7
test ecx, ecx
jne 0x483bed
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x48417e
jmp 0x484200
mov eax, dword [ebx + 0x80]
mov dword [ebp + 8], eax
cmp word [edi], 0x72
je case.0x4094e0.151
test esi, esi
jne 0x409602
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x484212
mov eax, dword [ebx + 0x90]
add edi, 4
mov dword [ebp - 0x38], edi
mov dword [ebp + 0xc], eax
jmp 0x4094c0
cmp dword [ebx + 0x9c], 1
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0xc], eax
jne 0x484253
mov esi, 1
mov dword [ebx + 0x9c], edx
jmp 0x484255
xor esi, esi
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push 0
push ebx
push dword [ebp + 0xc]
lea edx, [edi + 4]
push dword [ebp + 8]
call fcn.00409460
mov ecx, eax
mov eax, dword [ebp - 0xc]
add esp, 0x14
mov dword [ebx + 0xb0], eax
cmp ecx, 0xfffffc20
jg 0x4842b1
jne 0x4842c6
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
cmp dword [ebx + 0x80], eax
jae 0x4842e1
cmp word [edi], 0x71
je 0x4842a1
cmp word [eax], 0x71
jne 0x4842e1
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x484255
jmp 0x4842ef
mov eax, ecx
sub eax, 0
je 0x4842a1
dec eax
je case.0x4094e0.151
mov eax, ecx
jmp 0x409607
cmp ecx, 0xfffffc19
je case.0x4094e0.151
lea eax, [ecx + 0x3e4]
cmp eax, 3
ja 0x483bed
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x4842e1
test esi, esi
jne 0x409602
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4094c0
cmp dword [ebp - 0x20], edx
je 0x484346
movzx ecx, word [edi + 2]
test ecx, ecx
jle 0x484360
mov eax, dword [ebp - 8]
sub eax, 2
dec ecx
mov dword [ebp - 8], eax
cmp eax, dword [ebx + 0x78]
jb case.0x4094e0.151
mov ax, word [eax]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [ebp - 8]
jne 0x484340
sub eax, 2
mov dword [ebp - 8], eax
test ecx, ecx
jg 0x48430f
jmp 0x484363
movzx eax, word [edi + 2]
mov ecx, dword [ebp - 8]
neg eax
lea ecx, [ecx + eax*2]
mov eax, ecx
mov dword [ebp - 8], ecx
cmp eax, dword [ebx + 0x78]
jb case.0x4094e0.151
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x88]
jae 0x484371
mov dword [ebx + 0x88], eax
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4094c0
cmp dword [0x4c34ec], edx
je 0x48444b
mov dword [ebp - 0xd4], 2
movzx eax, word [edi + 2]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebx + 0x78]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp + 8]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 8]
sub eax, dword [ebx + 0x78]
sar eax, 1
mov dword [ebp - 0xbc], eax
movzx eax, word [edi + 4]
mov dword [ebp - 0xac], eax
movzx eax, word [edi + 6]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0xb8], eax
movzx eax, word [ebx + 0x94]
mov dword [ebp - 0xb4], eax
test eax, eax
jne 0x484415
mov dword [ebp - 0xb4], 0xffffffff
mov eax, dword [ebx + 0xac]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebx + 0xb4]
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0xd4]
push eax
call dword [0x4c34ec]
add esp, 4
test eax, eax
jg case.0x4094e0.151
js 0x409607
add edi, 8
mov dword [ebp - 0x38], edi
jmp 0x4094c0
movzx eax, word [edi + 2]
mov ecx, dword [ebx + 0x74]
lea esi, [ecx + eax*2]
cmp esi, ecx
jne 0x484468
xor edx, edx
jmp 0x48446c
movzx edx, word [esi + 4]
mov ecx, dword [ebx + 0xa8]
test ecx, ecx
je 0x484493
mov eax, dword [ebp - 8]
cmp edx, dword [ecx + 4]
jne 0x48448d
cmp eax, dword [ecx + 0x14]
jne 0x48448d
mov eax, 0xffffffe6
jmp 0x409607
mov ecx, dword [ecx]
test ecx, ecx
jne 0x484479
mov dword [ebp - 0x54], edx
mov eax, dword [ebx + 0x94]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x44], eax
mov eax, dword [ebx + 0xa8]
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x58]
mov dword [ebx + 0xa8], eax
mov ecx, dword [ebx + 0x10]
add edi, 4
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x4c], ecx
cmp ecx, 0x1e
jg 0x4844d3
lea eax, [ebp - 0x14c]
mov dword [ebp - 0x50], eax
jmp 0x4844f2
lea eax, [ecx*4]
push eax
call dword [0x4bbddc]
add esp, 4
mov dword [ebp - 0x50], eax
test eax, eax
je 0x48a234
mov ecx, dword [ebp - 0x4c]
shl ecx, 2
push ecx
push dword [ebx + 0xc]
push eax
call fcn.0041faa0
mov eax, 0x82
add esp, 0xc
cmp word [esi], ax
sbb eax, eax
inc eax
mov dword [ebp - 0x30], eax
test eax, eax
je 0x48451e
mov dword [ebx + 0x9c], 2
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [esi]
push ebx
movzx eax, byte [eax + 0x49e530]
push dword [ebp + 0xc]
lea edx, [esi + eax*2]
push dword [ebp + 8]
call fcn.00409460
mov ecx, dword [ebp - 0x4c]
add esp, 0x14
shl ecx, 2
push ecx
push dword [ebp - 0x50]
mov dword [ebp - 0xc], eax
push dword [ebx + 0xc]
call fcn.0041faa0
mov eax, dword [ebp - 0x48]
mov dword [ebx + 0x94], eax
mov eax, dword [ebp - 0x58]
mov dword [ebx + 0xa8], eax
mov eax, dword [ebp - 0xc]
add esp, 0xc
cmp eax, 1
je 0x4845bb
cmp eax, 0xfffffc19
je 0x4845bb
cmp eax, 0xfffffc1c
jl 0x484590
cmp eax, 0xfffffc20
jle case.0x4094e0.151
test eax, eax
jne 0x48a211
lea eax, [ebp - 0x58]
mov dword [ebx + 0xa8], eax
movzx eax, word [esi + 2]
cmp word [esi + eax*2], 0x71
lea esi, [esi + eax*2]
jne 0x48a1e8
mov eax, dword [ebp - 0x30]
jmp 0x484510
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je 0x4845d2
push eax
call dword [0x4bb80c]
add esp, 4
mov eax, dword [ebx + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [ebx + 0x80]
mov dword [ebp + 8], eax
jmp 0x4094c0
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x4845e9
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4094c0
add edi, 2
mov dword [ebp - 0x38], edi
mov edx, edi
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x71
lea edx, [edx + eax*2]
je 0x48460a
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
add edx, 4
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x4094c0
jmp 0x409607
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x484642
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4094c0
movzx esi, word [edi + 2]
add edi, 2
mov dword [ebp - 0x10], 1
cmp esi, 0x80
je 0x48467d
cmp esi, 0x85
jne 0x4847ec
movzx edx, word [edi + 4]
mov dword [ebp - 0x18], edx
lea eax, [edx + edx]
cmp eax, dword [ebx + 0x14]
jge case.0x4094e0.126
xor ecx, ecx
mov dword [ebp - 0x34], ecx
mov ecx, edi
sub ecx, dword [ebx + 0x74]
shl eax, 2
sar ecx, 1
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x28], eax
mov edx, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 0x10]
sub eax, dword [ebp - 0x18]
mov dword [ebp - 0x38], edx
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x94]
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 8]
sub edx, dword [ebx + 0x78]
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebp - 0x18]
mov eax, dword [ebx + 0xc]
sar edx, 1
mov dword [eax + ecx*4], edx
cmp esi, 0x82
jb 0x4846f0
mov dword [ebx + 0x9c], 2
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x49e530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00409460
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1a
jne 0x484749
mov eax, dword [ebx + 0x90]
mov ecx, dword [ebp - 0xc]
mov dword [ebp + 0xc], eax
mov eax, dword [ebx + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [ebx + 0x74]
lea edi, [eax + ecx*2]
mov ecx, 1
mov dword [ebp - 0x34], ecx
jmp 0x4846c1
cmp ecx, 0xfffffc20
jne 0x484776
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
cmp dword [ebx + 0x80], eax
jae 0x483bed
cmp word [edi], 0x71
je 0x48477e
cmp word [eax], 0x71
jne 0x483bed
jmp 0x48477e
test ecx, ecx
jne 0x483bed
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0x94], eax
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x4846ca
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x4847c8
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x38]
mov dword [ecx + eax], edx
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x2c]
mov dword [ecx + eax + 4], edx
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebp - 0x18]
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x1c]
mov dword [eax + ecx*4], edx
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0x10], 0
jne 0x4864c5
test eax, eax
je case.0x4094e0.151
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4094c0
mov dword [ebp - 0x10], 0
mov eax, edi
sub eax, dword [ebx + 0x74]
mov dword [ebp - 0x30], 0
sar eax, 1
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0x94]
mov dword [ebp - 0x28], eax
cmp esi, 0x82
jb 0x484818
mov dword [ebx + 0x9c], 2
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x49e530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00409460
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1a
jne 0x48486d
mov eax, dword [ebx + 0x90]
mov ecx, dword [ebp - 0xc]
mov dword [ebp + 0xc], eax
mov eax, dword [ebx + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [ebx + 0x74]
mov dword [ebp - 0x30], 1
lea edi, [eax + ecx*2]
jmp 0x484806
cmp ecx, 0xfffffc20
jne 0x48489a
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
cmp dword [ebx + 0x80], eax
jae 0x483bed
cmp word [edi], 0x71
je 0x4848a2
cmp word [eax], 0x71
jne 0x483bed
jmp 0x4848a2
test ecx, ecx
jne 0x483bed
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
jne 0x4848be
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x94], eax
jmp 0x484806
cmp dword [ebp - 0x30], 0
jne 0x4864c5
cmp dword [ebp - 0x10], 0
je case.0x4094e0.151
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4094c0
mov edx, dword [ebp + 0x14]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
mov dword [ebp + 0x14], edx
jmp 0x40956d
cmp eax, 0x77
jb 0x409579
mov eax, dword [ebp - 8]
mov dword [ebx + 0x84], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x90], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0x80], eax
jmp 0x409602
cmp dword [eax + 4], ecx
jne 0x40999b
mov eax, dword [ebp - 8]
mov dword [ebx + 0x84], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0x80], eax
mov eax, 1
jmp 0x409607
mov ecx, dword [ebp - 0x10]
or eax, 0x10000
mov dword [ebx + 0x94], eax
jmp 0x4095b5
mov eax, dword [ebx + 0xc]
lea ecx, [eax + ecx*4]
mov dword [ebp - 0x30], ecx
lea ecx, [eax + edx*4]
mov eax, dword [ebp - 0x30]
cmp eax, ecx
jae 0x4099c2
mov edi, dword [ebp - 0x30]
sub ecx, eax
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x38]
jmp 0x4099c2
mov eax, dword [ebp - 8]
cmp eax, ecx
je 0x4095c2
movzx ecx, word [edi]
cmp ecx, 0x75
je 0x48a2a8
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
push ebx
push edx
push dword [ebp + 8]
cmp ecx, 0x74
jne 0x48a057
mov esi, dword [ebp - 8]
lea edx, [edi + 4]
mov ecx, esi
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov edi, dword [ebp - 0x18]
movzx eax, word [edi]
cmp eax, 0x7b
je 0x48a23e
mov ecx, 0x82
cmp ax, cx
jb 0x40952b
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
jmp 0x409607
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x48], edx
je 0x484a0f
cmp eax, dword [ebx + 0x78]
je case.0x4094e0.151
cmp eax, dword [ebx + 0x78]
jne case.0x4094e0.151
add edi, 2
mov dword [ebp - 0x38], edi
jmp 0x4094c0
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x48], edx
je 0x484a34
cmp eax, dword [ebx + 0x78]
je case.0x4094e0.151
mov ecx, dword [ebx + 0x78]
cmp eax, ecx
je 0x4097b6
cmp eax, dword [ebx + 0x7c]
je case.0x4094e0.151
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x484a77
cmp eax, ecx
jbe case.0x4094e0.151
push dword [ebp - 0x20]
lea eax, [ebx + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.00471953
add esp, 0xc
test eax, eax
je case.0x4094e0.151
jmp 0x4097b6
mov esi, dword [ebx + 0x1c]
lea edx, [esi + esi]
lea eax, [ecx + edx]
cmp dword [ebp - 8], eax
jb case.0x4094e0.151
mov ecx, dword [ebp - 8]
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [ebx + 0x34]
jne case.0x4094e0.151
cmp esi, 1
je 0x4097b6
mov ax, word [ecx + 2]
cmp ax, word [ebx + 0x36]
jne case.0x4094e0.151
jmp 0x4097b6
mov ecx, dword [ebx + 0x98]
mov eax, dword [ebx + 0x78]
lea eax, [eax + ecx*2]
cmp dword [ebp - 8], eax
jne case.0x4094e0.151
add edi, 2
mov dword [ebp - 0x38], edi
jmp 0x4094c0
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp + 8], eax
mov dword [ebp - 0x38], edi
jmp 0x4094c0
mov ecx, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x484bad
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x484b76
push dword [ebp - 0x20]
lea eax, [ebx + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.004080a0
add esp, 0xc
test eax, eax
jne 0x4097b6
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
je case.0x4094e0.151
add eax, 2
cmp eax, dword [ebx + 0x7c]
jb case.0x4094e0.151
cmp dword [ebx + 0x18], 0
jne case.0x4094e0.151
cmp dword [ebx + 0x1c], 2
jne case.0x4094e0.151
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne case.0x4094e0.151
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle case.0x4094e0.151
mov eax, 0xfffffff4
jmp 0x409607
mov edx, dword [ebx + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x484b1b
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne 0x484b18
cmp edx, 1
je 0x4097b6
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [ebx + 0x36]
jne 0x484b18
jmp 0x4097b6
cmp dword [ebx + 0x4c], edx
jne case.0x4094e0.151
cmp dword [ebx + 0x8c], edx
jmp 0x484bc5
cmp dword [ebx + 0x8c], 0
je 0x4097b6
cmp eax, dword [ebx + 0x88]
jbe 0x4097b6
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
add edi, 2
mov dword [ebp - 0x38], edi
jmp 0x4094c0
cmp dword [ebx + 0x4c], edx
jne case.0x4094e0.151
cmp dword [ebx + 0x5c], edx
je case.0x4094e0.23
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jb case.0x4094e0.151
cmp dword [ebx + 0x8c], edx
jmp 0x484bc5
mov ecx, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x484bbe
mov edx, dword [ebx + 0x18]
lea esi, [ebx + 0x1c]
test edx, edx
je 0x484c40
push dword [ebp - 0x20]
push esi
push ecx
mov ecx, eax
call fcn.004080a0
add esp, 0xc
test eax, eax
jne 0x484c75
jmp 0x484b18
mov edx, dword [esi]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x484b1b
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne 0x484b18
cmp edx, 1
je 0x484c75
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [ebx + 0x36]
jne 0x484b18
mov ecx, dword [esi]
mov eax, dword [ebx + 0x7c]
add ecx, ecx
sub eax, ecx
cmp dword [ebp - 8], eax
mov eax, dword [ebp - 8]
jne 0x484b1b
jmp 0x484bbe
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x20], edx
je 0x484e40
cmp eax, dword [ebx + 0x78]
je 0x484d78
lea edx, [eax - 2]
mov ecx, 0xfc00
mov ax, word [edx]
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x484cbf
sub edx, 2
cmp edx, dword [ebx + 0x88]
jae 0x484ccd
mov dword [ebx + 0x88], edx
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x484cf8
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
cmp dword [ebx + 0x58], 0
je 0x484d5a
cmp ecx, 0x5f
jne 0x484d0b
mov eax, dword [ebp - 8]
lea esi, [ecx - 0x5e]
jmp 0x484d7a
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and ecx, 0x8000007f
jns 0x484d2d
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
mov eax, dword [eax*4 + 0x4b5ce8]
cmp eax, 1
je 0x484d50
cmp eax, 3
jne 0x484d75
mov eax, dword [ebp - 8]
mov esi, 1
jmp 0x484d7a
cmp ecx, 0x100
jae 0x484d75
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je 0x484d75
mov eax, dword [ebp - 8]
mov esi, 1
jmp 0x484d7a
mov eax, dword [ebp - 8]
xor esi, esi
cmp eax, dword [ebx + 0x7c]
jae 0x484de2
movzx ecx, word [eax]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x484dad
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax + 2]
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
cmp dword [ebx + 0x58], 0
je 0x484e29
cmp ecx, 0x5f
je 0x484f69
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and ecx, 0x8000007f
js 0x484f15
jmp 0x484f1a
cmp dword [ebx + 0x8c], 0
je 0x484e07
cmp eax, dword [ebx + 0x88]
jbe 0x484e07
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
xor ecx, ecx
mov ax, word [edi]
add edi, 2
mov dword [ebp - 0x38], edi
cmp ax, 5
jne 0x484f73
cmp ecx, esi
jne 0x4094c0
jmp case.0x4094e0.151
cmp ecx, 0x100
jae 0x484e07
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
jne 0x484f69
jmp 0x484e07
cmp eax, dword [ebx + 0x78]
je 0x484edf
cmp eax, dword [ebx + 0x88]
ja 0x484e5d
add eax, 0xfffffffe
mov dword [ebx + 0x88], eax
mov eax, dword [ebp - 8]
movzx ecx, word [eax - 2]
cmp dword [ebx + 0x58], edx
je 0x484ebf
cmp ecx, 0x5f
jne 0x484e70
lea esi, [ecx - 0x5e]
jmp 0x484ee1
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and ecx, 0x8000007f
jns 0x484e92
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
mov eax, dword [eax*4 + 0x4b5ce8]
cmp eax, 1
je 0x484eb5
cmp eax, 3
jne 0x484edc
mov eax, dword [ebp - 8]
mov esi, 1
jmp 0x484ee1
mov edx, 0xff
cmp cx, dx
ja 0x484edf
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je 0x484edc
mov eax, dword [ebp - 8]
mov esi, 1
jmp 0x484ee1
mov eax, dword [ebp - 8]
xor esi, esi
cmp eax, dword [ebx + 0x7c]
jae 0x484de2
cmp dword [ebx + 0x58], 0
je 0x484f49
movzx ecx, word [eax]
cmp ecx, 0x5f
je 0x484f69
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and ecx, 0x8000007f
jns 0x484f1a
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
mov eax, dword [eax*4 + 0x4b5ce8]
cmp eax, 1
je 0x484f69
cmp eax, 3
jne 0x484e07
lea ecx, [eax - 2]
jmp 0x484e09
movzx eax, word [eax]
mov ecx, 0xff
cmp ax, cx
ja 0x484e07
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je 0x484e07
mov ecx, 1
jmp 0x484e09
cmp ecx, esi
je 0x4094c0
jmp case.0x4094e0.151
mov edx, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x7c]
test edx, edx
je 0x484faf
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0x20]
cmp eax, ecx
jae 0x484fe7
push esi
lea eax, [ebx + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.004080a0
add esp, 0xc
test eax, eax
jne case.0x4094e0.151
jmp 0x484fe4
mov edx, dword [ebx + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x484fe1
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne 0x484fe1
cmp edx, 1
je case.0x4094e0.151
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [ebx + 0x36]
je case.0x4094e0.151
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
je 0x485027
add eax, 2
cmp eax, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
jb 0x485027
cmp dword [ebx + 0x18], 0
jne 0x485027
cmp dword [ebx + 0x1c], 2
jne 0x485027
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne 0x485024
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
mov eax, dword [ebp - 8]
mov ecx, dword [ebx + 0x7c]
cmp eax, ecx
jae 0x409d24
add eax, 2
mov dword [ebp - 8], eax
test esi, esi
je 0x4097b6
cmp eax, ecx
jae 0x4097b6
mov ax, word [eax]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4097b6
add dword [ebp - 8], 2
jmp 0x4097b6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d36
add eax, 2
mov dword [ebp - 8], eax
jmp 0x4097b6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d36
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x4850c9
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4850c9
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x100
jae 0x4097b6
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
jne case.0x4094e0.151
jmp 0x4097b6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d36
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x48512f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48512f
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0xff
ja case.0x4094e0.151
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
je case.0x4094e0.151
jmp 0x4097b6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d36
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x485195
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485195
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x100
jae 0x4097b6
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
jne case.0x4094e0.151
jmp 0x4097b6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d36
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x4851fb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4851fb
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0xff
ja case.0x4094e0.151
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
je case.0x4094e0.151
jmp 0x4097b6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d36
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x485261
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485261
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x100
jae 0x4097b6
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
jne case.0x4094e0.151
jmp 0x4097b6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d36
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x4852c7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4852c7
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0xff
ja case.0x4094e0.151
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je case.0x4094e0.151
jmp 0x4097b6
movzx eax, word [eax]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov eax, dword [ebp - 8]
jmp 0x409940
cmp ecx, 0xa
je 0x4097b6
jbe case.0x4094e0.151
cmp ecx, 0xc
ja case.0x4094e0.151
jmp 0x48536d
cmp dword [ebx + 0x8c], 0
je 0x4097b6
cmp eax, dword [ebx + 0x88]
jbe 0x4097b6
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
jmp 0x4097b6
cmp ecx, 0x85
je 0x48536d
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x4094e0.151
cmp dword [ebx + 0x6c], 0
jne case.0x4094e0.151
jmp 0x4097b6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d36
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x4853c4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4853c4
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x180e
ja 0x485408
je case.0x4094e0.151
cmp ecx, 0xa0
ja 0x4853f7
je case.0x4094e0.151
cmp ecx, 9
je case.0x4094e0.151
cmp ecx, 0x20
je case.0x4094e0.151
jmp 0x4097b6
cmp ecx, 0x1680
je case.0x4094e0.151
jmp 0x4097b6
cmp ecx, 0x205f
ja 0x48543f
je case.0x4094e0.151
cmp ecx, 0x2000
jb 0x4097b6
cmp ecx, 0x200a
jbe case.0x4094e0.151
cmp ecx, 0x202f
je case.0x4094e0.151
jmp 0x4097b6
cmp ecx, 0x3000
je case.0x4094e0.151
jmp 0x4097b6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d36
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x485498
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485498
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x180e
ja 0x4854dc
je 0x4097b6
cmp ecx, 0xa0
ja 0x4854cb
je 0x4097b6
cmp ecx, 9
je 0x4097b6
cmp ecx, 0x20
jne case.0x4094e0.151
jmp 0x4097b6
cmp ecx, 0x1680
jne case.0x4094e0.151
jmp 0x4097b6
cmp ecx, 0x205f
ja 0x485513
je 0x4097b6
cmp ecx, 0x2000
jb case.0x4094e0.151
cmp ecx, 0x200a
jbe 0x4097b6
cmp ecx, 0x202f
jne case.0x4094e0.151
jmp 0x4097b6
cmp ecx, 0x3000
jne case.0x4094e0.151
jmp 0x4097b6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d36
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x48556c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48556c
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x85
ja 0x485591
je case.0x4094e0.151
cmp ecx, 0xa
jb 0x4097b6
cmp ecx, 0xd
jbe case.0x4094e0.151
jmp 0x4097b6
cmp ecx, 0x2028
jb 0x4097b6
cmp ecx, 0x2029
jbe case.0x4094e0.151
jmp 0x4097b6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d36
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x4855f6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4855f6
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
cmp ecx, 0x85
ja 0x485615
je 0x4097b6
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x4094e0.151
jmp 0x4097b6
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x4094e0.151
jmp 0x4097b6
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov dword [ebp - 0x30], ecx
jmp 0x409a26
cmp ecx, 0xa
ja case.default.0x48565a
jmp dword [ecx*4 + 0x48c2a3]
cmp esi, 0xf
je case.0x4094e0.151
jmp 0x409a9b
mov al, byte [eax*8 + 0x4ab0d1]
cmp al, 9
je 0x485686
cmp al, 5
je 0x485686
cmp al, 8
je 0x485686
xor ecx, ecx
jmp 0x48568f
mov ecx, 1
jmp 0x48568f
xor ecx, ecx
xor eax, eax
cmp esi, 0xf
sete al
cmp ecx, eax
je case.0x4094e0.151
jmp 0x409a9b
movzx ecx, byte [eax*8 + 0x4ab0d1]
movzx eax, word [edi + 4]
xor edx, edx
cmp eax, dword [ecx*4 + 0x4b5ce8]
setne dl
xor eax, eax
cmp esi, 0x10
sete al
cmp edx, eax
je case.0x4094e0.151
jmp 0x409a9b
movzx eax, byte [eax*8 + 0x4ab0d1]
jmp 0x4856e3
movzx eax, byte [eax*8 + 0x4ab0d0]
xor ecx, ecx
cmp word [edi + 4], ax
setne cl
xor eax, eax
cmp esi, 0x10
sete al
cmp ecx, eax
je case.0x4094e0.151
jmp 0x409a9b
movzx eax, byte [eax*8 + 0x4ab0d1]
mov eax, dword [eax*4 + 0x4b5ce8]
cmp eax, 1
je 0x485686
cmp eax, 3
je 0x485686
xor ecx, ecx
jmp 0x48568f
movzx eax, byte [eax*8 + 0x4ab0d1]
cmp dword [eax*4 + 0x4b5ce8], 6
je 0x485686
cmp edx, 9
je 0x485686
cmp edx, 0xa
jmp 0x485750
cmp edx, 0xb
je 0x485686
cmp edx, 0xc
je 0x485686
cmp edx, 0xd
jmp 0x485767
cmp edx, 0x5f
je 0x485686
jmp 0x48568d
movzx eax, byte [eax*8 + 0x4ab0d1]
cmp dword [eax*4 + 0x4b5ce8], 6
je 0x485686
cmp edx, 9
je 0x485686
cmp edx, 0xa
je 0x485686
jmp 0x48574d
movzx eax, byte [eax*8 + 0x4ab0d1]
mov eax, dword [eax*4 + 0x4b5ce8]
cmp eax, 1
je 0x485686
cmp eax, 3
je 0x485686
jmp 0x485764
cmp edx, 0x24
je 0x485686
cmp edx, 0x40
je 0x485686
cmp edx, 0x60
je 0x485686
cmp edx, 0xa0
jb 0x4857ee
cmp edx, 0xd7ff
jbe 0x485686
cmp edx, 0xe000
jae 0x485686
jmp 0x48568d
cmp esi, 0x10
je case.0x4094e0.151
jmp 0x409a9b
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
jmp 0x4096ee
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov esi, 2
jmp 0x40974f
cmp eax, esi
jb 0x4097b6
jmp 0x484bcb
movzx ecx, word [edi + 2]
xor edx, edx
cmp esi, 0x6e
sete dl
add ecx, ecx
add edi, 4
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x28], edx
cmp ecx, dword [ebp + 0xc]
jge 0x485894
mov eax, dword [ebx + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x485894
mov esi, dword [eax + ecx*4 + 4]
sub esi, dword [eax + ecx*4]
jmp 0x48589e
mov esi, dword [ebx + 0x54]
neg esi
sbb esi, esi
neg esi
dec esi
movzx eax, word [edi]
mov dword [ebp - 0xc], eax
add eax, 0xffffff9e
mov dword [ebp - 0x2c], esi
cmp eax, 7
ja case.default.0x4858ba
movzx eax, byte [eax + 0x48c2d7]
jmp dword [eax*4 + 0x48c2cf]
mov eax, dword [ebp - 0xc]
add eax, 0xffffff9e
movzx ecx, al
movsx edx, byte [eax + 0x49e528]
and ecx, 1
mov dword [ebp - 0xc], ecx
movsx ecx, byte [eax + 0x49e520]
add edi, 2
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x18], edx
test edx, edx
jne 0x485924
mov edx, SysAllocStringLen
mov dword [ebp - 0x18], edx
jmp 0x485924
movzx edx, word [edi + 4]
movzx ecx, word [edi + 2]
xor eax, eax
cmp word [edi], 0x69
mov dword [ebp - 0x10], ecx
sete al
mov dword [ebp - 0x18], edx
mov dword [ebp - 0xc], eax
test edx, edx
jne 0x48591e
mov edx, SysAllocStringLen
mov dword [ebp - 0x18], edx
add edi, 6
mov dword [ebp - 0x38], edi
test esi, esi
je 0x4094c0
jns 0x485936
test ecx, ecx
je 0x4094c0
mov eax, dword [ebp - 8]
mov dword [ebp - 0x30], 1
cmp ecx, 1
jl 0x48597b
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x34]
push ebx
push esi
mov edx, eax
call fcn.004716b8
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x48a3fa
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x30]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x10]
inc edx
mov dword [ebp - 8], eax
mov dword [ebp - 0x30], edx
cmp edx, ecx
jle 0x485945
mov edx, dword [ebp - 0x18]
cmp ecx, edx
je 0x4094c0
cmp dword [ebp - 0xc], 0
je 0x48a34b
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x10], eax
jge case.0x4094e0.151
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x34]
push ebx
push dword [ebp - 0x2c]
mov edx, esi
call fcn.004716b8
add esp, 0xc
test eax, eax
js 0x48a325
inc dword [ebp - 0x10]
lea esi, [esi + eax*2]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x4859b3
jmp 0x409607
push edx
mov edx, dword [ebp - 8]
push ebx
push esi
call fcn.004716b8
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x48a3fa
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0x4094c0
movzx ecx, word [edi + 4]
movzx eax, word [edi + 2]
xor edx, edx
cmp word [edi], 0x69
mov dword [ebp - 0x34], eax
sete dl
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x485a4d
mov dword [ebp - 0x18], SysAllocStringLen
add edi, 6
mov dword [ebp - 0x38], edi
jmp 0x40963b
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov dword [ebp - 0x30], ecx
jmp 0x409689
cmp esi, 0x6a
je case.0x4094e0.151
jmp 0x4097c1
cmp eax, 1
mov eax, dword [ebp - 8]
mov dword [ebp - 0x2c], 1
jl 0x4097da
mov ecx, dword [ebp - 0x34]
cmp eax, dword [ebx + 0x7c]
jae 0x409d24
movzx ebx, word [eax]
add eax, 2
mov dword [ebp - 0x10], ebx
cmp ebx, 0xff
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 8], eax
jbe 0x485acf
cmp esi, 0x6a
je case.0x4094e0.151
jmp 0x485af8
mov ecx, dword [ebp - 0x10]
shr dword [ebp - 0x10], 3
mov ebx, dword [ebp - 0x10]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x1c]
test byte [ebx + ecx], al
mov ebx, dword [ebp + 0x10]
je case.0x4094e0.151
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x34]
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], ecx
jle 0x485aa4
jmp 0x4097d7
lea eax, [edi + 4]
mov dword [ebp - 0x28], eax
movzx eax, word [edi + 2]
movzx edx, word [edi + eax*2]
lea edi, [edi + eax*2]
mov ecx, edx
mov dword [ebp - 0x38], edi
lea eax, [ecx - 0x62]
cmp eax, 7
ja case.default.0x485b2a
movzx eax, byte [eax + 0x48c2e7]
jmp dword [eax*4 + 0x48c2df]
lea eax, [ecx - 0x62]
movzx ecx, al
movsx edx, byte [eax + 0x49e520]
movsx eax, byte [eax + 0x49e528]
add edi, 2
and ecx, 1
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], eax
test eax, eax
jne 0x485b9f
mov eax, SysAllocStringLen
jmp 0x485b9c
movzx eax, word [edi + 4]
xor ecx, ecx
cmp edx, 0x69
movzx edx, word [edi + 2]
sete cl
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x2c], ecx
test eax, eax
jne 0x485b87
mov eax, SysAllocStringLen
mov dword [ebp - 0x10], eax
add edi, 6
mov dword [ebp - 0x38], edi
jmp 0x485b9f
mov ecx, dword [ebp - 0x2c]
mov eax, 1
mov edx, eax
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x30], 1
cmp edx, 1
jl 0x485c1f
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d24
movzx esi, word [eax]
mov ecx, dword [ebp - 0x20]
add eax, 2
mov dword [ebp - 8], eax
test ecx, ecx
je 0x485bf5
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485bf5
mov eax, dword [ebp - 8]
and esi, 0x3ff
movzx eax, word [eax]
shl esi, 0xa
and eax, 0x3ff
or esi, eax
add esi, 0x10000
add dword [ebp - 8], 2
mov edx, dword [ebp - 0x28]
push ecx
mov ecx, esi
call fcn.00471abf
add esp, 4
test eax, eax
je case.0x4094e0.151
mov esi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x18]
inc esi
mov dword [ebp - 0x30], esi
cmp esi, edx
jle 0x485bab
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x10]
cmp edx, eax
je 0x4094c0
mov esi, dword [ebp - 8]
test ecx, ecx
je 0x48a778
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x18], eax
jge case.0x4094e0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx edx, word [esi]
mov ecx, dword [ebp - 0x20]
add esi, 2
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x48a71c
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a71c
movzx eax, word [esi]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or eax, edx
add eax, 0x10000
add esi, 2
jmp 0x48a71f
mov eax, dword [ebx + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 2
jl 0x48a8b3
mov ax, word [ecx]
add ecx, 2
mov dword [ebp - 8], ecx
cmp word [edi + 2], ax
jne case.0x4094e0.151
add edi, 4
jmp 0x4097b9
movzx eax, word [edi + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
add esi, 0x10000
mov edx, 2
jmp 0x4098cf
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x30], ecx
cmp eax, 0xd800
jne 0x485d3d
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov dword [ebp - 0x30], ecx
lea edi, [edi + edx*2]
mov dword [ebp - 0x38], edi
cmp esi, ecx
je 0x4094c0
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4ac470]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x485d6e
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49e5d0]
mov eax, dword [eax*8 + 0x4ab0d4]
add eax, esi
cmp dword [ebp - 0x30], eax
je 0x4094c0
jmp case.0x4094e0.151
movzx ecx, word [edi + 2]
mov edx, 0xff
cmp cx, dx
ja 0x485da9
mov eax, dword [ebx + 0x3c]
movzx edx, byte [eax + ecx]
mov eax, dword [ebp - 8]
jmp 0x485dab
mov edx, ecx
movzx ecx, word [eax]
mov esi, 0xff
cmp cx, si
ja 0x485dc2
mov eax, dword [ebx + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebp - 8]
cmp edx, ecx
jne case.0x4094e0.151
add eax, 2
mov dword [ebp - 8], eax
add edi, 4
jmp 0x4097b9
movzx eax, word [edi + 2]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x2c]
add edi, 4
jmp 0x485eab
mov edx, 1
mov dword [ebp - 0x24], edx
movzx eax, word [edi + 2]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x34], eax
cmp ecx, 0x28
je 0x485e1a
cmp ecx, 0x35
je 0x485e1a
xor eax, eax
mov dword [ebp - 0x2c], eax
add edi, 4
jmp 0x485eab
mov eax, 1
mov dword [ebp - 0x2c], eax
add edi, 4
jmp 0x485eab
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], 0
add edi, 2
jmp 0x485ea4
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], edx
add edi, 2
jmp 0x485ea4
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x34], edx
add edi, 2
jmp 0x485eab
cmp esi, 0x2e
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x2e
mov ecx, esi
sub ecx, eax
movzx eax, cl
movsx ebx, byte [ecx + 0x49e520]
movsx ecx, byte [ecx + 0x49e528]
and eax, 1
add edi, 2
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x34], ecx
test ecx, ecx
jne 0x485eab
mov dword [ebp - 0x34], SysAllocStringLen
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x48611b
movzx eax, word [edi]
mov dword [ebp - 0x18], eax
and eax, 0xfc00
mov dword [ebp - 0x10], 1
mov dword [ebp - 0x28], edi
cmp eax, 0xd800
jne 0x485efe
mov ebx, dword [ebp - 0x18]
movzx eax, word [edi + 2]
and ebx, 0x3ff
and eax, 0x3ff
shl ebx, 0xa
or eax, ebx
mov ebx, dword [ebp + 0x10]
add eax, 0x10000
mov dword [ebp - 0x18], eax
mov eax, 2
mov dword [ebp - 0x10], eax
jmp 0x485f03
mov eax, 1
lea edx, [eax + eax]
add edi, edx
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x38], edi
cmp eax, 1
jle 0x48612c
cmp esi, 0x2e
jb 0x485f6f
mov esi, dword [ebp - 0x18]
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4ac470]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x485f45
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49e5d0]
mov ecx, dword [eax*8 + 0x4ab0d4]
add ecx, esi
cmp ecx, esi
je 0x485f6c
lea edx, [ebp - 0x6c]
call fcn.00471a0c
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
jmp 0x485f76
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x18], 0
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0xc], 1
cmp esi, 1
jl 0x485ffc
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
cmp ecx, eax
ja 0x485fb0
mov eax, dword [ebp - 0x10]
add eax, eax
push eax
push dword [ebp - 0x28]
push ecx
call fcn.00420183
add esp, 0xc
test eax, eax
jne 0x485fad
mov eax, dword [ebp - 0x14]
jmp 0x485feb
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
test edx, edx
jle 0x48a8cd
lea eax, [edx + edx]
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebp - 0x30]
cmp ecx, eax
ja 0x48a8cd
lea eax, [edx + edx]
push eax
lea eax, [ebp - 0x6c]
push eax
push ecx
call fcn.00420183
add esp, 0xc
test eax, eax
jne 0x48a8ca
mov eax, dword [ebp - 0x30]
add dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, esi
jle 0x485f85
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
cmp esi, ecx
je 0x4094c0
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x48a8e8
mov eax, dword [ebp - 8]
mov dword [ebp - 0x30], eax
cmp esi, ecx
jge 0x4860b8
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
cmp ecx, eax
ja 0x48604b
mov eax, dword [ebp - 0x10]
add eax, eax
push eax
push dword [ebp - 0x28]
push ecx
call fcn.00420183
add esp, 0xc
test eax, eax
jne 0x486048
mov eax, dword [ebp - 0x14]
jmp 0x48607a
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
test edx, edx
jle 0x486085
lea eax, [edx + edx]
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebp - 0xc]
cmp ecx, eax
ja 0x486085
lea eax, [edx + edx]
push eax
lea eax, [ebp - 0x6c]
push eax
push ecx
call fcn.00420183
add esp, 0xc
test eax, eax
jne 0x486085
mov eax, dword [ebp - 0xc]
add dword [ebp - 8], eax
inc esi
cmp esi, dword [ebp - 0x34]
jl 0x486020
jmp 0x4860b2
cmp dword [ebx + 0x8c], 0
mov eax, dword [ebp - 8]
je 0x4860b5
cmp eax, dword [ebx + 0x7c]
jb 0x4860b2
cmp eax, dword [ebx + 0x88]
jbe 0x4860b2
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x4094c0
cmp eax, dword [ebp - 0x30]
je 0x40952e
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov ax, word [esi - 2]
sub esi, 2
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
mov dword [ebp - 8], esi
cmp ax, cx
jne 0x486111
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x30]
jne 0x4860cc
jmp 0x40952e
movzx ebx, word [edi]
add edi, 2
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x38], edi
jmp 0x48612f
mov eax, dword [ebp - 0x2c]
cmp esi, 0x2e
jb 0x486294
mov esi, dword [ebp - 0x18]
test ecx, ecx
je 0x486185
cmp esi, 0x7f
jbe 0x486185
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4ac470]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x486167
dec eax
or eax, 0xffffff80
inc eax
mov edx, dword [ebp - 0x24]
add ecx, eax
movzx eax, word [ecx*2 + 0x49e5d0]
mov eax, dword [eax*8 + 0x4ab0d4]
add eax, esi
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x2c]
jmp 0x48619a
cmp esi, 0xff
ja 0x486197
mov eax, dword [ebx + 0x40]
movzx esi, byte [eax + esi]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x14], esi
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 8]
mov dword [ebp - 0x10], 1
cmp ecx, 1
jl 0x4861dd
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx edx, word [esi]
cmp dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x24]
je 0x4861cf
movzx ebx, word [esi]
cmp dword [ebp - 0x14], ebx
mov ebx, dword [ebp + 0x10]
jne case.0x4094e0.151
inc dword [ebp - 0x10]
add esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x10], ecx
jle 0x4861ac
cmp ecx, dword [ebp - 0x34]
je 0x4094c0
test eax, eax
jne 0x48a9b0
mov eax, dword [ebp - 8]
mov esi, eax
mov dword [ebp - 0x10], esi
cmp ecx, dword [ebp - 0x34]
jge 0x48624e
mov esi, dword [ebp - 0x18]
cmp eax, dword [ebx + 0x7c]
jae 0x486226
movzx edx, word [eax]
cmp esi, edx
mov edx, dword [ebp - 0x24]
je 0x486218
movzx edx, word [eax]
cmp dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x24]
jne 0x48624b
add eax, 2
inc ecx
mov dword [ebp - 8], eax
cmp ecx, dword [ebp - 0x34]
jl 0x4861fe
jmp 0x48624b
cmp dword [ebx + 0x8c], 0
je 0x48624b
cmp eax, dword [ebx + 0x88]
jbe 0x48624b
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
mov esi, dword [ebp - 0x10]
test edx, edx
jne 0x4094c0
cmp eax, esi
je 0x40952e
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
sub esi, 2
add esp, 0x14
mov dword [ebp - 8], esi
test eax, eax
jne 0x409607
cmp esi, dword [ebp - 0x10]
jne 0x486261
jmp 0x40952e
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xc], 1
cmp ecx, 1
jge 0x4862a8
mov esi, dword [ebp - 8]
jmp 0x4862d7
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d24
movzx eax, word [eax]
mov esi, dword [ebp - 8]
add esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x18], eax
jne case.0x4094e0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, ecx
jle 0x4862a8
mov eax, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x34]
je 0x4094c0
test eax, eax
jne 0x48aa24
mov eax, dword [ebp - 8]
mov esi, eax
mov dword [ebp - 0x10], esi
cmp ecx, dword [ebp - 0x34]
jge 0x486317
mov esi, dword [ebp - 0x18]
cmp eax, dword [ebx + 0x7c]
jae 0x48635d
movzx eax, word [eax]
cmp esi, eax
jne 0x486311
add dword [ebp - 8], 2
mov eax, dword [ebp - 8]
inc ecx
cmp ecx, dword [ebp - 0x34]
jl 0x4862f8
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
test edx, edx
jne 0x4094c0
cmp eax, esi
je 0x40952e
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
sub esi, 2
add esp, 0x14
mov dword [ebp - 8], esi
test eax, eax
jne 0x409607
cmp esi, dword [ebp - 0x10]
jne 0x48632a
jmp 0x40952e
cmp dword [ebx + 0x8c], 0
je 0x486314
cmp eax, dword [ebx + 0x88]
jbe 0x486314
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
jmp 0x486314
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d36
cmp dword [ebp - 0x20], edx
je 0x486494
movzx edx, word [edi + 2]
mov eax, edx
add edi, 4
and eax, 0xfc00
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x38], edi
cmp eax, 0xd800
jne 0x4863d6
movzx eax, word [edi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add edi, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x38], edi
mov eax, dword [ebp - 8]
add eax, 2
movzx ecx, word [eax - 2]
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x30], ecx
cmp eax, 0xd800
jne 0x486417
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov dword [ebp - 0x30], ecx
cmp esi, 0x1f
jne 0x486429
cmp edx, ecx
jne 0x4094c0
jmp case.0x4094e0.151
cmp edx, 0x7f
jbe 0x48646c
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ac470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x486454
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49e5d0]
mov ecx, dword [ebp - 0x30]
mov eax, dword [eax*8 + 0x4ab0d4]
add eax, edx
jmp 0x48647f
cmp edx, 0xff
ja 0x48647d
mov eax, dword [ebx + 0x40]
movzx eax, byte [eax + edx]
jmp 0x48647f
mov eax, edx
cmp edx, ecx
je case.0x4094e0.151
cmp eax, ecx
jne 0x4094c0
jmp case.0x4094e0.151
movzx edx, word [eax]
movzx ecx, word [edi + 2]
add eax, 2
mov dword [ebp - 8], eax
cmp ecx, edx
je case.0x4094e0.151
cmp esi, 0x20
jne 0x4864c5
cmp ecx, 0xff
ja 0x4864bd
mov eax, dword [ebx + 0x40]
movzx ecx, byte [eax + ecx]
cmp ecx, edx
je case.0x4094e0.151
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4094c0
movzx eax, word [edi + 2]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x2c]
add edi, 4
jmp 0x4865b8
movzx eax, word [edi + 2]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x14], eax
cmp ecx, 0x42
je 0x486506
cmp ecx, 0x4f
je 0x486506
xor eax, eax
mov dword [ebp - 0x2c], eax
add edi, 4
jmp 0x4865b8
mov eax, 1
mov dword [ebp - 0x2c], eax
add edi, 4
jmp 0x4865b8
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], 0
add edi, 2
jmp 0x4865b1
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], edx
add edi, 2
jmp 0x4865b1
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x14], edx
add edi, 2
jmp 0x4865b8
movzx eax, word [edi + 2]
mov edx, 1
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], 0
add edi, 4
jmp 0x4865b8
cmp esi, 0x48
sbb eax, eax
and eax, 0xfffffff3
add eax, 0x48
mov ecx, esi
sub ecx, eax
movzx eax, cl
movsx ebx, byte [ecx + 0x49e520]
movsx ecx, byte [ecx + 0x49e528]
and eax, 1
add edi, 2
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x4865b8
mov dword [ebp - 0x14], SysAllocStringLen
movzx ecx, word [edi]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x20]
add edi, 2
mov dword [ebp - 0x38], edi
test ecx, ecx
je 0x486601
mov eax, dword [ebp - 0x34]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4865fe
movzx eax, word [edi]
and dword [ebp - 0x34], 0x3ff
shl dword [ebp - 0x34], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x34]
add eax, 0x10000
add edi, 2
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], edi
mov eax, dword [ebp - 0x2c]
cmp esi, 0x48
jb 0x486910
mov esi, dword [ebp - 0x34]
test ecx, ecx
je 0x486657
cmp esi, 0x7f
jbe 0x486657
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4ac470]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x486639
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49e5d0]
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax*8 + 0x4ab0d4]
add eax, esi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x2c]
jmp 0x48666c
cmp esi, 0xff
ja 0x486669
mov eax, dword [ebx + 0x40]
movzx esi, byte [eax + esi]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], 1
test ecx, ecx
je 0x486770
mov esi, dword [ebp - 0x1c]
cmp esi, 1
jl 0x4866f0
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d24
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, edx
and eax, 0xfc00
mov dword [ebp - 0x18], edx
cmp eax, 0xd800
jne 0x4866cd
mov eax, dword [ebp - 8]
and dword [ebp - 0x18], 0x3ff
movzx eax, word [eax]
shl dword [ebp - 0x18], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x18]
add eax, 0x10000
add dword [ebp - 8], 2
jmp 0x4866d0
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x34], eax
je case.0x4094e0.151
cmp dword [ebp - 0x10], eax
je case.0x4094e0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, esi
jle 0x486683
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
cmp dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0x24]
je 0x4094c0
test eax, eax
jne 0x48aa93
mov eax, dword [ebp - 8]
mov esi, eax
mov dword [ebp - 0x18], esi
test ecx, ecx
je 0x48686f
mov esi, dword [ebp - 0x1c]
cmp esi, dword [ebp - 0x14]
jge 0x4867dd
mov dword [ebp - 0xc], 1
cmp eax, dword [ebx + 0x7c]
jae 0x486840
movzx eax, word [eax]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x2c], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4867b8
movzx eax, word [ecx + 2]
and dword [ebp - 0x2c], 0x3ff
shl dword [ebp - 0x2c], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x2c]
mov dword [ebp - 0xc], 2
add eax, 0x10000
jmp 0x4867bb
cmp dword [ebp - 0x1c], 1
jl 0x4866f0
mov esi, dword [ebp - 8]
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx ecx, word [esi]
cmp dword [ebp - 0x34], ecx
je case.0x4094e0.151
movzx edx, word [esi]
cmp dword [ebp - 0x10], edx
je case.0x4094e0.151
mov ecx, dword [ebp - 0xc]
inc ecx
add esi, 2
cmp ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 8], esi
jle 0x48677d
jmp 0x4866f3
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x34], eax
je 0x4867da
cmp dword [ebp - 0x10], eax
je 0x4867da
mov eax, dword [ebp - 0xc]
inc esi
lea ecx, [ecx + eax*2]
mov dword [ebp - 8], ecx
mov eax, ecx
cmp esi, dword [ebp - 0x14]
jl 0x486726
mov eax, dword [ebp - 8]
test edx, edx
jne 0x4094c0
cmp eax, dword [ebp - 0x18]
je 0x40952e
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov ax, word [esi - 2]
sub esi, 2
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
mov dword [ebp - 8], esi
cmp ax, cx
jne 0x486836
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x18]
jne 0x4867f1
jmp 0x40952e
cmp dword [ebx + 0x8c], 0
je 0x4867dd
cmp eax, dword [ebx + 0x88]
jbe 0x4867dd
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x4867dd
mov eax, 0xfffffff4
jmp 0x409607
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jge 0x4868ca
mov esi, dword [ebp - 0x34]
cmp eax, dword [ebx + 0x7c]
jae 0x4868a2
movzx ebx, word [eax]
cmp esi, ebx
mov ebx, dword [ebp + 0x10]
je 0x4868c7
movzx edx, word [eax]
cmp dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x24]
je 0x4868c7
add eax, 2
inc ecx
mov dword [ebp - 8], eax
cmp ecx, dword [ebp - 0x14]
jl 0x48687a
jmp 0x4868c7
cmp dword [ebx + 0x8c], 0
je 0x4868c7
cmp eax, dword [ebx + 0x88]
jbe 0x4868c7
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
mov esi, dword [ebp - 0x18]
test edx, edx
jne 0x4094c0
cmp eax, esi
je 0x40952e
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x18]
jne 0x4868dd
jmp 0x40952e
mov dword [ebp - 0xc], 1
test ecx, ecx
je 0x486a0e
mov esi, dword [ebp - 0x1c]
cmp esi, 1
jl 0x48698e
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d24
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x20]
cmp eax, 0xd800
jne 0x486974
mov eax, dword [ebp - 8]
and dword [ebp - 0x10], 0x3ff
movzx eax, word [eax]
shl dword [ebp - 0x10], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x10]
add eax, 0x10000
add dword [ebp - 8], 2
jmp 0x486977
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x34], eax
je case.0x4094e0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, esi
jle 0x486927
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
cmp dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0x24]
je 0x4094c0
test eax, eax
jne 0x48aba2
mov eax, dword [ebp - 8]
mov esi, eax
mov dword [ebp - 0x18], esi
test ecx, ecx
je 0x486aff
mov esi, dword [ebp - 0x1c]
cmp esi, dword [ebp - 0x14]
jge 0x486a6d
mov dword [ebp - 0xc], 1
cmp eax, dword [ebx + 0x7c]
jae 0x486ad0
movzx eax, word [eax]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x10], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x486a4d
movzx eax, word [ecx + 2]
and dword [ebp - 0x10], 0x3ff
shl dword [ebp - 0x10], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], 2
add eax, 0x10000
jmp 0x486a50
cmp dword [ebp - 0x1c], 1
jl 0x48698e
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d24
movzx eax, word [eax]
mov esi, dword [ebp - 8]
add esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x34], eax
je case.0x4094e0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x1c]
jle 0x486a18
mov eax, dword [ebp - 0x2c]
jmp 0x486991
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x34], eax
je 0x486a6a
mov eax, dword [ebp - 0xc]
inc esi
lea ecx, [ecx + eax*2]
mov dword [ebp - 8], ecx
mov eax, ecx
cmp esi, dword [ebp - 0x14]
jl 0x4869c4
mov eax, dword [ebp - 8]
test edx, edx
jne 0x4094c0
cmp eax, dword [ebp - 0x18]
je 0x40952e
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov ax, word [esi - 2]
sub esi, 2
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
mov dword [ebp - 8], esi
cmp ax, cx
jne 0x486ac6
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x18]
jne 0x486a81
jmp 0x40952e
cmp dword [ebx + 0x8c], 0
je 0x486a6d
cmp eax, dword [ebx + 0x88]
jbe 0x486a6d
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x486a6d
mov eax, 0xfffffff4
jmp 0x409607
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jge 0x486b29
mov esi, dword [ebp - 0x34]
cmp eax, dword [ebx + 0x7c]
jae 0x486b6f
movzx eax, word [eax]
cmp esi, eax
je 0x486b23
add dword [ebp - 8], 2
mov eax, dword [ebp - 8]
inc ecx
cmp ecx, dword [ebp - 0x14]
jl 0x486b0a
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0x18]
test edx, edx
jne 0x4094c0
cmp eax, esi
je 0x40952e
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x18]
jne 0x486b3c
jmp 0x40952e
cmp dword [ebx + 0x8c], 0
je 0x486b26
cmp eax, dword [ebx + 0x88]
jbe 0x486b26
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
jmp 0x486b26
movzx ecx, word [edi + 2]
mov esi, ecx
mov eax, 1
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x2c], eax
add edi, 4
jmp 0x409bf7
movzx eax, word [edi + 2]
xor esi, esi
mov dword [ebp - 0x1c], eax
xor eax, eax
cmp ecx, 0x5c
sete al
mov dword [ebp - 0x14], esi
add edi, 4
mov dword [ebp - 0x2c], eax
jmp 0x409bf7
mov eax, dword [ebp - 0x2c]
xor esi, esi
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x14], esi
add edi, 2
jmp 0x409bf0
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov esi, edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x14], esi
add edi, 2
jmp 0x409bf0
mov eax, dword [ebp - 0x2c]
mov edx, 1
xor esi, esi
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], edx
add edi, 2
jmp 0x409bf7
movzx ecx, word [edi + 2]
mov eax, dword [ebp - 0x2c]
xor esi, esi
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], ecx
add edi, 4
jmp 0x409bf7
mov dword [ebp - 0x3c], 1
jmp 0x486c4b
mov dword [ebp - 0x3c], 0
movzx ebx, word [edi + 2]
movzx ecx, word [edi]
add edi, 4
mov dword [ebp - 0x40], ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x38], edi
jmp 0x409c18
test ecx, ecx
js 0x4874e6
cmp ecx, 0xa
ja case.default.0x48565a
jmp dword [ecx*4 + 0x48c2ef]
cmp dword [ebp - 0x3c], 0
jne case.0x4094e0.151
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409c29
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], esi
test ecx, ecx
je 0x486cca
and dword [ebp - 0x10], 0xfc00
cmp dword [ebp - 0x10], 0xd800
jne 0x486cca
add esi, 2
mov dword [ebp - 8], esi
mov ebx, dword [ebp - 0xc]
inc ebx
cmp ebx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
jle 0x486c9b
jmp 0x409c29
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x28], 1
cmp esi, 1
jl 0x486e6a
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d24
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
test ecx, ecx
je 0x486d3e
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x486d3e
mov eax, dword [ebp - 8]
and edx, 0x3ff
movzx eax, word [eax]
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add dword [ebp - 8], 2
mov dword [ebp - 0xc], edx
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and edx, 0x8000007f
jns 0x486d63
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
cmp eax, 9
je 0x486d88
cmp eax, 5
je 0x486d88
cmp eax, 8
je 0x486d88
xor eax, eax
jmp 0x486d8d
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x4094e0.151
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, esi
jle 0x486cf1
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 8]
jmp 0x409c29
mov dword [ebp - 0xc], 1
cmp esi, 1
jl 0x486e67
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d24
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 8], eax
je 0x486e09
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x486e09
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and ecx, 0x8000007f
jns 0x486e2b
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x40]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
cmp dword [eax*4 + 0x4b5ce8], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x4094e0.151
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, esi
jle 0x486dc0
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 8]
jmp 0x409c29
mov dword [ebp - 0xc], 1
cmp esi, 1
jl 0x486e67
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d24
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 8], eax
je 0x486ec7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x486ec7
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and ecx, 0x8000007f
jns 0x486ee9
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x4094e0.151
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, esi
jle 0x486e7e
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 8]
jmp 0x409c29
mov dword [ebp - 0xc], 1
cmp esi, 1
jl 0x486e67
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d24
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 8], eax
je 0x486f82
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x486f82
mov eax, dword [ebp - 8]
and ecx, 0x3ff
movzx eax, word [eax]
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add dword [ebp - 8], 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and ecx, 0x8000007f
jns 0x486fa4
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x4094e0.151
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, esi
jle 0x486f39
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 8]
jmp 0x409c29
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x28], 1
cmp esi, 1
jl 0x486e6a
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d24
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
mov esi, eax
test ecx, ecx
je 0x487045
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487045
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add esi, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], esi
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and edx, 0x8000007f
jns 0x48706a
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
mov eax, dword [eax*4 + 0x4b5ce8]
cmp eax, 1
je 0x487091
cmp eax, 3
je 0x487091
xor eax, eax
jmp 0x487096
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x4094e0.151
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, dword [ebp - 0x14]
jle 0x486ff7
mov eax, dword [ebp - 0x2c]
jmp 0x409c29
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x409c26
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], esi
je 0x487115
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487115
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], esi
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ac470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x48713b
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
cmp dword [eax*4 + 0x4b5ce8], 6
je 0x48716f
cmp edx, 9
je 0x48716f
cmp edx, 0xa
je 0x48716f
cmp edx, 0xc
je 0x48716f
cmp edx, 0xd
je 0x48716f
xor eax, eax
jmp 0x487174
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x4094e0.151
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, dword [ebp - 0x14]
jle 0x4870ca
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x409c29
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x487f8b
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], esi
je 0x4871f6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4871f6
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], esi
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ac470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x48721c
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
cmp dword [eax*4 + 0x4b5ce8], 6
je 0x487255
cmp edx, 9
je 0x487255
cmp edx, 0xa
je 0x487255
cmp edx, 0xb
je 0x487255
cmp edx, 0xc
je 0x487255
cmp edx, 0xd
je 0x487255
xor eax, eax
jmp 0x48725a
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x4094e0.151
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, dword [ebp - 0x14]
jle 0x4871ab
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x409c29
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x487f8b
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], esi
je 0x4872dc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4872dc
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], esi
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ac470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x487302
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
mov eax, dword [eax*4 + 0x4b5ce8]
cmp eax, 1
je 0x48732e
cmp eax, 3
je 0x48732e
cmp edx, 0x5f
je 0x48732e
xor eax, eax
jmp 0x487333
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x4094e0.151
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, dword [ebp - 0x14]
jle 0x487291
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x409c29
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x409c29
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x18], edx
mov dword [ebp - 8], esi
test ecx, ecx
je 0x4873be
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4873bb
movzx eax, word [esi]
and dword [ebp - 0x18], 0x3ff
shl dword [ebp - 0x18], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x18]
add eax, 0x10000
add esi, 2
mov dword [ebp - 0x18], eax
mov dword [ebp - 8], esi
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x40]
lea ebx, [ebx*4 + 0x4ae670]
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebx]
cmp dword [ebp - 0x18], ebx
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
jb 0x4873f4
mov edx, dword [ebp - 0xc]
add dword [ebp - 0x10], 4
cmp dword [ebp - 0x18], edx
je 0x487415
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx]
cmp dword [ebp - 0x18], ecx
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x20]
jae 0x4873d8
cmp dword [ebp - 0x3c], 0
mov esi, dword [ebp - 8]
je case.0x4094e0.151
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x487370
mov eax, dword [ebp - 0x2c]
jmp 0x409c29
cmp dword [ebp - 0x3c], 0
jne case.0x4094e0.151
jmp 0x487401
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x409c29
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x18], edx
mov dword [ebp - 8], esi
test ecx, ecx
je 0x487488
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487485
movzx eax, word [esi]
and dword [ebp - 0x18], 0x3ff
shl dword [ebp - 0x18], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x18]
add eax, 0x10000
add esi, 2
mov dword [ebp - 0x18], eax
mov dword [ebp - 8], esi
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x18], 0x24
je 0x4874bc
cmp dword [ebp - 0x18], 0x40
je 0x4874bc
cmp dword [ebp - 0x18], 0x60
je 0x4874bc
cmp dword [ebp - 0x18], 0xa0
jb 0x4874ac
cmp dword [ebp - 0x18], 0xd7ff
jbe 0x4874bc
cmp dword [ebp - 0x18], 0xe000
mov dword [ebp - 0xc], 0
jb 0x4874c3
mov dword [ebp - 0xc], 1
mov ebx, dword [ebp - 0x3c]
cmp dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
je case.0x4094e0.151
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x48743a
mov eax, dword [ebp - 0x2c]
jmp 0x409c29
cmp dword [ebp - 0x34], 0x16
mov ecx, dword [ebp - 0x20]
jne 0x487684
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x10], 1
jl 0x409c29
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x28], eax
cmp esi, eax
jae 0x48a760
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], esi
test ecx, ecx
je 0x487554
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487554
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add esi, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], esi
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and edx, 0x8000007f
jns 0x487579
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49e5d0]
movzx edx, byte [eax*8 + 0x4ab0d2]
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0xc], edx
cmp esi, eax
jae 0x487643
mov ebx, dword [ebp - 0x20]
mov edi, edx
movzx ecx, word [esi]
mov dword [ebp - 0xc], 1
test ebx, ebx
je 0x4875db
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4875db
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0xc], 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and ecx, 0x8000007f
jns 0x4875fd
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49e5d0]
movzx ecx, byte [eax*8 + 0x4ab0d2]
mov eax, 1
shl eax, cl
test dword [edi*4 + 0x49e454], eax
je 0x487634
mov eax, dword [ebp - 0xc]
mov edi, ecx
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x28]
cmp esi, eax
jb 0x48759e
jmp 0x487637
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 8], esi
cmp dword [ebx + 0x8c], 0
je 0x48766c
cmp esi, eax
jb 0x48766c
cmp esi, dword [ebx + 0x88]
jbe 0x48766c
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x14]
jle 0x487506
mov eax, dword [ebp - 0x2c]
jmp 0x409c29
test ecx, ecx
je 0x487ea6
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffffa
cmp ecx, 0xf
ja case.default.0x48565a
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffffa
jmp dword [ecx*4 + 0x48c31b]
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409c29
lea eax, [esi + 2]
mov dword [ebp - 0x10], eax
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x48a760
cmp dword [ebx + 0x18], 0
je 0x487784
push ecx
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.004080a0
add esp, 0xc
test eax, eax
jne case.0x4094e0.151
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
cmp dword [ebx + 0x8c], 0
je 0x487734
cmp edx, dword [ebx + 0x7c]
jb 0x487734
cmp dword [ebx + 0x18], 0
jne 0x487734
cmp dword [ebx + 0x1c], 2
jne 0x487734
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x487734
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
add esi, 2
add edx, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edx
cmp esi, dword [ebx + 0x7c]
jae 0x48776c
mov ax, word [esi]
mov dword [ebp - 0x28], 0xfc00
and ax, word [ebp - 0x28]
mov dword [ebp - 0x28], 0xdc00
cmp ax, word [ebp - 0x28]
jne 0x48776c
add esi, 2
add edx, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x4876c7
mov eax, dword [ebp - 0x2c]
jmp 0x409c29
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x4876fa
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x4876fa
cmp dword [ebx + 0x1c], 1
je case.0x4094e0.151
mov edx, dword [ebp - 0x10]
mov ax, word [edx]
cmp ax, word [ebx + 0x36]
je case.0x4094e0.151
jmp 0x4876fd
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x409c29
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
add esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebx + 0x7c]
jae 0x487813
mov ax, word [esi]
mov dword [ebp - 0xc], 0xfc00
and ax, word [ebp - 0xc]
mov dword [ebp - 0xc], 0xdc00
cmp ax, word [ebp - 0xc]
mov eax, dword [ebp - 0x14]
jne 0x487813
add esi, 2
mov dword [ebp - 8], esi
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x4877db
mov eax, dword [ebp - 0x2c]
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebx + 0x7c]
add esi, esi
sub eax, esi
mov dword [ebp - 0xc], esi
mov esi, dword [ebp - 8]
cmp esi, eax
ja case.0x4094e0.151
add esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 8], esi
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409c29
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x4878a9
movzx eax, word [esi]
and dword [ebp - 0x10], 0x3ff
shl dword [ebp - 0x10], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x10]
add eax, 0x10000
add esi, 2
mov dword [ebp - 8], esi
jmp 0x4878ac
mov eax, dword [ebp - 0x10]
cmp eax, 0xd
ja 0x4878d9
je 0x4878c6
cmp eax, 0xa
je 0x4878f8
add eax, 0xfffffff5
cmp eax, 1
ja case.0x4094e0.151
jmp 0x4878ee
cmp esi, dword [ebx + 0x7c]
jae 0x4878f8
cmp word [esi], 0xa
jne 0x4878f8
add esi, 2
mov dword [ebp - 8], esi
jmp 0x4878f8
cmp eax, 0x85
je 0x4878ee
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x4094e0.151
cmp dword [ebx + 0x6c], 0
jne case.0x4094e0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x487865
mov eax, dword [ebp - 0x2c]
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409c29
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x48796d
movzx eax, word [esi]
and dword [ebp - 0x10], 0x3ff
shl dword [ebp - 0x10], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x10]
add eax, 0x10000
add esi, 2
mov dword [ebp - 8], esi
jmp 0x487970
mov eax, dword [ebp - 0x10]
cmp eax, 0x180e
ja 0x4879ab
je case.0x4094e0.151
cmp eax, 0xa0
ja 0x48799e
je case.0x4094e0.151
cmp eax, 9
je case.0x4094e0.151
cmp eax, 0x20
je case.0x4094e0.151
jmp 0x4879e2
cmp eax, 0x1680
je case.0x4094e0.151
jmp 0x4879e2
cmp eax, 0x205f
ja 0x4879d7
je case.0x4094e0.151
cmp eax, 0x2000
jb 0x4879e2
cmp eax, 0x200a
jbe case.0x4094e0.151
cmp eax, 0x202f
je case.0x4094e0.151
jmp 0x4879e2
cmp eax, 0x3000
je case.0x4094e0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x487929
mov eax, dword [ebp - 0x2c]
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409c29
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x487a57
movzx eax, word [esi]
and dword [ebp - 0x10], 0x3ff
shl dword [ebp - 0x10], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x10]
add eax, 0x10000
add esi, 2
mov dword [ebp - 8], esi
jmp 0x487a5a
mov eax, dword [ebp - 0x10]
cmp eax, 0x180e
ja 0x487a89
je 0x487abc
cmp eax, 0xa0
ja 0x487a7c
je 0x487abc
cmp eax, 9
je 0x487abc
cmp eax, 0x20
jne case.0x4094e0.151
jmp 0x487abc
cmp eax, 0x1680
jne case.0x4094e0.151
jmp 0x487abc
cmp eax, 0x205f
ja 0x487ab1
je 0x487abc
cmp eax, 0x2000
jb case.0x4094e0.151
cmp eax, 0x200a
jbe 0x487abc
cmp eax, 0x202f
jne case.0x4094e0.151
jmp 0x487abc
cmp eax, 0x3000
jne case.0x4094e0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x487a13
mov eax, dword [ebp - 0x2c]
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409c29
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x487b31
movzx eax, word [esi]
and dword [ebp - 0x10], 0x3ff
shl dword [ebp - 0x10], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x10]
add eax, 0x10000
add esi, 2
mov dword [ebp - 8], esi
jmp 0x487b34
mov eax, dword [ebp - 0x10]
cmp eax, 0x85
ja 0x487b51
je case.0x4094e0.151
cmp eax, 0xa
jb 0x487b63
cmp eax, 0xd
jbe case.0x4094e0.151
jmp 0x487b63
cmp eax, 0x2028
jb 0x487b63
cmp eax, 0x2029
jbe case.0x4094e0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x487aed
mov eax, dword [ebp - 0x2c]
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409c29
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x487bd8
movzx eax, word [esi]
and dword [ebp - 0x10], 0x3ff
shl dword [ebp - 0x10], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x10]
add eax, 0x10000
add esi, 2
mov dword [ebp - 8], esi
jmp 0x487bdb
mov eax, dword [ebp - 0x10]
cmp eax, 0x85
ja 0x487bf2
je 0x487c00
add eax, 0xfffffff6
cmp eax, 3
ja case.0x4094e0.151
jmp 0x487c00
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x4094e0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x487b94
mov eax, dword [ebp - 0x2c]
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409c29
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x487c77
movzx eax, word [esi]
mov ecx, dword [ebp - 0x10]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or eax, ecx
mov ecx, dword [ebp - 0x20]
add eax, 0x10000
add esi, 2
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], esi
jmp 0x487c7a
mov eax, dword [ebp - 0x10]
cmp eax, 0x80
jae 0x487c91
mov eax, dword [ebx + 0x44]
mov edx, dword [ebp - 0x10]
test byte [edx + eax], 4
jne case.0x4094e0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x487c2d
mov eax, dword [ebp - 0x2c]
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409c29
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
cmp word [esi], 0x80
jae case.0x4094e0.151
movzx edx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
je case.0x4094e0.151
mov eax, dword [ebp - 0xc]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x487cbe
mov eax, dword [ebp - 0x2c]
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x409c29
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
cmp word [esi], 0x80
jae 0x487d3b
movzx edx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
jne case.0x4094e0.151
mov eax, dword [ebp - 0x14]
add esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebx + 0x7c]
jae 0x487d6a
mov ax, word [esi]
mov dword [ebp - 0xc], 0xfc00
and ax, word [ebp - 0xc]
mov dword [ebp - 0xc], 0xdc00
cmp ax, word [ebp - 0xc]
mov eax, dword [ebp - 0x14]
jne 0x487d6a
add esi, 2
mov dword [ebp - 8], esi
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x487d18
mov eax, dword [ebp - 0x2c]
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409c29
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
cmp word [esi], 0x80
jae case.0x4094e0.151
movzx edx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
je case.0x4094e0.151
mov eax, dword [ebp - 0xc]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x487d93
mov eax, dword [ebp - 0x2c]
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x409c29
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
cmp word [esi], 0x80
jae 0x487e10
movzx edx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
jne case.0x4094e0.151
mov eax, dword [ebp - 0x14]
add esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebx + 0x7c]
jae 0x487e3f
mov ax, word [esi]
mov dword [ebp - 0xc], 0xfc00
and ax, word [ebp - 0xc]
mov dword [ebp - 0xc], 0xdc00
cmp ax, word [ebp - 0xc]
mov eax, dword [ebp - 0x14]
jne 0x487e3f
add esi, 2
mov dword [ebp - 8], esi
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x487ded
mov eax, dword [ebp - 0x2c]
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409c29
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
cmp word [esi], 0x80
jae case.0x4094e0.151
movzx edx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
je case.0x4094e0.151
mov eax, dword [ebp - 0xc]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x487e68
mov eax, dword [ebp - 0x2c]
jmp 0x409c29
mov edx, dword [ebp - 0x34]
add edx, 0xfffffffa
cmp edx, 0xf
ja case.default.0x48565a
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffffa
jmp dword [ecx*4 + 0x48c35b]
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409c29
mov ecx, dword [ebx + 0x7c]
cmp esi, ecx
jae 0x48a760
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x487f0b
lea eax, [ebx + 0x1c]
push 0
push eax
push ecx
mov ecx, esi
call fcn.004080a0
add esp, 0xc
test eax, eax
jne case.0x4094e0.151
lea edx, [ebx + 0x1c]
jmp 0x487f39
mov eax, dword [ebx + 0x1c]
lea edx, [ebx + 0x1c]
add eax, eax
sub ecx, eax
cmp esi, ecx
ja 0x487f39
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x487f39
cmp dword [edx], 1
je case.0x4094e0.151
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x36]
je case.0x4094e0.151
cmp dword [ebx + 0x8c], 0
je 0x487f72
lea eax, [esi + 2]
cmp eax, dword [ebx + 0x7c]
jb 0x487f72
cmp dword [ebx + 0x18], 0
jne 0x487f72
cmp dword [edx], 2
jne 0x487f72
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x487f72
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
mov eax, dword [ebp - 0xc]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x487edb
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebx + 0x7c]
add esi, esi
sub eax, esi
mov dword [ebp - 0xc], esi
mov esi, dword [ebp - 8]
cmp esi, eax
ja 0x48a760
add esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 8], esi
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebx + 0x7c]
add esi, esi
sub eax, esi
mov dword [ebp - 0xc], esi
mov esi, dword [ebp - 8]
cmp esi, eax
ja 0x48a760
add esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 8], esi
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x409c29
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx ecx, word [esi]
add esi, 2
mov dword [ebp - 0x10], ecx
cmp ecx, 0xd
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 8], esi
jg 0x48804e
cmp dword [ebp - 0x10], 0xd
je 0x48803b
cmp dword [ebp - 0x10], 0xa
je 0x488075
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff5
cmp eax, 1
ja case.0x4094e0.151
jmp 0x488068
cmp esi, dword [ebx + 0x7c]
jae 0x488075
cmp word [esi], 0xa
jne 0x488075
add esi, 2
mov dword [ebp - 8], esi
jmp 0x488075
cmp dword [ebp - 0x10], 0x85
je 0x48806b
mov eax, dword [ebp - 0x10]
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x4094e0.151
mov eax, dword [ebp - 0x14]
cmp dword [ebx + 0x6c], 0
jne case.0x4094e0.151
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x488001
mov eax, dword [ebp - 0x2c]
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409c29
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x18], edx
mov dword [ebp - 8], esi
cmp edx, 0x180e
jg 0x4880f8
cmp edx, 0x180e
je case.0x4094e0.151
cmp edx, 0xa0
jg 0x4880e9
je case.0x4094e0.151
cmp edx, 9
je case.0x4094e0.151
cmp edx, 0x20
je case.0x4094e0.151
jmp 0x488139
cmp dword [ebp - 0x18], 0x1680
je case.0x4094e0.151
jmp 0x488139
cmp dword [ebp - 0x18], 0x205f
jg 0x48812c
je case.0x4094e0.151
cmp dword [ebp - 0x18], 0x2000
jl 0x488139
cmp dword [ebp - 0x18], 0x200a
jle case.0x4094e0.151
cmp dword [ebp - 0x18], 0x202f
je case.0x4094e0.151
jmp 0x488139
cmp dword [ebp - 0x18], 0x3000
je case.0x4094e0.151
mov ebx, dword [ebp - 0xc]
inc ebx
cmp ebx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
jle 0x48809e
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409c29
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x18], edx
mov dword [ebp - 8], esi
cmp edx, 0x180e
jg 0x4881b8
cmp edx, 0x180e
je 0x4881f5
cmp edx, 0xa0
jg 0x4881a9
je 0x4881f5
cmp edx, 9
je 0x4881f5
cmp edx, 0x20
jne case.0x4094e0.151
jmp 0x4881f5
cmp dword [ebp - 0x18], 0x1680
jne case.0x4094e0.151
jmp 0x4881f5
cmp dword [ebp - 0x18], 0x205f
jg 0x4881e8
je 0x4881f5
cmp dword [ebp - 0x18], 0x2000
jl case.0x4094e0.151
cmp dword [ebp - 0x18], 0x200a
jle 0x4881f5
cmp dword [ebp - 0x18], 0x202f
jne case.0x4094e0.151
jmp 0x4881f5
cmp dword [ebp - 0x18], 0x3000
jne case.0x4094e0.151
mov ecx, dword [ebp - 0xc]
inc ecx
cmp ecx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x20]
jle 0x48816a
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409c29
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], esi
cmp edx, 0x85
jg 0x48825f
cmp edx, 0x85
je case.0x4094e0.151
cmp edx, 0xa
jl 0x488275
cmp edx, 0xd
jle case.0x4094e0.151
jmp 0x488275
cmp dword [ebp - 0x10], 0x2028
jl 0x488275
cmp dword [ebp - 0x10], 0x2029
jle case.0x4094e0.151
mov ebx, dword [ebp - 0xc]
inc ebx
cmp ebx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
jle 0x488226
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x10], 1
jl 0x409c29
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x28], edx
mov dword [ebp - 8], esi
cmp edx, 0x85
jg 0x4882da
cmp edx, 0x85
je 0x4882ee
mov eax, edx
add eax, 0xfffffff6
cmp eax, 3
ja case.0x4094e0.151
jmp 0x4882eb
mov eax, dword [ebp - 0x28]
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x4094e0.151
mov eax, dword [ebp - 0x14]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], eax
jle 0x4882a5
mov eax, dword [ebp - 0x2c]
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x409c29
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx edx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp dx, word [ebp - 0xc]
ja 0x48834c
movzx ecx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
jne case.0x4094e0.151
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
inc ecx
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x28], ecx
cmp ecx, eax
jle 0x48831d
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409c29
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja case.0x4094e0.151
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
je case.0x4094e0.151
mov eax, dword [ebp - 0xc]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x48837e
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x409c29
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx edx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp dx, word [ebp - 0xc]
ja 0x488412
movzx ecx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
jne case.0x4094e0.151
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
inc ecx
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x28], ecx
cmp ecx, eax
jle 0x4883e3
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409c29
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja case.0x4094e0.151
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
je case.0x4094e0.151
mov eax, dword [ebp - 0xc]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x488444
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x409c29
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx edx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp dx, word [ebp - 0xc]
ja 0x4884d8
movzx ecx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
jne case.0x4094e0.151
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
inc ecx
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x28], ecx
cmp ecx, eax
jle 0x4884a9
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x409c29
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0xc], 1
cmp esi, 1
jl 0x486e6a
mov esi, dword [ebp - 8]
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja case.0x4094e0.151
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je case.0x4094e0.151
mov eax, dword [ebp - 0xc]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x48850a
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x409c29
mov dword [ebp - 0x2c], esi
test eax, eax
js 0x488ec8
cmp eax, 0xa
ja case.default.0x48565a
jmp dword [eax*4 + 0x48c39b]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x4886d5
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x4885d6
test ecx, ecx
je 0x4885af
mov ax, word [esi]
mov dword [ebp - 0x30], 0xfc00
and ax, word [ebp - 0x30]
mov dword [ebp - 0x30], 0xd800
cmp ax, word [ebp - 0x30]
mov eax, dword [ebp - 0x14]
jne 0x4885af
mov dword [ebp - 0xc], 2
cmp dword [ebp - 0x3c], 0
mov ebx, dword [ebp + 0x10]
jne 0x4886d5
mov edx, dword [ebp - 0xc]
inc eax
lea esi, [esi + edx*2]
mov edx, dword [ebp - 0x24]
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x488577
jmp 0x4886d5
cmp dword [ebx + 0x8c], 0
je 0x4886d5
cmp esi, dword [ebx + 0x88]
jbe 0x4886d5
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x4886d5
mov eax, 0xfffffff4
jmp 0x409607
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x4886d5
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x488739
movzx edx, word [esi]
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x488665
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x488665
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x30], 2
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and edx, 0x8000007f
jns 0x48868a
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
cmp eax, 9
je 0x4886af
cmp eax, 5
je 0x4886af
cmp eax, 8
je 0x4886af
xor eax, eax
jmp 0x4886b4
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x4886d2
mov eax, dword [ebp - 0x30]
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x488619
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x4094c0
cmp esi, dword [ebp - 0x2c]
je 0x40952e
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
sub esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x20], eax
je 0x48872f
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x48872f
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x2c]
jne 0x4886e6
jmp 0x40952e
cmp dword [ebx + 0x8c], 0
je 0x4886d2
cmp esi, dword [ebx + 0x88]
jbe 0x4886d2
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x4886d2
mov eax, 0xfffffff4
jmp 0x409607
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x4886d5
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x488739
movzx eax, word [esi]
mov dword [ebp - 0x30], eax
test ecx, ecx
je 0x4887bb
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4887be
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0xc], 2
jmp 0x4887be
movzx ecx, word [esi]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and ecx, 0x8000007f
jns 0x4887e0
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x40]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
cmp dword [eax*4 + 0x4b5ce8], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x4886d2
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x20]
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x488774
jmp 0x4886d2
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x4886d5
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x488739
movzx eax, word [esi]
mov dword [ebp - 0x30], eax
test ecx, ecx
je 0x488882
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x488885
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0xc], 2
jmp 0x488885
movzx ecx, word [esi]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and ecx, 0x8000007f
jns 0x4888a7
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x4886d2
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x20]
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x488837
jmp 0x4886d2
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x4886d5
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x488739
movzx eax, word [esi]
mov dword [ebp - 0x30], eax
test ecx, ecx
je 0x488942
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x488945
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0xc], 2
jmp 0x488945
movzx ecx, word [esi]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and ecx, 0x8000007f
jns 0x488967
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x4886d2
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x20]
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x4888f7
jmp 0x4886d2
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x4886d5
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x488739
movzx edx, word [esi]
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x488a03
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x488a03
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x30], 2
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and edx, 0x8000007f
jns 0x488a28
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
mov eax, dword [eax*4 + 0x4b5ce8]
cmp eax, 1
je 0x488a4f
cmp eax, 3
je 0x488a4f
xor eax, eax
jmp 0x488a54
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x4886d2
mov eax, dword [ebp - 0x30]
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x4889b7
jmp 0x4886d2
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x4886d5
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x488739
movzx edx, word [esi]
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x488ad3
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x488ad3
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x30], 2
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ac470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x488af9
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
cmp dword [eax*4 + 0x4b5ce8], 6
je 0x488b2d
cmp edx, 9
je 0x488b2d
cmp edx, 0xa
je 0x488b2d
cmp edx, 0xc
je 0x488b2d
cmp edx, 0xd
je 0x488b2d
xor eax, eax
jmp 0x488b32
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x4886d2
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x488a87
jmp 0x4886d2
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x4886d5
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x488739
movzx edx, word [esi]
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x488bb4
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x488bb4
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x30], 2
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ac470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x488bda
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
cmp dword [eax*4 + 0x4b5ce8], 6
je 0x488c13
cmp edx, 9
je 0x488c13
cmp edx, 0xa
je 0x488c13
cmp edx, 0xb
je 0x488c13
cmp edx, 0xc
je 0x488c13
cmp edx, 0xd
je 0x488c13
xor eax, eax
jmp 0x488c18
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x4886d2
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x488b68
jmp 0x4886d2
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x4886d5
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x488739
movzx edx, word [esi]
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x488c9a
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x488c9a
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x30], 2
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ac470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x488cc0
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
mov eax, dword [eax*4 + 0x4b5ce8]
cmp eax, 1
je 0x488cec
cmp eax, 3
je 0x488cec
cmp edx, 0x5f
je 0x488cec
xor eax, eax
jmp 0x488cf1
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x4886d2
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x488c4e
jmp 0x4886d2
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x4886d5
mov esi, dword [ebx + 0x7c]
mov dword [ebp - 0x10], esi
mov esi, dword [ebp - 8]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x30], 1
cmp esi, dword [ebp - 0x10]
jae 0x4885d6
movzx edx, word [esi]
mov dword [ebp - 0x18], edx
test ecx, ecx
je 0x488d84
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x488d81
movzx eax, word [esi + 2]
and dword [ebp - 0x18], 0x3ff
shl dword [ebp - 0x18], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x18]
mov dword [ebp - 0x30], 2
add eax, 0x10000
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x40]
lea edx, [edx*4 + 0x4ae670]
mov dword [ebp - 0x28], edx
mov edx, dword [edx]
cmp dword [ebp - 0x18], edx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x24]
jb 0x488dbd
mov ebx, dword [ebp - 0xc]
add dword [ebp - 0x28], 4
cmp dword [ebp - 0x18], ebx
mov ebx, dword [ebp + 0x10]
je 0x488de8
mov edx, dword [ebp - 0x28]
mov edx, dword [edx]
cmp dword [ebp - 0x18], edx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x24]
jae 0x488d9e
cmp dword [ebp - 0x3c], 0
mov edx, dword [ebp - 0x24]
je 0x4886d5
mov ecx, dword [ebp - 0x30]
inc eax
lea esi, [esi + ecx*2]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x488d30
jmp 0x4886d5
cmp dword [ebp - 0x3c], 0
je 0x488dca
jmp 0x4886d5
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x4886d5
mov edx, dword [ebx + 0x7c]
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 0x24]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x30], 1
cmp esi, dword [ebp - 0x28]
jae 0x4885d6
movzx edx, word [esi]
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x24]
test ecx, ecx
je 0x488e60
mov eax, dword [ebp - 0x18]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x488e5d
movzx eax, word [esi + 2]
and dword [ebp - 0x18], 0x3ff
shl dword [ebp - 0x18], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x18]
mov dword [ebp - 0x30], 2
add eax, 0x10000
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x18], 0x24
je 0x488e94
cmp dword [ebp - 0x18], 0x40
je 0x488e94
cmp dword [ebp - 0x18], 0x60
je 0x488e94
cmp dword [ebp - 0x18], 0xa0
jb 0x488e84
cmp dword [ebp - 0x18], 0xd7ff
jbe 0x488e94
cmp dword [ebp - 0x18], 0xe000
mov dword [ebp - 0xc], 0
jb 0x488e9b
mov dword [ebp - 0xc], 1
mov ebx, dword [ebp - 0x3c]
cmp dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
je 0x4886d5
mov edx, dword [ebp - 0x30]
inc eax
lea esi, [esi + edx*2]
mov edx, dword [ebp - 0x24]
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x488e08
jmp 0x4886d5
mov eax, dword [ebp - 0x34]
cmp eax, 0x16
jne 0x4890cd
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x489080
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x30], eax
cmp esi, eax
jae 0x489058
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], esi
test ecx, ecx
je 0x488f2e
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x488f2e
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add esi, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], esi
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and edx, 0x8000007f
jns 0x488f53
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49e5d0]
movzx edx, byte [eax*8 + 0x4ab0d2]
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0xc], edx
cmp esi, eax
jae 0x48901d
mov ebx, dword [ebp - 0x20]
mov edi, edx
movzx ecx, word [esi]
mov dword [ebp - 0xc], 1
test ebx, ebx
je 0x488fb5
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x488fb5
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0xc], 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and ecx, 0x8000007f
jns 0x488fd7
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49e5d0]
movzx ecx, byte [eax*8 + 0x4ab0d2]
mov eax, 1
shl eax, cl
test dword [edi*4 + 0x49e454], eax
je 0x48900e
mov eax, dword [ebp - 0xc]
mov edi, ecx
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x30]
cmp esi, eax
jb 0x488f78
jmp 0x489011
mov eax, dword [ebp - 0x30]
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 8], esi
cmp dword [ebx + 0x8c], 0
je 0x489046
cmp esi, eax
jb 0x489046
cmp esi, dword [ebx + 0x88]
jbe 0x489046
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x488ee0
jmp 0x48907d
cmp dword [ebx + 0x8c], 0
je 0x48907d
cmp esi, dword [ebx + 0x88]
jbe 0x48907d
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x4094c0
cmp esi, dword [ebp - 0x2c]
je 0x40952e
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov ebx, dword [ebp - 0x20]
sub esi, 2
mov dword [ebp - 8], esi
test ebx, ebx
jne 0x48a09b
movzx ecx, word [esi]
jmp 0x48a0de
add eax, 0xfffffffa
test ecx, ecx
je 0x4899fc
cmp eax, 0xf
ja case.default.0x48565a
jmp dword [eax*4 + 0x48c3c7]
mov eax, dword [ebp - 0x1c]
cmp eax, 0x7fffffff
jge 0x4892ae
cmp dword [ebp - 0x14], eax
jge 0x4891bd
lea eax, [esi + 2]
mov dword [ebp - 0x10], eax
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x489277
cmp dword [ebx + 0x18], 0
je 0x48923c
push ecx
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.004080a0
add esp, 0xc
test eax, eax
jne 0x4891ba
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
cmp dword [ebx + 0x8c], 0
je 0x489172
cmp edx, dword [ebx + 0x7c]
jb 0x489172
cmp dword [ebx + 0x18], 0
jne 0x489172
cmp dword [ebx + 0x1c], 2
jne 0x489172
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x489172
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
add esi, 2
add edx, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edx
cmp esi, dword [ebx + 0x7c]
jae 0x4891aa
mov ax, word [esi]
mov dword [ebp - 0xc], 0xfc00
and ax, word [ebp - 0xc]
mov dword [ebp - 0xc], 0xdc00
cmp ax, word [ebp - 0xc]
jne 0x4891aa
add esi, 2
add edx, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x489105
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x4094c0
cmp esi, dword [ebp - 0x2c]
je 0x40952e
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov ax, word [esi - 2]
sub esi, 2
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
mov dword [ebp - 8], esi
cmp ax, cx
jne 0x489213
sub esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x34], 0x11
mov ecx, dword [ebp - 0x2c]
jne 0x489233
cmp esi, ecx
jbe 0x489235
cmp word [esi], 0xa
jne 0x489233
cmp word [esi - 2], 0xd
jne 0x489233
add esi, 0xfffffffe
mov dword [ebp - 8], esi
cmp esi, ecx
jne 0x4891ce
jmp 0x40952e
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x489138
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x489138
cmp dword [ebx + 0x1c], 1
je 0x4891ba
mov edx, dword [ebp - 0x10]
mov ax, word [edx]
cmp ax, word [ebx + 0x36]
jne 0x48913b
jmp 0x4891ba
cmp dword [ebx + 0x8c], 0
je 0x4891ba
cmp esi, dword [ebx + 0x88]
jbe 0x4891ba
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x4891ba
mov eax, 0xfffffff4
jmp 0x409607
cmp dword [ebp - 0x14], eax
jge 0x4891bd
lea eax, [esi + 2]
mov dword [ebp - 0x10], eax
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x489277
cmp dword [ebx + 0x18], 0
je 0x489373
push ecx
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.004080a0
add esp, 0xc
test eax, eax
jne 0x4891ba
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
cmp dword [ebx + 0x8c], 0
je 0x489326
cmp edx, dword [ebx + 0x7c]
jb 0x489326
cmp dword [ebx + 0x18], 0
jne 0x489326
cmp dword [ebx + 0x1c], 2
jne 0x489326
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x489326
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
add esi, 2
add edx, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edx
cmp esi, dword [ebx + 0x7c]
jae 0x48935e
mov ax, word [esi]
mov dword [ebp - 0xc], 0xfc00
and ax, word [ebp - 0xc]
mov dword [ebp - 0xc], 0xdc00
cmp ax, word [ebp - 0xc]
jne 0x48935e
add esi, 2
add edx, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x4892bd
jmp 0x4891ba
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x4892ec
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x4892ec
cmp dword [ebx + 0x1c], 1
je 0x4891ba
mov edx, dword [ebp - 0x10]
mov ax, word [edx]
cmp ax, word [ebx + 0x36]
jne 0x4892ef
jmp 0x4891ba
mov eax, dword [ebp - 0x1c]
cmp eax, 0x7fffffff
jge 0x489403
mov ecx, dword [ebp - 0x14]
cmp ecx, eax
jge 0x4891bd
mov eax, dword [ebx + 0x7c]
cmp esi, eax
jae 0x48940d
add esi, 2
mov dword [ebp - 8], esi
cmp esi, eax
jae 0x4893f8
mov ax, word [esi]
mov dword [ebp - 0xc], 0xfc00
and ax, word [ebp - 0xc]
mov dword [ebp - 0xc], 0xdc00
cmp ax, word [ebp - 0xc]
mov eax, dword [ebx + 0x7c]
jne 0x4893f8
add esi, 2
mov dword [ebp - 8], esi
inc ecx
cmp ecx, dword [ebp - 0x1c]
jl 0x4893c6
jmp 0x4891bd
mov esi, dword [ebx + 0x7c]
jmp 0x48940a
mov esi, ecx
mov dword [ebp - 8], esi
cmp dword [ebx + 0x8c], 0
je 0x4891bd
cmp esi, dword [ebx + 0x88]
jbe 0x4891bd
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x4891bd
mov eax, 0xfffffff4
jmp 0x409607
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x14]
mov ecx, dword [ebx + 0x7c]
mov dword [ebp - 0x1c], eax
mov eax, ecx
sub eax, esi
sar eax, 1
cmp dword [ebp - 0x1c], eax
ja 0x489408
mov eax, dword [ebp - 0x1c]
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
jmp 0x4891bd
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x4891bd
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0xc], 1
cmp esi, eax
jae 0x48940d
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4894ba
movzx eax, word [esi + 2]
and dword [ebp - 0x10], 0x3ff
shl dword [ebp - 0x10], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], 2
add eax, 0x10000
jmp 0x4894bd
mov eax, dword [ebp - 0x10]
cmp eax, 0xd
jne 0x4894de
mov eax, dword [ebx + 0x7c]
add esi, 2
mov dword [ebp - 8], esi
cmp esi, eax
jae 0x4891bd
cmp word [esi], 0xa
jne 0x48951c
add esi, 2
jmp 0x489519
cmp eax, 0xa
je 0x489510
cmp dword [ebx + 0x6c], 0
jne 0x4891bd
cmp eax, 0xb
je 0x489510
cmp eax, 0xc
je 0x489510
cmp eax, 0x85
je 0x489510
cmp eax, 0x2028
je 0x489510
cmp eax, 0x2029
jne 0x4891bd
mov eax, dword [ebp - 0xc]
lea esi, [esi + eax*2]
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 8], esi
inc ecx
cmp ecx, dword [ebp - 0x1c]
jl 0x489478
jmp 0x4891bd
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x4891bd
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48940d
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48957e
movzx eax, word [esi + 2]
and dword [ebp - 0x10], 0x3ff
shl dword [ebp - 0x10], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x10]
mov dword [ebp - 0x30], 2
add eax, 0x10000
jmp 0x489581
mov eax, dword [ebp - 0x10]
cmp eax, 0x180e
ja 0x4895d7
je 0x48959d
cmp eax, 0xa0
ja 0x4895ce
je 0x48959d
cmp eax, 9
je 0x48959d
cmp eax, 0x20
jne 0x4895fe
mov dword [ebp - 0xc], 1
xor eax, eax
cmp dword [ebp - 0x34], 0x12
sete al
cmp dword [ebp - 0xc], eax
je 0x4891bd
mov eax, dword [ebp - 0x30]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x489537
jmp 0x4891bd
cmp eax, 0x1680
jne 0x4895fe
jmp 0x48959d
cmp eax, 0x205f
ja 0x4895f7
je 0x48959d
cmp eax, 0x2000
jb 0x4895fe
cmp eax, 0x200a
jbe 0x48959d
cmp eax, 0x202f
jne 0x4895fe
jmp 0x48959d
cmp eax, 0x3000
je 0x48959d
mov dword [ebp - 0xc], 0
jmp 0x4895a4
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x4891bd
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48940d
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48965a
movzx eax, word [esi + 2]
and dword [ebp - 0x10], 0x3ff
shl dword [ebp - 0x10], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x10]
mov dword [ebp - 0x30], 2
add eax, 0x10000
jmp 0x48965d
mov eax, dword [ebp - 0x10]
cmp eax, 0x85
ja 0x4896a1
je 0x4896ab
cmp eax, 0xa
jb 0x489670
cmp eax, 0xd
jbe 0x4896ab
mov dword [ebp - 0xc], 0
xor eax, eax
cmp dword [ebp - 0x34], 0x14
sete al
cmp dword [ebp - 0xc], eax
je 0x4891bd
mov eax, dword [ebp - 0x30]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x489613
jmp 0x4891bd
add eax, 0xffffdfd8
cmp eax, 1
ja 0x489670
mov dword [ebp - 0xc], 1
jmp 0x489677
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x4891bd
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48940d
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48970d
mov edx, dword [ebp - 0x28]
movzx eax, word [esi + 2]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or eax, edx
mov edx, dword [ebp - 0x24]
add eax, 0x10000
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], 2
jmp 0x489710
movzx eax, word [esi]
cmp eax, 0x100
jae 0x48972a
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
mov edx, dword [ebp - 0x24]
jne 0x4891bd
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x4896c0
jmp 0x4891bd
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x4891bd
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48940d
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489797
mov edx, dword [ebp - 0x28]
movzx eax, word [esi + 2]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or eax, edx
mov edx, dword [ebp - 0x24]
add eax, 0x10000
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], 2
jmp 0x48979a
movzx eax, word [esi]
cmp eax, 0x100
jae 0x4891bd
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
mov edx, dword [ebp - 0x24]
je 0x4891bd
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48974a
jmp 0x4891bd
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x4891bd
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48940d
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489825
mov edx, dword [ebp - 0x28]
movzx eax, word [esi + 2]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or eax, edx
mov edx, dword [ebp - 0x24]
add eax, 0x10000
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], 2
jmp 0x489828
movzx eax, word [esi]
cmp eax, 0x100
jae 0x489842
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
mov edx, dword [ebp - 0x24]
jne 0x4891bd
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x4897d8
jmp 0x4891bd
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x4891bd
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48940d
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4898af
mov edx, dword [ebp - 0x28]
movzx eax, word [esi + 2]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or eax, edx
mov edx, dword [ebp - 0x24]
add eax, 0x10000
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], 2
jmp 0x4898b2
movzx eax, word [esi]
cmp eax, 0x100
jae 0x4891bd
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
mov edx, dword [ebp - 0x24]
je 0x4891bd
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x489862
jmp 0x4891bd
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x4891bd
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48940d
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48993d
mov edx, dword [ebp - 0x28]
movzx eax, word [esi + 2]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or eax, edx
mov edx, dword [ebp - 0x24]
add eax, 0x10000
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], 2
jmp 0x489940
movzx eax, word [esi]
cmp eax, 0x100
jae 0x48995a
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
mov edx, dword [ebp - 0x24]
jne 0x4891bd
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x4898f0
jmp 0x4891bd
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x4891bd
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48940d
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4899c7
mov edx, dword [ebp - 0x28]
movzx eax, word [esi + 2]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or eax, edx
mov edx, dword [ebp - 0x24]
add eax, 0x10000
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], 2
jmp 0x4899ca
movzx eax, word [esi]
cmp eax, 0x100
jae 0x4891bd
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
mov edx, dword [ebp - 0x24]
je 0x4891bd
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48997a
jmp 0x4891bd
cmp eax, 0xf
ja case.default.0x48565a
jmp dword [eax*4 + 0x48c407]
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489aba
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x489b1d
cmp dword [ebx + 0x18], 0
je 0x489a46
lea eax, [ebx + 0x1c]
push 0
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.004080a0
add esp, 0xc
test eax, eax
jne 0x489ab7
mov ecx, dword [ebp - 0x14]
jmp 0x489a6a
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x489a6a
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x489a6a
cmp dword [ebx + 0x1c], 1
je 0x489ab7
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x36]
je 0x489ab7
cmp dword [ebx + 0x8c], 0
je 0x489aa4
lea eax, [esi + 2]
cmp eax, dword [ebx + 0x7c]
jb 0x489aa4
cmp dword [ebx + 0x18], 0
jne 0x489aa4
cmp dword [ebx + 0x1c], 2
jne 0x489aa4
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x489aa4
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
inc ecx
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], ecx
cmp ecx, dword [ebp - 0x1c]
jl 0x489a18
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x4094c0
cmp esi, dword [ebp - 0x2c]
je 0x40952e
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov ecx, dword [ebp - 0x2c]
sub esi, 2
cmp dword [ebp - 0x34], 0x11
mov dword [ebp - 8], esi
jne 0x489b14
cmp esi, ecx
jbe 0x489b16
cmp word [esi], 0xa
jne 0x489b14
cmp word [esi - 2], 0xd
jne 0x489b14
add esi, 0xfffffffe
mov dword [ebp - 8], esi
cmp esi, ecx
jne 0x489acb
jmp 0x40952e
cmp dword [ebx + 0x8c], 0
je 0x489ab7
cmp esi, dword [ebx + 0x88]
jbe 0x489ab7
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x489ab7
mov eax, 0xfffffff4
jmp 0x409607
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x14]
mov ecx, dword [ebx + 0x7c]
mov dword [ebp - 0x1c], eax
mov eax, ecx
sub eax, esi
sar eax, 1
cmp dword [ebp - 0x1c], eax
jbe 0x489b9f
mov esi, ecx
mov dword [ebp - 8], esi
cmp dword [ebx + 0x8c], 0
je 0x489aba
cmp esi, dword [ebx + 0x88]
jbe 0x489aba
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x489aba
mov eax, 0xfffffff4
jmp 0x409607
mov eax, dword [ebp - 0x1c]
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
jmp 0x489aba
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x489aba
mov ecx, dword [ebx + 0x7c]
cmp esi, ecx
jae 0x489b68
movzx ecx, word [esi]
cmp ecx, 0xd
jne 0x489be1
mov ecx, dword [ebx + 0x7c]
add esi, 2
mov dword [ebp - 8], esi
cmp esi, ecx
jae 0x489aba
cmp word [esi], 0xa
je 0x489c19
jmp 0x489c1f
cmp ecx, 0xa
je 0x489c16
cmp dword [ebx + 0x6c], 0
jne 0x489aba
cmp ecx, 0xb
je 0x489c16
cmp ecx, 0xc
je 0x489c16
cmp ecx, 0x85
je 0x489c16
cmp ecx, 0x2028
je 0x489c16
cmp ecx, 0x2029
jne 0x489aba
mov ecx, dword [ebx + 0x7c]
add esi, 2
mov dword [ebp - 8], esi
inc eax
cmp eax, dword [ebp - 0x1c]
jl 0x489bbc
jmp 0x489aba
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x489aba
cmp esi, dword [ebx + 0x7c]
jae 0x489b68
movzx ecx, word [esi]
cmp ecx, 0x180e
jg 0x489c7e
je 0x489aba
cmp ecx, 0xa0
jg 0x489c71
je 0x489aba
cmp ecx, 9
je 0x489aba
cmp ecx, 0x20
jne 0x489cb9
jmp 0x489aba
cmp ecx, 0x1680
jne 0x489cb9
jmp 0x489aba
cmp ecx, 0x205f
jg 0x489cad
je 0x489aba
cmp ecx, 0x2000
jl 0x489cb9
cmp ecx, 0x200a
jle 0x489aba
cmp ecx, 0x202f
jne 0x489cb9
jmp 0x489aba
cmp ecx, 0x3000
je 0x489aba
add esi, 2
inc eax
mov dword [ebp - 8], esi
cmp eax, dword [ebp - 0x1c]
jl 0x489c36
jmp 0x489aba
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x489aba
cmp esi, dword [ebx + 0x7c]
jae 0x489b68
movzx ecx, word [esi]
cmp ecx, 0x180e
jg 0x489d16
je 0x489d4d
cmp ecx, 0xa0
jg 0x489d09
je 0x489d4d
cmp ecx, 9
je 0x489d4d
cmp ecx, 0x20
je 0x489d4d
jmp 0x489aba
cmp ecx, 0x1680
je 0x489d4d
jmp 0x489aba
cmp ecx, 0x205f
jg 0x489d41
je 0x489d4d
cmp ecx, 0x2000
jl 0x489aba
cmp ecx, 0x200a
jle 0x489d4d
cmp ecx, 0x202f
je 0x489d4d
jmp 0x489aba
cmp ecx, 0x3000
jne 0x489aba
add esi, 2
inc eax
mov dword [ebp - 8], esi
cmp eax, dword [ebp - 0x1c]
jl 0x489cda
jmp 0x489aba
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x489aba
cmp esi, dword [ebx + 0x7c]
jae 0x489b68
movzx ecx, word [esi]
cmp ecx, 0x85
jg 0x489d93
je 0x489aba
cmp ecx, 0xa
jl 0x489da7
cmp ecx, 0xd
jg 0x489da7
jmp 0x489aba
cmp ecx, 0x2028
jl 0x489da7
cmp ecx, 0x2029
jle 0x489aba
add esi, 2
inc eax
mov dword [ebp - 8], esi
cmp eax, dword [ebp - 0x1c]
jl 0x489d6a
jmp 0x489aba
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489aba
cmp esi, dword [ebx + 0x7c]
jae 0x489b68
movzx eax, word [esi]
cmp eax, 0x85
jg 0x489de6
je 0x489df4
add eax, 0xfffffff6
cmp eax, 3
jbe 0x489df4
jmp 0x489aba
add eax, 0xffffdfd8
cmp eax, 1
ja 0x489aba
add esi, 2
inc ecx
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x489dc4
jmp 0x489aba
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x489aba
cmp esi, dword [ebx + 0x7c]
jae 0x489b68
movzx ecx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp cx, word [ebp - 0xc]
ja 0x489e3a
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
jne 0x489aba
mov eax, dword [ebp - 0x14]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x489e11
jmp 0x489aba
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x489aba
cmp esi, dword [ebx + 0x7c]
jae 0x489b68
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x489aba
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
je 0x489aba
mov eax, dword [ebp - 0x14]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x489e5a
jmp 0x489aba
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x489aba
cmp esi, dword [ebx + 0x7c]
jae 0x489b68
movzx ecx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp cx, word [ebp - 0xc]
ja 0x489ecf
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
jne 0x489aba
mov eax, dword [ebp - 0x14]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x489ea6
jmp 0x489aba
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x489aba
cmp esi, dword [ebx + 0x7c]
jae 0x489b68
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x489aba
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
je 0x489aba
mov eax, dword [ebp - 0x14]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x489eef
jmp 0x489aba
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x489aba
cmp esi, dword [ebx + 0x7c]
jae 0x489b68
movzx ecx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp cx, word [ebp - 0xc]
ja 0x489f64
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
jne 0x489aba
mov eax, dword [ebp - 0x14]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x489f3b
jmp 0x489aba
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x489aba
cmp esi, dword [ebx + 0x7c]
jae 0x489b68
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x489aba
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je 0x489aba
mov eax, dword [ebp - 0x14]
inc eax
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x489f84
jmp 0x489aba
mov eax, dword [ebp + 0x18]
inc eax
cmp word [edi], 0x74
push eax
push dword [ebp + 0x14]
push ebx
push edx
push ecx
mov ecx, dword [ebp - 8]
jne 0x489ff3
lea edx, [edi + 4]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov edi, dword [ebp - 0xc]
jmp 0x40952b
mov edx, dword [ebp - 0xc]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
add edi, 4
jmp 0x40952b
mov eax, dword [ebx + 0x90]
mov ecx, dword [ebp + 0xc]
cmp eax, ecx
jle 0x48a020
mov ecx, eax
mov dword [ebp + 0xc], ecx
movzx eax, word [edi + 6]
lea edi, [edi + eax*2]
add edi, 4
cmp word [edi], 0x71
jne 0x48a043
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x48a030
jmp 0x48a043
mov ecx, dword [ebp + 0xc]
cmp esi, 0x86
je 0x48a1be
add edi, 4
jmp 0x40952b
mov edx, esi
mov esi, dword [ebp - 8]
mov ecx, esi
call fcn.00409460
add esp, 0x14
cmp eax, 0xfffffc1b
jne 0x48a07e
mov ecx, dword [ebp - 0x18]
cmp dword [ebx + 0xb8], ecx
jne 0x409607
jmp 0x48a089
test eax, eax
jne 0x409607
mov ecx, dword [ebp - 0x18]
cmp word [ecx], 0x7b
je 0x48a271
add edi, 4
jmp 0x40952b
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x48a0b3
sub esi, 2
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a0de
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and ecx, 0x8000007f
jns 0x48a100
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
cmp dword [eax*4 + 0x4b5ce8], 2
jne 0x48a124
sub esi, 2
jmp 0x4890bd
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 8], esi
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x2c]
jne 0x489091
jmp 0x40952e
mov dword [ebx + 0x9c], 2
jmp 0x409de4
movzx ecx, word [edi + 2]
lea eax, [edi + ecx*2]
cmp dword [ebx + 0x80], eax
jae 0x48bfe8
cmp word [edi], 0x71
je 0x409e33
cmp word [eax], 0x71
jne 0x48bfe8
jmp 0x409e33
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [edi]
push dword [ebp + 0x14]
movzx ecx, byte [eax + 0x49e530]
movzx eax, word [edi + 2]
push ebx
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [edi + ecx*2]
mov ecx, dword [ebp - 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
lea eax, [edi + 4]
mov dword [ebx + 0x80], eax
mov eax, 0xfffffc1f
jmp 0x409607
mov dword [ebx + 0x9c], 2
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
lea edx, [edi + 4]
push ebx
push ecx
push dword [ebp + 8]
mov ecx, dword [ebp - 8]
call fcn.00409460
add esp, 0x14
jmp 0x409607
mov eax, dword [ebp - 0x58]
mov dword [ebx + 0xa8], eax
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je case.0x4094e0.151
push eax
call dword [0x4bb80c]
add esp, 4
jmp case.0x4094e0.151
mov ecx, dword [ebp - 0x50]
lea edx, [ebp - 0x14c]
cmp ecx, edx
je 0x409607
push ecx
call dword [0x4bb80c]
mov eax, dword [ebp - 0xc]
add esp, 4
jmp 0x409607
mov eax, 0xfffffffa
jmp 0x409607
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov dword [ebx + 0xb8], edi
mov eax, 0xfffffc1b
jmp 0x409607
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
lea edx, [edi + 4]
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov eax, dword [ebp - 0x18]
mov dword [ebx + 0xb8], eax
mov eax, 0xfffffc1b
jmp 0x409607
mov dword [ebx + 0x84], eax
mov dword [ebx + 0x90], edx
mov eax, 0xfffffc1a
jmp 0x409607
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
push ebx
push edx
push dword [ebp + 8]
lea edx, [edi + 4]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov dword [ebx + 0xb8], esi
mov eax, 0xfffffc1b
jmp 0x409607
cmp ecx, dword [ebx + 0x88]
jbe case.0x4094e0.151
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle case.0x4094e0.151
mov eax, 0xfffffff4
jmp 0x409607
mov eax, 0xfffffff2
jmp 0x409607
cmp eax, 0xfffffffe
jne 0x48a32d
mov esi, dword [ebx + 0x7c]
cmp dword [ebx + 0x8c], 0
je case.0x4094e0.151
cmp esi, dword [ebx + 0x7c]
jb case.0x4094e0.151
cmp esi, dword [ebx + 0x88]
jmp 0x48a2f7
mov dword [ebp - 0xc], eax
cmp ecx, edx
jl 0x48a357
jmp 0x48a3bd
mov eax, dword [ebp - 8]
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x34]
push ebx
push esi
mov edx, eax
call fcn.004716b8
add esp, 0xc
test eax, eax
js 0x48a384
mov ecx, dword [ebp - 8]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x18]
jl 0x48a354
jmp 0x48a3b4
cmp eax, 0xfffffffe
jne 0x48a3b1
cmp dword [ebx + 0x8c], 0
je 0x48a3b1
mov eax, dword [ebx + 0x7c]
cmp eax, dword [ebx + 0x88]
jbe 0x48a3b1
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0xc]
jb case.0x4094e0.151
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov edx, dword [ebp - 8]
mov eax, esi
neg eax
lea edx, [edx + eax*2]
mov dword [ebp - 8], edx
cmp edx, dword [ebp - 0xc]
jae 0x48a3bd
xor eax, eax
jmp 0x409607
cmp ecx, 0xfffffffe
jne 0x48a404
mov eax, dword [ebx + 0x7c]
jmp 0x48a407
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
je case.0x4094e0.151
cmp eax, dword [ebx + 0x7c]
jb case.0x4094e0.151
cmp eax, dword [ebx + 0x88]
jmp 0x48a2f7
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
test ecx, ecx
mov ecx, dword [ebp - 8]
push ebx
push dword [ebp + 0xc]
mov edx, edi
push dword [ebp + 8]
je 0x48a529
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov edx, dword [ebp - 0x34]
cmp edx, dword [ebp - 0x18]
jge case.0x4094e0.151
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebx + 0x7c]
jae 0x48a511
movzx eax, word [ecx]
mov dword [ebp - 0x10], eax
add ecx, 2
and eax, 0xfc00
mov dword [ebp - 8], ecx
cmp eax, 0xd800
jne 0x48a4ad
movzx eax, word [ecx]
mov ebx, dword [ebp - 0x10]
and ebx, 0x3ff
and eax, 0x3ff
shl ebx, 0xa
or eax, ebx
mov ebx, dword [ebp + 0x10]
add eax, 0x10000
add ecx, 2
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], ecx
jmp 0x48a4b0
mov eax, dword [ebp - 0x10]
cmp eax, 0xff
jbe 0x48a4c2
cmp esi, 0x6a
je case.0x4094e0.151
jmp 0x48a4e7
shr dword [ebp - 0x10], 3
mov edx, dword [ebp - 0x10]
mov ecx, eax
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x1c]
test byte [edx + ecx], al
mov edx, dword [ebp - 0x34]
je case.0x4094e0.151
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc edx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x34], edx
push dword [ebp + 8]
mov edx, edi
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48a454
jmp 0x409607
cmp dword [ebx + 0x8c], 0
je case.0x4094e0.151
cmp ecx, dword [ebx + 0x88]
jmp 0x48a2f7
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov edx, dword [ebp - 0x34]
cmp edx, dword [ebp - 0x18]
jge case.0x4094e0.151
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409d24
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 0x28], ecx
mov dword [ebp - 8], eax
cmp ecx, 0xff
jbe 0x48a570
cmp esi, 0x6a
je case.0x4094e0.151
jmp 0x48a590
shr dword [ebp - 0x28], 3
mov ebx, dword [ebp - 0x28]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x1c]
test byte [ebx + ecx], al
mov ebx, dword [ebp + 0x10]
je case.0x4094e0.151
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
inc edx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x34], edx
push dword [ebp + 8]
mov edx, edi
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48a539
jmp 0x409607
movzx eax, word [edx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], 2
jmp 0x40982f
cmp esi, 0x6a
je 0x40985b
jmp 0x409e5b
cmp dword [ebx + 0x8c], 0
je 0x40985b
cmp eax, dword [ebx + 0x88]
jbe 0x40985b
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
jmp 0x40985b
mov eax, esi
sub esi, 2
cmp eax, dword [ebp - 0x40]
je case.0x4094e0.151
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x48a648
sub esi, 2
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48a622
jmp 0x409607
mov edx, dword [ebp - 0x34]
cmp edx, dword [ebp - 0x18]
jge 0x48a6e9
cmp eax, dword [ebx + 0x7c]
jae 0x48a6bb
movzx ecx, word [eax]
mov dword [ebp - 0x28], ecx
cmp ecx, 0xff
jbe 0x48a68e
cmp esi, 0x6a
jne 0x48a6ad
jmp 0x48a6e0
shr dword [ebp - 0x28], 3
mov ebx, dword [ebp - 0x28]
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x1c]
test byte [ebx + ecx], al
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp - 8]
je 0x48a6e0
add eax, 2
inc edx
mov dword [ebp - 8], eax
cmp edx, dword [ebp - 0x18]
jl 0x48a674
jmp 0x48a6e0
cmp dword [ebx + 0x8c], 0
je 0x48a6e0
cmp eax, dword [ebx + 0x88]
jbe 0x48a6e0
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
cmp eax, dword [ebp - 0x40]
jb case.0x4094e0.151
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
sub esi, 2
cmp esi, dword [ebp - 0x40]
jae 0x48a6ec
jmp 0x409607
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.00471abf
add esp, 4
test eax, eax
je case.0x4094e0.151
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x485c55
jmp 0x409607
cmp dword [ebx + 0x8c], 0
je case.0x4094e0.151
cmp esi, dword [ebx + 0x88]
jmp 0x48a2f7
mov dword [ebp - 0x40], esi
cmp edx, eax
jge 0x48a81f
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48a7fa
movzx edx, word [esi]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x30], edx
test ecx, ecx
je 0x48a7d1
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a7cc
movzx eax, word [esi + 2]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or eax, edx
add eax, 0x10000
mov dword [ebp - 0xc], 2
jmp 0x48a7d4
mov eax, dword [ebp - 0x30]
jmp 0x48a7d4
movzx eax, word [esi]
mov edx, dword [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.00471abf
add esp, 4
test eax, eax
je 0x48a81f
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
inc edx
lea esi, [esi + eax*2]
mov dword [ebp - 0x18], edx
cmp edx, dword [ebp - 0x10]
jl 0x48a783
jmp 0x48a81f
cmp dword [ebx + 0x8c], 0
je 0x48a81f
cmp esi, dword [ebx + 0x88]
jbe 0x48a81f
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov eax, esi
sub esi, 2
cmp eax, dword [ebp - 0x40]
je case.0x4094e0.151
cmp dword [ebp - 0x20], 0
je 0x48a86e
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x48a86e
sub esi, 2
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48a842
jmp 0x409607
cmp dword [ebx + 0x8c], 0
je case.0x4094e0.151
cmp edx, dword [ebx + 0x7c]
jb case.0x4094e0.151
cmp edx, dword [ebx + 0x88]
jmp 0x48a2f7
cmp dword [ebx + 0x8c], edx
je case.0x4094e0.151
cmp ecx, dword [ebx + 0x88]
jmp 0x48a2f7
mov ecx, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
je case.0x4094e0.151
cmp ecx, dword [ebx + 0x7c]
jb case.0x4094e0.151
jmp 0x48a2f1
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov ecx, dword [ebp - 0x10]
lea edx, [ecx + ecx]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0x1c], eax
jge case.0x4094e0.151
mov eax, dword [ebx + 0x7c]
sub eax, edx
cmp esi, eax
ja 0x48a945
lea eax, [ecx + ecx]
push eax
push dword [ebp - 0x28]
push esi
call fcn.00420183
add esp, 0xc
test eax, eax
jne 0x48a945
add esi, dword [ebp - 0xc]
jmp 0x48a97f
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jle 0x48a32d
mov eax, dword [ebx + 0x7c]
lea edx, [ecx + ecx]
sub eax, edx
mov dword [ebp - 0x30], edx
cmp esi, eax
ja 0x48a32d
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x6c]
push eax
push esi
call fcn.00420183
add esp, 0xc
test eax, eax
jne 0x48a32d
add esi, dword [ebp - 0x30]
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x1c]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
mov ecx, dword [ebp - 0x10]
add esp, 0x14
lea edx, [ecx + ecx]
test eax, eax
je 0x48a917
jmp 0x409607
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x34]
jge case.0x4094e0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx ecx, word [esi]
cmp dword [ebp - 0x18], ecx
je 0x48a9f9
cmp dword [ebp - 0x14], ecx
jne case.0x4094e0.151
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
add esi, 2
push ebx
push dword [ebp + 0xc]
mov edx, edi
push dword [ebp + 8]
mov ecx, esi
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48a9d3
jmp 0x409607
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x34]
jge case.0x4094e0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx eax, word [esi]
add esi, 2
cmp dword [ebp - 0x18], eax
jne case.0x4094e0.151
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x1c], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48aa47
jmp 0x409607
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
test ecx, ecx
push ebx
push dword [ebp + 0xc]
mov edx, edi
push dword [ebp + 8]
mov ecx, esi
je 0x48ab3d
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jge case.0x4094e0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
add esi, 2
cmp eax, 0xd800
jne 0x48ab03
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add esi, 2
cmp dword [ebp - 0x34], edx
je case.0x4094e0.151
cmp dword [ebp - 0x10], edx
je case.0x4094e0.151
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x1c], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48aabe
jmp 0x409607
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jge case.0x4094e0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx ecx, word [esi]
cmp dword [ebp - 0x34], ecx
je case.0x4094e0.151
cmp dword [ebp - 0x10], ecx
je case.0x4094e0.151
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
add esi, 2
push ebx
push dword [ebp + 0xc]
mov edx, edi
push dword [ebp + 8]
mov ecx, esi
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48ab4d
jmp 0x409607
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
test ecx, ecx
push ebx
push dword [ebp + 0xc]
mov edx, edi
push dword [ebp + 8]
mov ecx, esi
je 0x48ac43
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jge case.0x4094e0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
add esi, 2
cmp eax, 0xd800
jne 0x48ac12
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add esi, 2
cmp dword [ebp - 0x34], edx
je case.0x4094e0.151
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x1c], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48abcd
jmp 0x409607
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x14]
jge case.0x4094e0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx eax, word [esi]
add esi, 2
cmp dword [ebp - 0x34], eax
je case.0x4094e0.151
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x1c], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48ac53
jmp 0x409607
cmp eax, 0xa
ja case.default.0x48565a
jmp dword [eax*4 + 0x48c447]
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge case.0x4094e0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48ad04
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x48ad04
add esi, 2
cmp dword [ebp - 0x3c], 0
jne case.0x4094e0.151
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48acd2
jmp 0x409607
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge case.0x4094e0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx edx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], edx
je 0x48adaa
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48adaa
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
add esi, 2
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and edx, 0x8000007f
jns 0x48adcf
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
cmp eax, 9
je 0x48adf4
cmp eax, 5
je 0x48adf4
cmp eax, 8
je 0x48adf4
xor eax, eax
jmp 0x48adf9
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x4094e0.151
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x14], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48ad59
jmp 0x409607
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x4094e0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48ae9c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48ae9c
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and ecx, 0x8000007f
jns 0x48aebe
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x40]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
cmp dword [eax*4 + 0x4b5ce8], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x4094e0.151
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x14]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48ae51
jmp 0x409607
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x4094e0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48af81
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48af81
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and ecx, 0x8000007f
jns 0x48afa3
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x4094e0.151
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x14]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48af36
jmp 0x409607
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x4094e0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48b05f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b05f
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and ecx, 0x8000007f
jns 0x48b081
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x4094e0.151
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x14]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48b014
jmp 0x409607
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge case.0x4094e0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx edx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], edx
je 0x48b143
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b143
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
add esi, 2
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and edx, 0x8000007f
jns 0x48b168
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
mov eax, dword [eax*4 + 0x4b5ce8]
cmp eax, 1
je 0x48b18f
cmp eax, 3
je 0x48b18f
xor eax, eax
jmp 0x48b194
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x4094e0.151
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x14], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48b0f2
jmp 0x409607
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x4094e0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
je 0x48b23d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b23d
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0xc], ecx
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ac470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x48b263
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
cmp dword [eax*4 + 0x4b5ce8], 6
je 0x48b297
cmp edx, 9
je 0x48b297
cmp edx, 0xa
je 0x48b297
cmp edx, 0xc
je 0x48b297
cmp edx, 0xd
je 0x48b297
xor eax, eax
jmp 0x48b29c
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x4094e0.151
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x14]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48b1ec
jmp 0x409607
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x4094e0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
je 0x48b344
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b344
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0xc], ecx
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ac470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x48b36a
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
cmp dword [eax*4 + 0x4b5ce8], 6
je 0x48b3a3
cmp edx, 9
je 0x48b3a3
cmp edx, 0xa
je 0x48b3a3
cmp edx, 0xb
je 0x48b3a3
cmp edx, 0xc
je 0x48b3a3
cmp edx, 0xd
je 0x48b3a3
xor eax, eax
jmp 0x48b3a8
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x4094e0.151
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x14]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48b2f3
jmp 0x409607
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x4094e0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
je 0x48b450
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b450
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0xc], ecx
add esi, 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ac470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x48b476
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49e5d0]
movzx eax, byte [eax*8 + 0x4ab0d1]
mov eax, dword [eax*4 + 0x4b5ce8]
cmp eax, 1
je 0x48b4a2
cmp eax, 3
je 0x48b4a2
cmp edx, 0x5f
je 0x48b4a2
xor eax, eax
jmp 0x48b4a7
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x4094e0.151
mov eax, dword [ebp + 0x18]
inc dword [ebp - 0x14]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48b3ff
jmp 0x409607
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge case.0x4094e0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48b54c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b549
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x40]
mov ebx, dword [edx*4 + 0x4ae670]
lea edx, [edx*4 + 0x4ae670]
mov dword [ebp - 0xc], ebx
cmp ecx, ebx
mov ebx, dword [ebp + 0x10]
jb 0x48b57e
mov ebx, dword [ebp + 0x10]
lea edx, [edx + 4]
cmp ecx, dword [ebp - 0xc]
je 0x48b5b4
mov ebx, dword [edx]
mov dword [ebp - 0xc], ebx
cmp ecx, ebx
mov ebx, dword [ebp + 0x10]
jae 0x48b567
cmp dword [ebp - 0x3c], 0
je case.0x4094e0.151
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48b4fe
jmp 0x409607
cmp dword [ebp - 0x3c], 0
jne case.0x4094e0.151
jmp 0x48b588
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge case.0x4094e0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48a760
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48b631
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b62e
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov eax, dword [ebp - 0x14]
cmp ecx, 0x24
je 0x48b65c
cmp ecx, 0x40
je 0x48b65c
cmp ecx, 0x60
je 0x48b65c
cmp ecx, 0xa0
jb 0x48b650
cmp ecx, 0xd7ff
jbe 0x48b65c
cmp ecx, 0xe000
jae 0x48b65c
xor ecx, ecx
jmp 0x48b661
mov ecx, 1
cmp ecx, dword [ebp - 0x3c]
je case.0x4094e0.151
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
mov edx, edi
push ebx
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48b5e3
jmp 0x409607
mov ecx, esi
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge case.0x4094e0.151
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x30], eax
cmp esi, eax
jae 0x48a760
movzx edx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], edx
je 0x48b6fe
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b6fe
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
mov dword [ebp - 0xc], edx
add esi, 2
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and edx, 0x8000007f
jns 0x48b723
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49e5d0]
movzx edx, byte [eax*8 + 0x4ab0d2]
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0xc], edx
cmp esi, eax
jae 0x48b7ea
mov ebx, dword [ebp - 0x20]
mov edi, edx
movzx ecx, word [esi]
mov dword [ebp - 0xc], 1
test ebx, ebx
je 0x48b785
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b785
movzx eax, word [esi + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov dword [ebp - 0xc], 2
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ac470]
shl eax, 7
and ecx, 0x8000007f
jns 0x48b7a7
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49e5d0]
movzx ecx, byte [eax*8 + 0x4ab0d2]
mov eax, 1
shl eax, cl
test dword [edi*4 + 0x49e454], eax
je 0x48b7de
mov eax, dword [ebp - 0xc]
mov edi, ecx
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x30]
cmp esi, eax
jb 0x48b748
jmp 0x48b7e1
mov eax, dword [ebp - 0x30]
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x14]
cmp dword [ebx + 0x8c], 0
je 0x48b813
cmp esi, eax
jb 0x48b813
cmp esi, dword [ebx + 0x88]
jbe 0x48b813
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x14], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48b6a8
jmp 0x409607
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x409cc7
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x409cc7
cmp dword [ebx + 0x1c], 1
je case.0x4094e0.151
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x36]
je case.0x4094e0.151
jmp 0x409cc7
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add esi, 2
jmp 0x409cdf
add eax, 0xfffffffa
cmp eax, 0xf
ja case.default.0x48565a
jmp dword [eax*4 + 0x48c473]
cmp edx, 0xd
ja 0x48b8e5
je 0x48b8ca
cmp edx, 0xa
je case.0x48b8a5.13
lea eax, [edx - 0xb]
cmp eax, 1
ja case.0x4094e0.151
jmp 0x48b8fc
cmp esi, dword [ebx + 0x7c]
jae case.0x48b8a5.13
cmp word [esi], 0xa
jne case.0x48b8a5.13
add esi, 2
jmp case.0x48b8a5.13
cmp edx, 0x85
je 0x48b8fc
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x4094e0.151
cmp dword [ebx + 0x6c], 0
jne case.0x4094e0.151
jmp case.0x48b8a5.13
cmp edx, 0x180e
ja 0x48b94f
je case.0x4094e0.151
cmp edx, 0xa0
ja 0x48b93e
je case.0x4094e0.151
cmp edx, 9
je case.0x4094e0.151
cmp edx, 0x20
je case.0x4094e0.151
jmp case.0x48b8a5.13
cmp edx, 0x1680
je case.0x4094e0.151
jmp case.0x48b8a5.13
cmp edx, 0x205f
ja 0x48b986
je case.0x4094e0.151
cmp edx, 0x2000
jb case.0x48b8a5.13
cmp edx, 0x200a
jbe case.0x4094e0.151
cmp edx, 0x202f
je case.0x4094e0.151
jmp case.0x48b8a5.13
cmp edx, 0x3000
je case.0x4094e0.151
jmp case.0x48b8a5.13
cmp edx, 0x180e
ja 0x48b9db
je case.0x48b8a5.13
cmp edx, 0xa0
ja 0x48b9ca
je case.0x48b8a5.13
cmp edx, 9
je case.0x48b8a5.13
cmp edx, 0x20
jne case.0x4094e0.151
jmp case.0x48b8a5.13
cmp edx, 0x1680
jne case.0x4094e0.151
jmp case.0x48b8a5.13
cmp edx, 0x205f
ja 0x48ba12
je case.0x48b8a5.13
cmp edx, 0x2000
jb case.0x4094e0.151
cmp edx, 0x200a
jbe case.0x48b8a5.13
cmp edx, 0x202f
jne case.0x4094e0.151
jmp case.0x48b8a5.13
cmp edx, 0x3000
jne case.0x4094e0.151
jmp case.0x48b8a5.13
cmp edx, 0x85
ja 0x48ba48
je case.0x4094e0.151
cmp edx, 0xa
jb case.0x48b8a5.13
cmp edx, 0xd
jbe case.0x4094e0.151
jmp case.0x48b8a5.13
cmp edx, 0x2028
jb case.0x48b8a5.13
cmp edx, 0x2029
jbe case.0x4094e0.151
jmp case.0x48b8a5.13
cmp edx, 0x85
ja 0x48ba84
je case.0x48b8a5.13
lea eax, [edx - 0xa]
cmp eax, 3
ja case.0x4094e0.151
jmp case.0x48b8a5.13
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x4094e0.151
jmp case.0x48b8a5.13
cmp edx, 0x100
jae case.0x48b8a5.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
jne case.0x4094e0.151
jmp case.0x48b8a5.13
cmp edx, 0x100
jae case.0x4094e0.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
je case.0x4094e0.151
jmp case.0x48b8a5.13
cmp edx, 0x100
jae case.0x48b8a5.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
jne case.0x4094e0.151
jmp case.0x48b8a5.13
cmp edx, 0x100
jae case.0x4094e0.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
je case.0x4094e0.151
jmp case.0x48b8a5.13
cmp edx, 0x100
jae case.0x48b8a5.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
jne case.0x4094e0.151
jmp case.0x48b8a5.13
cmp edx, 0x100
jae case.0x4094e0.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
je case.0x4094e0.151
jmp case.0x48b8a5.13
cmp esi, dword [ebx + 0x7c]
jb case.0x48b8a5.13
cmp dword [ebx + 0x18], 0
jne case.0x48b8a5.13
cmp dword [ebx + 0x1c], 2
jne case.0x48b8a5.13
movzx eax, word [ebx + 0x34]
cmp edx, eax
jne case.0x48b8a5.13
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
jmp case.0x48b8a5.13
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge case.0x4094e0.151
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x48a760
mov eax, dword [ebp - 0x34]
cmp eax, 0xc
jne 0x48bc13
cmp dword [ebx + 0x18], 0
je 0x48bbe4
push 0
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.004080a0
add esp, 0xc
test eax, eax
jne case.0x4094e0.151
mov ecx, dword [ebp - 0x14]
jmp 0x48bc10
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x48bc10
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x48bc10
cmp dword [ebx + 0x1c], 1
je case.0x4094e0.151
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x36]
je case.0x4094e0.151
mov eax, dword [ebp - 0x34]
movzx edx, word [esi]
add eax, 0xfffffffa
add esi, 2
cmp eax, 0xf
ja case.default.0x48565a
jmp dword [eax*4 + 0x48c4b3]
cmp dword [ebx + 0x8c], 0
je case.0x48bc25.13
cmp esi, dword [ebx + 0x7c]
jb case.0x48bc25.13
cmp dword [ebx + 0x18], 0
jne case.0x48bc25.13
cmp dword [ebx + 0x1c], 2
jne case.0x48bc25.13
movzx eax, word [ebx + 0x34]
cmp edx, eax
jne case.0x48bc25.13
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x484b6c
jmp case.0x48bc25.13
cmp edx, 0xd
ja 0x48bcb4
je 0x48bc99
cmp edx, 0xa
je case.0x48bc25.13
lea eax, [edx - 0xb]
cmp eax, 1
ja case.0x4094e0.151
jmp 0x48bccb
cmp esi, dword [ebx + 0x7c]
jae case.0x48bc25.13
cmp word [esi], 0xa
jne case.0x48bc25.13
add esi, 2
jmp case.0x48bc25.13
cmp edx, 0x85
je 0x48bccb
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x4094e0.151
cmp dword [ebx + 0x6c], 0
jne case.0x4094e0.151
jmp case.0x48bc25.13
cmp edx, 0x180e
ja 0x48bd1e
je case.0x4094e0.151
cmp edx, 0xa0
ja 0x48bd0d
je case.0x4094e0.151
cmp edx, 9
je case.0x4094e0.151
cmp edx, 0x20
je case.0x4094e0.151
jmp case.0x48bc25.13
cmp edx, 0x1680
je case.0x4094e0.151
jmp case.0x48bc25.13
cmp edx, 0x205f
ja 0x48bd55
je case.0x4094e0.151
cmp edx, 0x2000
jb case.0x48bc25.13
cmp edx, 0x200a
jbe case.0x4094e0.151
cmp edx, 0x202f
je case.0x4094e0.151
jmp case.0x48bc25.13
cmp edx, 0x3000
je case.0x4094e0.151
jmp case.0x48bc25.13
cmp edx, 0x180e
ja 0x48bdaa
je case.0x48bc25.13
cmp edx, 0xa0
ja 0x48bd99
je case.0x48bc25.13
cmp edx, 9
je case.0x48bc25.13
cmp edx, 0x20
jne case.0x4094e0.151
jmp case.0x48bc25.13
cmp edx, 0x1680
jne case.0x4094e0.151
jmp case.0x48bc25.13
cmp edx, 0x205f
ja 0x48bde1
je case.0x48bc25.13
cmp edx, 0x2000
jb case.0x4094e0.151
cmp edx, 0x200a
jbe case.0x48bc25.13
cmp edx, 0x202f
jne case.0x4094e0.151
jmp case.0x48bc25.13
cmp edx, 0x3000
jne case.0x4094e0.151
jmp case.0x48bc25.13
cmp edx, 0x85
ja 0x48be17
je case.0x4094e0.151
cmp edx, 0xa
jb case.0x48bc25.13
cmp edx, 0xd
jbe case.0x4094e0.151
jmp case.0x48bc25.13
cmp edx, 0x2028
jb case.0x48bc25.13
cmp edx, 0x2029
jbe case.0x4094e0.151
jmp case.0x48bc25.13
cmp edx, 0x85
ja 0x48be53
je case.0x48bc25.13
lea eax, [edx - 0xa]
cmp eax, 3
ja case.0x4094e0.151
jmp case.0x48bc25.13
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x4094e0.151
jmp case.0x48bc25.13
cmp edx, 0xff
ja case.0x48bc25.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
jne case.0x4094e0.151
jmp case.0x48bc25.13
cmp edx, 0xff
ja case.0x4094e0.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
je case.0x4094e0.151
jmp case.0x48bc25.13
cmp edx, 0xff
ja case.0x48bc25.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
jne case.0x4094e0.151
jmp case.0x48bc25.13
cmp edx, 0xff
ja case.0x4094e0.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
je case.0x4094e0.151
jmp case.0x48bc25.13
cmp edx, 0xff
ja case.0x48bc25.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
jne case.0x4094e0.151
jmp case.0x48bc25.13
cmp edx, 0xff
ja case.0x4094e0.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
je case.0x4094e0.151
mov eax, dword [ebp + 0x18]
inc eax
push eax
push dword [ebp + 0x14]
inc ecx
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x14], ecx
push dword [ebp + 8]
mov edx, edi
mov ecx, esi
call fcn.00409460
add esp, 0x14
test eax, eax
je 0x48bb9e
jmp 0x409607
mov dword [ebx + 0x9c], 2
jmp 0x409b6f
movzx ecx, word [edi + 2]
lea eax, [edi + ecx*2]
cmp dword [ebx + 0x80], eax
jae 0x409bb8
cmp word [edi], 0x71
je 0x48bf5d
cmp word [eax], 0x71
jne 0x409bb8
xor edx, edx
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0x94], eax
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0xb0], eax
cmp word [edi], 0x71
je 0x409b63
mov esi, dword [ebp - 0xc]
mov eax, dword [ebx + 0xc]
mov edi, dword [ebp - 0x10]
lea ecx, [esi + esi]
mov dword [eax + ecx*4], edi
mov eax, dword [ebx + 0xc]
mov edi, dword [ebp - 0x40]
mov dword [eax + ecx*4 + 4], edi
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0xc]
sub ecx, esi
mov esi, dword [ebp - 0x18]
mov dword [eax + ecx*4], esi
jmp 0x409bb8
cmp edx, 0xfffffc1b
jne 0x48bfe8
movzx eax, word [edi]
cmp eax, 0x7b
je 0x48bfda
cmp eax, 0x71
jne 0x48bfd1
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x48bfc3
movzx eax, word [edi + 2]
neg eax
lea edi, [edi + eax*2]
mov eax, dword [ebx + 0xb8]
sub eax, edi
neg eax
sbb eax, eax
and edx, eax
mov eax, edx
jmp 0x409607
mov esi, dword [ebp - 8]
lea eax, [edi + 4]
mov dword [ebx + 0xb4], eax
mov dword [ebx + 0xb0], edx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [edi]
push dword [ebp + 0x14]
movzx ecx, byte [eax + 0x49e530]
movzx eax, word [edi + 2]
push ebx
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [edi + ecx*2]
mov ecx, esi
call fcn.00409460
mov edi, eax
add esp, 0x14
cmp edi, 1
je 0x48c03f
cmp edi, 0xfffffc19
jne 0x48c058
cmp dword [ebx + 0xb0], 0
jne 0x48c058
mov ecx, dword [ebp - 0xc]
mov dword [ebx + 0xb0], ecx
mov eax, edi
jmp 0x409607
cmp edi, 0xfffffc1f
jne 0x48c076
mov edx, dword [ebx + 0x80]
mov ecx, dword [ebp - 0xc]
call fcn.004718ee
test eax, eax
je 0x48c189
mov eax, edi
jmp 0x409607
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x49e530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov eax, 0xfffffc1c
jmp 0x409607
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x49e530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov eax, 0xfffffc1d
jmp 0x409607
lea esi, [edi + 4]
mov dword [ebx + 0xb4], esi
mov dword [ebx + 0xb0], edx
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [edi]
push dword [ebp + 0x14]
movzx ecx, byte [eax + 0x49e530]
movzx eax, word [edi + 2]
push ebx
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [edi + ecx*2]
mov ecx, dword [ebp - 8]
call fcn.00409460
add esp, 0x14
cmp eax, 1
je 0x48c137
cmp eax, 0xfffffc19
jne 0x48c146
cmp dword [ebx + 0xb0], 0
jne 0x48c146
mov dword [ebx + 0xb0], esi
test eax, eax
jne 0x409607
mov eax, 0xfffffc1d
jmp 0x409607
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x49e530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
mov ecx, esi
call fcn.00409460
add esp, 0x14
test eax, eax
jne 0x409607
mov dword [ebx + 0x80], esi
mov eax, 0xfffffc1e
jmp 0x409607
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 8]
inc eax
push eax
push dword [ebp + 0x14]
movzx eax, word [edi]
push ebx
movzx eax, byte [eax + 0x49e530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00409460
add esp, 0x14
jmp 0x48c1c8
mov dword [ebx + 0xb0], esi
test eax, eax
jne 0x409607
mov dword [ebx + 0x80], edi
mov eax, 0xfffffc20
jmp 0x409607
lea esi, [edi + 4]
mov dword [ebx + 0xb4], esi
mov dword [ebx + 0xb0], edx
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [edi]
push dword [ebp + 0x14]
movzx ecx, byte [eax + 0x49e530]
movzx eax, word [edi + 2]
push ebx
push dword [ebp + 0xc]
add ecx, eax
push dword [ebp + 8]
lea edx, [edi + ecx*2]
mov ecx, dword [ebp - 8]
call fcn.00409460
add esp, 0x14
cmp eax, 1
je 0x48c228
cmp eax, 0xfffffc19
jne 0x48c1c8
cmp dword [ebx + 0xb0], 0
jne 0x48c1c8
jmp 0x48c1c2
cmp esi, 0x99
je 0x4095e5
cmp dword [ebx + 0xa8], 0
jne 0x4095e5
cmp dword [ebx + 0x60], 0
jne case.0x4094e0.151
cmp dword [ebx + 0x64], 0
je 0x4095e5
mov ecx, dword [ebx + 0x98]
mov eax, dword [ebx + 0x78]
lea eax, [eax + ecx*2]
cmp edi, eax
je case.0x4094e0.151
jmp 0x4095e5
mov eax, 0xfffffc19
jmp 0x409607
mov eax, 0xfffffffb
jmp 0x409607
mov eax, 0xffffffeb
jmp 0x409607
inc dword [ebx]
mov eax, 0xfffffff8
jmp 0x409607