Function at 0x409580
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 0x4848a0
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 0x48cf53
inc eax
mov dword [ebx], eax
mov eax, dword [ebp + 0x18]
cmp eax, dword [ebx + 8]
jae 0x48cf49
cmp dword [ebx + 0x9c], 2
je 0x4848d1
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.0x409600.98
movzx eax, byte [esi + 0x40a120]
jmp dword [eax*4 + 0x409fd8]
cmp esi, 0x82
jae 0x48adfc
cmp esi, 0x7b
je 0x48adfc
cmp dword [ebx + 0x70], 0
jne 0x409f04
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
je 0x409f04
movzx eax, word [edi]
movzx eax, byte [eax + 0x49f530]
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 0x4095c0
jmp 0x48cf53
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 0x4855ad
cmp eax, 0x7b
je 0x4855ad
xor ecx, ecx
mov dword [ebp - 0x10], ecx
cmp eax, 0x7a
jbe 0x4855bd
cmp eax, 0x7f
je 0x409aa3
cmp eax, 0x7c
je 0x4855c6
mov edx, 0x84
cmp ax, dx
je 0x409aa3
mov edx, 0x80
cmp ax, dx
je 0x409aa3
mov edx, 0x85
cmp ax, dx
je 0x409aa3
mov edx, dword [ebp + 0xc]
cmp word [edi], 0x72
jne 0x48564c
cmp word [esi], 0x7b
je 0x48af7f
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4095e0
mov edx, dword [ebp - 8]
mov edi, dword [ebp + 8]
cmp edx, edi
je 0x48ceef
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x84], edx
mov dword [ebx + 0x90], eax
mov dword [ebx + 0x80], edi
test esi, esi
jne 0x48cf35
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 0x409e5e
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x18], 1
mov eax, 1
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x486755
mov dword [ebp - 0x28], 1
cmp eax, 1
jl 0x409eba
mov ecx, dword [ebx + 0x7c]
lea esp, [esp]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x409e44
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 0x48671f
cmp ecx, 0xff
ja 0x486747
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 0x4098e1
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 0x409e56
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x40980e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x4864dd
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x409830
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d2]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 8]
cmp eax, esi
jae 0x4098c9
mov edi, dword [ebp - 0x20]
mov ebx, eax
movzx ecx, word [ebx]
mov esi, 1
test edi, edi
je 0x40986f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x486502
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x409891
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x30]
add eax, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx ecx, byte [eax*8 + 0x4ac0d2]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x49f454], eax
jne 0x4099a6
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 0x486526
add edi, 2
mov dword [ebp - 0x38], edi
jmp 0x4095e0
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebx + 0x7c]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, dword [ebp - 0x34]
jle 0x409780
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 0x4095e0
test edx, edx
jne 0x48b0e9
mov dword [ebp - 0x40], eax
test ecx, ecx
je 0x48b32d
mov ecx, dword [ebp - 0x18]
cmp dword [ebp - 0x34], ecx
jge 0x40997b
mov dword [ebp - 0xc], 1
cmp eax, dword [ebx + 0x7c]
jae 0x48b2b1
movzx ecx, word [eax]
mov edx, dword [ebp - 8]
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x10], ecx
cmp eax, 0xd800
je 0x48b27a
cmp ecx, 0xff
ja 0x48b2a3
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 0x409f7b
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
jmp 0x48b2e3
lea ebx, [ebx + esi*2]
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x30], ecx
cmp ebx, esi
jb 0x409851
jmp 0x4098bd
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e56
cmp dword [ebp - 0x20], edx
je 0x486a4e
movzx esi, word [edi + 2]
add edi, 2
mov eax, esi
and eax, 0xfc00
mov edx, 1
cmp eax, 0xd800
je 0x48699e
mov eax, dword [ebp - 8]
movzx ecx, word [eax]
cmp esi, 0x80
jae 0x4869c2
cmp ecx, 0xff
ja 0x409a10
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.0x409600.151
add edi, 2
add dword [ebp - 8], 2
mov dword [ebp - 0x38], edi
jmp 0x4095e0
mov edx, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, edx
jae 0x409e44
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 8], eax
je 0x409a60
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [ebp - 8]
je 0x485fb5
cmp ecx, 0xe
jb 0x409a71
cmp ecx, 0x85
jb case.0x409600.151
cmp ecx, 0xd
ja 0x486026
jne 0x485fda
cmp eax, edx
jae 0x485ff4
cmp word [eax], 0xa
jne 0x4098d6
add eax, 2
add edi, 2
mov dword [ebp - 8], eax
mov dword [ebp - 0x38], edi
jmp 0x4095e0
movzx ecx, word [esi + 4]
mov eax, dword [ebx + 0xa8]
mov dword [ebp - 0xc], ecx
lea edx, [ecx + ecx]
test eax, eax
jne 0x4855e6
mov eax, dword [ebx + 0x94]
and eax, 0xffff0000
or eax, ecx
mov dword [ebx + 0x94], eax
cmp edx, dword [ebx + 0x14]
jge 0x48560b
mov ecx, dword [ebp + 0xc]
cmp edx, ecx
jg 0x48561e
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 0x4096d5
add edx, 2
mov dword [ebp + 0xc], edx
jmp 0x4096d8
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e56
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 0x30], ecx
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x409b46
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x4862f9
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0x30]
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x409b6c
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
movzx ecx, word [edi + 2]
cmp ecx, 9
jne 0x486321
movzx eax, word [edi + 4]
mov ecx, dword [eax*4 + 0x4af670]
lea eax, [eax*4 + 0x4af670]
cmp edx, ecx
jb 0x4864cf
lea ecx, [ecx]
lea eax, [eax + 4]
cmp edx, ecx
je 0x409bb2
mov ecx, dword [eax]
cmp edx, ecx
jae 0x409ba0
jmp 0x4864cf
cmp esi, 0x10
jne case.0x409600.151
add edi, 6
mov dword [ebp - 0x38], edi
jmp 0x4095e0
cmp dword [ebp - 0x20], edx
je 0x48696f
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 0x409fc5
mov eax, dword [ebx + 0x7c]
mov edx, dword [ebp - 8]
sub eax, edx
sar eax, 1
cmp esi, eax
jg 0x48b553
test esi, esi
jle 0x4095e0
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.0x409600.151
test esi, esi
jle 0x4095e0
jmp 0x409c10
movzx edx, word [edi + 4]
mov dword [ebp - 0xc], edx
lea eax, [edx + edx]
cmp eax, dword [ebx + 0x14]
jge case.0x409600.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 0x48cbec
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 + 0x49f530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00409580
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc1b
je 0x48cc43
cmp edx, 0xfffffc20
je 0x48cbfb
test edx, edx
je 0x48cc20
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 0x409fcf
mov eax, 1
movsx esi, byte [ecx + 0x49f520]
movsx ecx, byte [ecx + 0x49f528]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x409d17
mov dword [ebp - 0x1c], 0x7fffffff
movzx ecx, word [edi]
add edi, 2
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], edi
cmp ecx, 0x10
je 0x487911
cmp ecx, 0xf
je 0x487908
or ecx, 0xffffffff
mov dword [ebp - 0x30], ecx
test esi, esi
jg 0x487930
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 8]
mov edx, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x24]
je 0x4095e0
test eax, eax
mov eax, dword [ebp - 0x30]
je 0x48920b
test eax, eax
jns 0x48b960
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 0x48c357
test ecx, ecx
mov ecx, esi
je 0x48c84f
call fcn.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge case.0x409600.151
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x48b421
cmp dword [ebp - 0x34], 0xc
jne 0x409de7
cmp dword [ebx + 0x18], 0
je 0x48c500
push dword [ebp - 0x20]
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.00408184
add esp, 0xc
test eax, eax
jne case.0x409600.151
mov ecx, dword [ebp - 0x14]
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
add esi, 2
cmp eax, 0xd800
je 0x48c539
mov eax, dword [ebp - 0x34]
cmp eax, 0xc
jne 0x48c55a
cmp dword [ebx + 0x8c], 0
jne 0x48c80d
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
jmp 0x409da0
cmp dword [ebx + 0x8c], 0
je case.0x409600.151
jmp 0x48b0de
cmp dword [ebx + 0x8c], edx
jmp 0x409e4b
sub eax, 0x62
cmp eax, 7
ja case.default.0x409e71
movzx eax, byte [eax + 0x40a1c4]
jmp dword [eax*4 + 0x40a1bc]
add ecx, 0xffffff9e
add edi, 2
mov dword [ebp - 0x38], edi
test cl, 1
jne 0x409fbb
xor eax, eax
mov dword [ebp - 0x2c], eax
movsx eax, byte [ecx + 0x49f520]
movsx ecx, byte [ecx + 0x49f528]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x40975b
mov dword [ebp - 0x18], 0x7fffffff
jmp 0x40975b
mov eax, dword [ebp - 8]
jmp 0x4098fa
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je case.0x409600.113
mov dword [ebp - 0x38], edi
jmp 0x4095e0
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
jmp 0x4852b9
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 + 0x49f530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00409580
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc20
je 0x48ae0b
test edx, edx
jne 0x48cc6f
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.0x409600.151
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0x94], eax
jmp case.0x409600.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 0x40997b
mov eax, edx
jmp 0x409924
mov dword [ebp - 0x10], edx
jmp 0x48534d
add edi, 2
jmp 0x485312
mov eax, dword [ebp - 8]
jmp 0x4856df
mov esi, dword [ebp - 0x20]
jmp 0x485cf4
mov eax, 1
jmp 0x409e8c
mov esi, 2
jmp 0x409bf4
xor eax, eax
jmp 0x409cf5
cmp dword [ebp + 0x18], 0
lea ecx, [ebp + 0x18]
jne 0x4848c2
push 1
push 0
push 0
push 0
push 0
xor edx, edx
call fcn.00409580
add esp, 0x14
jmp 0x409727
sub ecx, eax
test ecx, ecx
jle 0x4848ca
neg ecx
mov eax, ecx
jmp 0x409727
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 0x4095e0
inc dword [ebx + 0x28]
mov eax, dword [ebx + 0x28]
cmp eax, dword [ebx + 0x2c]
ja 0x48ae37
movzx eax, word [edi]
movzx ecx, byte [eax + 0x49f530]
movzx eax, word [edi + 2]
add ecx, eax
lea edi, [edi + ecx*2]
mov dword [ebp - 0x38], edi
jmp 0x4095e0
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.00409580
add esp, 0x14
cmp eax, 1
je 0x4849a0
cmp eax, 0xfffffc20
jne 0x48497d
movzx ecx, word [edi + 2]
lea ecx, [edi + ecx*2]
cmp dword [ebx + 0x80], ecx
jae 0x409727
cmp word [edi], 0x71
je 0x484985
cmp word [ecx], 0x71
jne 0x409727
jmp 0x484985
test eax, eax
jne 0x409727
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 0x484931
mov ecx, dword [ebp + 8]
jmp 0x4849a9
mov ecx, dword [ebx + 0x80]
mov dword [ebp + 8], ecx
movzx eax, word [edi]
cmp eax, 0x7c
je 0x4849ba
cmp eax, 0x71
jne case.0x409600.151
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x4849ba
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 0x48718b
cmp eax, dword [ebp - 0x28]
jne 0x48ac86
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4095e0
cmp word [edi + 4], 0x70
movzx eax, word [edi + 2]
mov dword [ebp - 0x10], eax
jne 0x484ace
mov ecx, dword [0x4c44ec]
test ecx, ecx
je 0x484ac5
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]
or edx, 0xffffffff
test eax, eax
cmove eax, edx
mov dword [ebp - 0x80], eax
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 ecx
add esp, 4
test eax, eax
jg case.0x409600.151
js 0x409727
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 0x484c81
cmp ecx, 0x8a
je 0x484c81
cmp ecx, 0x87
je 0x484b57
cmp ecx, 0x88
je 0x484b57
cmp ecx, 0x8b
jne 0x484b11
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
jmp 0x484db8
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.00409580
add esp, 0x14
cmp eax, 1
je 0x48acd0
test eax, eax
je 0x484b4c
cmp eax, 0xfffffc20
jne 0x409727
mov eax, dword [ebp - 0x10]
lea edi, [edi + eax*2]
jmp 0x484db8
movzx edx, word [edi + 6]
add edx, edx
cmp edx, dword [ebp + 0xc]
jge 0x484b6f
mov eax, dword [ebx + 0xc]
cmp dword [eax + edx*4], 0
jge 0x484da3
xor eax, eax
mov dword [ebp - 0x18], eax
cmp ecx, 0x88
jne 0x484d9d
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 0x484bb2
movzx eax, word [ecx]
cmp eax, dword [ebp - 0xc]
je 0x484ba9
mov eax, dword [ebx + 0x24]
inc edx
lea ecx, [ecx + eax*2]
cmp edx, dword [ebx + 0x20]
jl 0x484b95
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x34], ecx
cmp edx, dword [ebx + 0x20]
jge 0x484d9d
mov dword [ebp - 0x38], ecx
cmp ecx, dword [ebx + 0x30]
jbe 0x484c1a
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.00472519
test eax, eax
jne 0x484c11
mov ecx, dword [ebp - 0x38]
movzx edx, word [ecx]
add edx, edx
cmp edx, dword [ebp + 0xc]
jge 0x484c02
mov eax, dword [ebx + 0xc]
cmp dword [eax + edx*4], 0
jge 0x484da3
xor eax, eax
mov dword [ebp - 0x18], eax
cmp ecx, dword [ebx + 0x30]
jbe 0x484c14
mov eax, dword [ebp - 0x30]
jmp 0x484bd4
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 0x484d9d
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.00472519
test eax, eax
jne 0x484d9a
mov ecx, dword [ebp - 0x34]
movzx edx, word [ecx]
add edx, edx
cmp edx, dword [ebp + 0xc]
jge 0x484c67
mov eax, dword [ebx + 0xc]
cmp dword [eax + edx*4], 0
jge 0x484da3
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 0x484d9d
mov eax, dword [ebp - 0x30]
jmp 0x484c35
mov edx, dword [ebx + 0xa8]
test edx, edx
jne 0x484c97
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
jmp 0x484db8
movzx eax, word [edi + 6]
mov dword [ebp - 0xc], eax
cmp eax, 0xffff
je 0x484da3
mov edx, dword [edx + 4]
mov dword [ebp - 0x30], edx
cmp eax, edx
je 0x484da3
xor eax, eax
mov dword [ebp - 0x18], eax
cmp ecx, 0x8a
jne 0x484d9d
mov ecx, dword [ebx + 0x30]
xor edx, edx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x10], edx
cmp dword [ebx + 0x20], eax
jle 0x484cf5
movzx eax, word [ecx]
cmp eax, dword [ebp - 0xc]
je 0x484cec
mov eax, dword [ebx + 0x24]
inc edx
lea ecx, [ecx + eax*2]
cmp edx, dword [ebx + 0x20]
jl 0x484cd8
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x34], ecx
cmp edx, dword [ebx + 0x20]
jge 0x484d9d
mov dword [ebp - 0x38], ecx
cmp ecx, dword [ebx + 0x30]
jbe 0x484d4e
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.00472519
test eax, eax
jne 0x484d45
mov ecx, dword [ebp - 0x38]
movzx eax, word [ecx]
cmp eax, dword [ebp - 0x30]
je 0x484da3
xor eax, eax
mov dword [ebp - 0x18], eax
cmp ecx, dword [ebx + 0x30]
jbe 0x484d48
mov eax, dword [ebp - 0x28]
jmp 0x484d17
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 0x484d9d
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.00472519
test eax, eax
jne 0x484d9a
mov ecx, dword [ebp - 0x34]
movzx eax, word [ecx]
cmp eax, dword [ebp - 0x30]
je 0x484da3
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 0x484d9d
mov eax, dword [ebp - 0x28]
jmp 0x484d65
mov eax, dword [ebp - 0x18]
movzx ecx, word [edi + 2]
jmp 0x484dad
mov ecx, 2
mov eax, 1
lea edi, [edi + ecx*2]
test eax, eax
jne 0x48ad01
cmp word [edi], 0x71
je 0x48ad01
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4095e0
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 0x484e02
or eax, 0x10000
add edi, 4
mov dword [ebx + 0x94], eax
mov dword [ebp - 0x38], edi
jmp 0x4095e0
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 0x484e2a
lea eax, [edx + 2]
mov dword [ebp + 0xc], eax
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4095e0
cmp dword [ebx + 0x9c], 1
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0xc], eax
jne 0x484e54
mov esi, 1
mov dword [ebx + 0x9c], edx
jmp 0x484e56
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.00409580
mov ecx, eax
add esp, 0x14
cmp ecx, 1
je 0x484ecf
cmp ecx, 0xfffffc19
je 0x484ecf
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0xb0], eax
cmp ecx, 0xfffffc20
jne 0x484eb7
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
cmp dword [ebx + 0x80], eax
jae 0x4848ca
cmp word [edi], 0x71
je 0x484ebf
cmp word [eax], 0x71
jne 0x4848ca
jmp 0x484ebf
test ecx, ecx
jne 0x4848ca
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x484e56
jmp 0x484ed8
mov eax, dword [ebx + 0x80]
mov dword [ebp + 8], eax
cmp word [edi], 0x72
je case.0x409600.151
test esi, esi
jne 0x409722
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x484eea
mov eax, dword [ebx + 0x90]
add edi, 4
mov dword [ebp - 0x38], edi
mov dword [ebp + 0xc], eax
jmp 0x4095e0
cmp dword [ebx + 0x9c], 1
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0xc], eax
jne 0x484f2b
mov esi, 1
mov dword [ebx + 0x9c], edx
jmp 0x484f2d
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.00409580
mov ecx, eax
mov eax, dword [ebp - 0xc]
add esp, 0x14
mov dword [ebx + 0xb0], eax
cmp ecx, 0xfffffc20
jg 0x484f89
jne 0x484f9e
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
cmp dword [ebx + 0x80], eax
jae 0x484fb9
cmp word [edi], 0x71
je 0x484f79
cmp word [eax], 0x71
jne 0x484fb9
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x484f2d
jmp 0x484fc7
mov eax, ecx
sub eax, 0
je 0x484f79
dec eax
je case.0x409600.151
mov eax, ecx
jmp 0x409727
cmp ecx, 0xfffffc19
je case.0x409600.151
lea eax, [ecx + 0x3e4]
cmp eax, 3
ja 0x4848ca
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x484fb9
test esi, esi
jne 0x409722
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4095e0
cmp dword [ebp - 0x20], edx
je 0x48501e
movzx ecx, word [edi + 2]
test ecx, ecx
jle 0x485038
mov eax, dword [ebp - 8]
sub eax, 2
dec ecx
mov dword [ebp - 8], eax
cmp eax, dword [ebx + 0x78]
jb case.0x409600.151
mov ax, word [eax]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [ebp - 8]
jne 0x485018
sub eax, 2
mov dword [ebp - 8], eax
test ecx, ecx
jg 0x484fe7
jmp 0x48503b
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.0x409600.151
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x88]
jae 0x485049
mov dword [ebx + 0x88], eax
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4095e0
mov ecx, dword [0x4c44ec]
test ecx, ecx
je 0x48511b
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]
or edx, 0xffffffff
test eax, eax
cmove eax, edx
mov dword [ebp - 0xb4], eax
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 ecx
add esp, 4
test eax, eax
jg case.0x409600.151
js 0x409727
add edi, 8
mov dword [ebp - 0x38], edi
jmp 0x4095e0
movzx eax, word [edi + 2]
mov ecx, dword [ebx + 0x74]
lea esi, [ecx + eax*2]
cmp esi, ecx
jne 0x485138
xor edx, edx
jmp 0x48513c
movzx edx, word [esi + 4]
mov ecx, dword [ebx + 0xa8]
test ecx, ecx
je 0x485163
mov eax, dword [ebp - 8]
cmp edx, dword [ecx + 4]
jne 0x48515d
cmp eax, dword [ecx + 0x14]
jne 0x48515d
mov eax, 0xffffffe6
jmp 0x409727
mov ecx, dword [ecx]
test ecx, ecx
jne 0x485149
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 0x4851a3
lea eax, [ebp - 0x14c]
mov dword [ebp - 0x50], eax
jmp 0x4851c2
lea eax, [ecx*4]
push eax
call dword [0x4bcddc]
add esp, 4
mov dword [ebp - 0x50], eax
test eax, eax
je 0x48aef5
mov ecx, dword [ebp - 0x4c]
shl ecx, 2
push ecx
push dword [ebx + 0xc]
push eax
call fcn.00420500
mov eax, 0x82
add esp, 0xc
cmp word [esi], ax
sbb eax, eax
inc eax
mov dword [ebp - 0x30], eax
test eax, eax
je 0x4851ee
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 + 0x49f530]
push dword [ebp + 0xc]
lea edx, [esi + eax*2]
push dword [ebp + 8]
call fcn.00409580
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.00420500
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 0x48528b
cmp eax, 0xfffffc19
je 0x48528b
cmp eax, 0xfffffc1c
jl 0x485260
cmp eax, 0xfffffc20
jle case.0x409600.151
test eax, eax
jne 0x48aed2
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 0x48aea9
mov eax, dword [ebp - 0x30]
jmp 0x4851e0
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je 0x4852a2
push eax
call dword [0x4bc80c]
add esp, 4
mov eax, dword [ebx + 0x84]
mov dword [ebp - 8], eax
mov eax, dword [ebx + 0x80]
mov dword [ebp + 8], eax
jmp 0x4095e0
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x4852b9
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4095e0
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 0x4852da
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.00409580
add esp, 0x14
test eax, eax
je 0x4095e0
jmp 0x409727
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x485312
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4095e0
movzx esi, word [edi + 2]
add edi, 2
mov dword [ebp - 0x10], 1
cmp esi, 0x80
je 0x48534d
cmp esi, 0x85
jne 0x4854bc
movzx edx, word [edi + 4]
mov dword [ebp - 0x18], edx
lea eax, [edx + edx]
cmp eax, dword [ebx + 0x14]
jge case.0x409600.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 0x4853c0
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 + 0x49f530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00409580
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1a
jne 0x485419
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 0x485391
cmp ecx, 0xfffffc20
jne 0x485446
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
cmp dword [ebx + 0x80], eax
jae 0x4848ca
cmp word [edi], 0x71
je 0x48544e
cmp word [eax], 0x71
jne 0x4848ca
jmp 0x48544e
test ecx, ecx
jne 0x4848ca
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 0x48539a
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x485498
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 0x48718b
test eax, eax
je case.0x409600.151
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4095e0
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 0x4854e8
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 + 0x49f530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00409580
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1a
jne 0x48553d
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 0x4854d6
cmp ecx, 0xfffffc20
jne 0x48556a
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
cmp dword [ebx + 0x80], eax
jae 0x4848ca
cmp word [edi], 0x71
je 0x485572
cmp word [eax], 0x71
jne 0x4848ca
jmp 0x485572
test ecx, ecx
jne 0x4848ca
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
jne 0x48558e
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x94], eax
jmp 0x4854d6
cmp dword [ebp - 0x30], 0
jne 0x48718b
cmp dword [ebp - 0x10], 0
je case.0x409600.151
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4095e0
mov edx, dword [ebp + 0x14]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
mov dword [ebp + 0x14], edx
jmp 0x40968d
cmp eax, 0x77
jb 0x409699
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 0x409722
cmp dword [eax + 4], ecx
jne 0x409abb
mov eax, dword [ebp - 8]
mov dword [ebx + 0x84], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0x80], eax
mov eax, 1
jmp 0x409727
mov ecx, dword [ebp - 0x10]
or eax, 0x10000
mov dword [ebx + 0x94], eax
jmp 0x4096d5
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 0x409ae2
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 0x409ae2
mov eax, dword [ebp - 8]
cmp eax, ecx
je 0x4096e2
movzx ecx, word [edi]
cmp ecx, 0x75
je 0x48af69
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 0x48ad18
mov esi, dword [ebp - 8]
lea edx, [edi + 4]
mov ecx, esi
call fcn.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov edi, dword [ebp - 0x18]
movzx eax, word [edi]
cmp eax, 0x7b
je 0x48aeff
mov ecx, 0x82
cmp ax, cx
jb 0x40964b
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.00409580
add esp, 0x14
jmp 0x409727
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x48], edx
je 0x4856df
cmp eax, dword [ebx + 0x78]
je case.0x409600.151
cmp eax, dword [ebx + 0x78]
jne case.0x409600.151
add edi, 2
mov dword [ebp - 0x38], edi
jmp 0x4095e0
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x48], edx
je 0x485704
cmp eax, dword [ebx + 0x78]
je case.0x409600.151
mov ecx, dword [ebx + 0x78]
cmp eax, ecx
je 0x4098d6
cmp eax, dword [ebx + 0x7c]
je case.0x409600.151
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x485747
cmp eax, ecx
jbe case.0x409600.151
push dword [ebp - 0x20]
lea eax, [ebx + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.0047257e
add esp, 0xc
test eax, eax
je case.0x409600.151
jmp 0x4098d6
mov esi, dword [ebx + 0x1c]
lea edx, [esi + esi]
lea eax, [ecx + edx]
cmp dword [ebp - 8], eax
jb case.0x409600.151
mov ecx, dword [ebp - 8]
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [ebx + 0x34]
jne case.0x409600.151
cmp esi, 1
je 0x4098d6
mov ax, word [ecx + 2]
cmp ax, word [ebx + 0x36]
jne case.0x409600.151
jmp 0x4098d6
mov ecx, dword [ebx + 0x98]
mov eax, dword [ebx + 0x78]
lea eax, [eax + ecx*2]
cmp dword [ebp - 8], eax
jne case.0x409600.151
add edi, 2
mov dword [ebp - 0x38], edi
jmp 0x4095e0
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp + 8], eax
mov dword [ebp - 0x38], edi
jmp 0x4095e0
mov ecx, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x48587d
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x485846
push dword [ebp - 0x20]
lea eax, [ebx + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.00408184
add esp, 0xc
test eax, eax
jne 0x4098d6
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
je case.0x409600.151
add eax, 2
cmp eax, dword [ebx + 0x7c]
jb case.0x409600.151
cmp dword [ebx + 0x18], 0
jne case.0x409600.151
cmp dword [ebx + 0x1c], 2
jne case.0x409600.151
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne case.0x409600.151
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle case.0x409600.151
mov eax, 0xfffffff4
jmp 0x409727
mov edx, dword [ebx + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x4857eb
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne 0x4857e8
cmp edx, 1
je 0x4098d6
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [ebx + 0x36]
jne 0x4857e8
jmp 0x4098d6
cmp dword [ebx + 0x4c], edx
jne case.0x409600.151
cmp dword [ebx + 0x8c], edx
jmp 0x485895
cmp dword [ebx + 0x8c], 0
je 0x4098d6
cmp eax, dword [ebx + 0x88]
jbe 0x4098d6
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
add edi, 2
mov dword [ebp - 0x38], edi
jmp 0x4095e0
cmp dword [ebx + 0x4c], edx
jne case.0x409600.151
cmp dword [ebx + 0x5c], edx
je case.0x409600.23
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jb case.0x409600.151
cmp dword [ebx + 0x8c], edx
jmp 0x485895
mov ecx, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x48588e
mov edx, dword [ebx + 0x18]
lea esi, [ebx + 0x1c]
test edx, edx
je 0x485910
push dword [ebp - 0x20]
push esi
push ecx
mov ecx, eax
call fcn.00408184
add esp, 0xc
test eax, eax
jne 0x485945
jmp 0x4857e8
mov edx, dword [esi]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x4857eb
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne 0x4857e8
cmp edx, 1
je 0x485945
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [ebx + 0x36]
jne 0x4857e8
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 0x4857eb
jmp 0x48588e
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x20], edx
je 0x485b10
cmp eax, dword [ebx + 0x78]
je 0x485a48
lea edx, [eax - 2]
mov ecx, 0xfc00
mov ax, word [edx]
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x48598f
sub edx, 2
cmp edx, dword [ebx + 0x88]
jae 0x48599d
mov dword [ebx + 0x88], edx
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4859c8
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 0x485a2a
cmp ecx, 0x5f
jne 0x4859db
mov eax, dword [ebp - 8]
lea esi, [ecx - 0x5e]
jmp 0x485a4a
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x4859fd
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x485a20
cmp eax, 3
jne 0x485a45
mov eax, dword [ebp - 8]
mov esi, 1
jmp 0x485a4a
cmp ecx, 0x100
jae 0x485a45
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je 0x485a45
mov eax, dword [ebp - 8]
mov esi, 1
jmp 0x485a4a
mov eax, dword [ebp - 8]
xor esi, esi
cmp eax, dword [ebx + 0x7c]
jae 0x485ab2
movzx ecx, word [eax]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485a7d
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 0x485af9
cmp ecx, 0x5f
je 0x485c39
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
js 0x485be5
jmp 0x485bea
cmp dword [ebx + 0x8c], 0
je 0x485ad7
cmp eax, dword [ebx + 0x88]
jbe 0x485ad7
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
xor ecx, ecx
mov ax, word [edi]
add edi, 2
mov dword [ebp - 0x38], edi
cmp ax, 5
jne 0x485c43
cmp ecx, esi
jne 0x4095e0
jmp case.0x409600.151
cmp ecx, 0x100
jae 0x485ad7
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
jne 0x485c39
jmp 0x485ad7
cmp eax, dword [ebx + 0x78]
je 0x485baf
cmp eax, dword [ebx + 0x88]
ja 0x485b2d
add eax, 0xfffffffe
mov dword [ebx + 0x88], eax
mov eax, dword [ebp - 8]
movzx ecx, word [eax - 2]
cmp dword [ebx + 0x58], edx
je 0x485b8f
cmp ecx, 0x5f
jne 0x485b40
lea esi, [ecx - 0x5e]
jmp 0x485bb1
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x485b62
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x485b85
cmp eax, 3
jne 0x485bac
mov eax, dword [ebp - 8]
mov esi, 1
jmp 0x485bb1
mov edx, 0xff
cmp cx, dx
ja 0x485baf
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je 0x485bac
mov eax, dword [ebp - 8]
mov esi, 1
jmp 0x485bb1
mov eax, dword [ebp - 8]
xor esi, esi
cmp eax, dword [ebx + 0x7c]
jae 0x485ab2
cmp dword [ebx + 0x58], 0
je 0x485c19
movzx ecx, word [eax]
cmp ecx, 0x5f
je 0x485c39
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x485bea
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x485c39
cmp eax, 3
jne 0x485ad7
lea ecx, [eax - 2]
jmp 0x485ad9
movzx eax, word [eax]
mov ecx, 0xff
cmp ax, cx
ja 0x485ad7
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je 0x485ad7
mov ecx, 1
jmp 0x485ad9
cmp ecx, esi
je 0x4095e0
jmp case.0x409600.151
mov edx, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x7c]
test edx, edx
je 0x485c7f
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0x20]
cmp eax, ecx
jae 0x485cb7
push esi
lea eax, [ebx + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.00408184
add esp, 0xc
test eax, eax
jne case.0x409600.151
jmp 0x485cb4
mov edx, dword [ebx + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x485cb1
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne 0x485cb1
cmp edx, 1
je case.0x409600.151
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [ebx + 0x36]
je case.0x409600.151
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
je 0x485cf7
add eax, 2
cmp eax, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
jb 0x485cf7
cmp dword [ebx + 0x18], 0
jne 0x485cf7
cmp dword [ebx + 0x1c], 2
jne 0x485cf7
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne 0x485cf4
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
mov eax, dword [ebp - 8]
mov ecx, dword [ebx + 0x7c]
cmp eax, ecx
jae 0x409e44
add eax, 2
mov dword [ebp - 8], eax
test esi, esi
je 0x4098d6
cmp eax, ecx
jae 0x4098d6
mov ax, word [eax]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4098d6
add dword [ebp - 8], 2
jmp 0x4098d6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e56
add eax, 2
mov dword [ebp - 8], eax
jmp 0x4098d6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e56
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x485d99
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485d99
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 0x4098d6
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
jne case.0x409600.151
jmp 0x4098d6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e56
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x485dff
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485dff
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.0x409600.151
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
je case.0x409600.151
jmp 0x4098d6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e56
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x485e65
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485e65
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 0x4098d6
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
jne case.0x409600.151
jmp 0x4098d6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e56
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x485ecb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485ecb
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.0x409600.151
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
je case.0x409600.151
jmp 0x4098d6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e56
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x485f31
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485f31
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 0x4098d6
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
jne case.0x409600.151
jmp 0x4098d6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e56
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x485f97
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485f97
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.0x409600.151
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je case.0x409600.151
jmp 0x4098d6
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 0x409a60
cmp ecx, 0xa
je 0x4098d6
jbe case.0x409600.151
cmp ecx, 0xc
ja case.0x409600.151
jmp 0x48603d
cmp dword [ebx + 0x8c], 0
je 0x4098d6
cmp eax, dword [ebx + 0x88]
jbe 0x4098d6
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
jmp 0x4098d6
cmp ecx, 0x85
je 0x48603d
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x409600.151
cmp dword [ebx + 0x6c], 0
jne case.0x409600.151
jmp 0x4098d6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e56
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x486094
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x486094
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 0x4860d8
je case.0x409600.151
cmp ecx, 0xa0
ja 0x4860c7
je case.0x409600.151
cmp ecx, 9
je case.0x409600.151
cmp ecx, 0x20
je case.0x409600.151
jmp 0x4098d6
cmp ecx, 0x1680
je case.0x409600.151
jmp 0x4098d6
cmp ecx, 0x205f
ja 0x48610f
je case.0x409600.151
cmp ecx, 0x2000
jb 0x4098d6
cmp ecx, 0x200a
jbe case.0x409600.151
cmp ecx, 0x202f
je case.0x409600.151
jmp 0x4098d6
cmp ecx, 0x3000
je case.0x409600.151
jmp 0x4098d6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e56
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x486168
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x486168
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 0x4861ac
je 0x4098d6
cmp ecx, 0xa0
ja 0x48619b
je 0x4098d6
cmp ecx, 9
je 0x4098d6
cmp ecx, 0x20
jne case.0x409600.151
jmp 0x4098d6
cmp ecx, 0x1680
jne case.0x409600.151
jmp 0x4098d6
cmp ecx, 0x205f
ja 0x4861e3
je 0x4098d6
cmp ecx, 0x2000
jb case.0x409600.151
cmp ecx, 0x200a
jbe 0x4098d6
cmp ecx, 0x202f
jne case.0x409600.151
jmp 0x4098d6
cmp ecx, 0x3000
jne case.0x409600.151
jmp 0x4098d6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e56
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x48623c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48623c
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 0x486261
je case.0x409600.151
cmp ecx, 0xa
jb 0x4098d6
cmp ecx, 0xd
jbe case.0x409600.151
jmp 0x4098d6
cmp ecx, 0x2028
jb 0x4098d6
cmp ecx, 0x2029
jbe case.0x409600.151
jmp 0x4098d6
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e56
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x4862c6
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4862c6
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 0x4862e5
je 0x4098d6
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x409600.151
jmp 0x4098d6
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x409600.151
jmp 0x4098d6
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 0x409b46
cmp ecx, 0xa
ja case.default.0x48632a
jmp dword [ecx*4 + 0x48cf60]
cmp esi, 0xf
je case.0x409600.151
jmp 0x409bbb
mov al, byte [eax*8 + 0x4ac0d1]
cmp al, 9
je 0x486356
cmp al, 5
je 0x486356
cmp al, 8
je 0x486356
xor ecx, ecx
jmp 0x48635f
mov ecx, 1
jmp 0x48635f
xor ecx, ecx
xor eax, eax
cmp esi, 0xf
sete al
cmp ecx, eax
je case.0x409600.151
jmp 0x409bbb
movzx ecx, byte [eax*8 + 0x4ac0d1]
movzx eax, word [edi + 4]
xor edx, edx
cmp eax, dword [ecx*4 + 0x4b6cf0]
setne dl
xor eax, eax
cmp esi, 0x10
sete al
cmp edx, eax
je case.0x409600.151
jmp 0x409bbb
movzx eax, byte [eax*8 + 0x4ac0d1]
jmp 0x4863b3
movzx eax, byte [eax*8 + 0x4ac0d0]
xor ecx, ecx
cmp word [edi + 4], ax
setne cl
xor eax, eax
cmp esi, 0x10
sete al
cmp ecx, eax
je case.0x409600.151
jmp 0x409bbb
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x486356
cmp eax, 3
je 0x486356
xor ecx, ecx
jmp 0x48635f
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cf0], 6
je 0x486356
cmp edx, 9
je 0x486356
cmp edx, 0xa
jmp 0x486420
cmp edx, 0xb
je 0x486356
cmp edx, 0xc
je 0x486356
cmp edx, 0xd
jmp 0x486437
cmp edx, 0x5f
je 0x486356
jmp 0x48635d
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cf0], 6
je 0x486356
cmp edx, 9
je 0x486356
cmp edx, 0xa
je 0x486356
jmp 0x48641d
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x486356
cmp eax, 3
je 0x486356
jmp 0x486434
cmp edx, 0x24
je 0x486356
cmp edx, 0x40
je 0x486356
cmp edx, 0x60
je 0x486356
cmp edx, 0xa0
jb 0x4864be
cmp edx, 0xd7ff
jbe 0x486356
cmp edx, 0xe000
jae 0x486356
jmp 0x48635d
cmp esi, 0x10
je case.0x409600.151
jmp 0x409bbb
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 0x40980e
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov esi, 2
jmp 0x40986f
cmp eax, esi
jb 0x4098d6
jmp 0x48589b
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 0x486564
mov eax, dword [ebx + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x486564
mov esi, dword [eax + ecx*4 + 4]
sub esi, dword [eax + ecx*4]
jmp 0x48656e
mov esi, dword [ebx + 0x54]
neg esi
sbb esi, esi
neg esi
dec esi
movzx eax, word [edi]
add eax, 0xffffff9e
mov dword [ebp - 0x2c], esi
cmp eax, 7
ja case.default.0x486587
movzx eax, byte [eax + 0x48cf94]
jmp dword [eax*4 + 0x48cf8c]
movzx eax, word [edi]
movsx edx, byte [eax + 0x49f4c6]
add eax, 0xffffff9e
movzx ecx, al
and ecx, 1
mov dword [ebp - 0xc], ecx
movsx ecx, byte [eax + 0x49f520]
add edi, 2
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x18], edx
test edx, edx
jne 0x4865ec
mov edx, 0x7fffffff
jmp 0x4865e9
movzx edx, word [edi + 4]
movzx ecx, word [edi + 2]
xor eax, eax
cmp word [edi], 0x69
mov dword [ebp - 0x10], ecx
sete al
test edx, edx
mov dword [ebp - 0xc], eax
mov eax, 0x7fffffff
cmove edx, eax
add edi, 6
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x18], edx
test esi, esi
je 0x4095e0
jns 0x4865fe
test ecx, ecx
je 0x4095e0
mov eax, dword [ebp - 8]
mov dword [ebp - 0x30], 1
cmp ecx, 1
jl 0x486643
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x34]
push ebx
push esi
mov edx, eax
call fcn.004722e3
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x48b0bb
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 0x48660d
mov edx, dword [ebp - 0x18]
cmp ecx, edx
je 0x4095e0
cmp dword [ebp - 0xc], 0
je 0x48b00c
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x10], eax
jge case.0x409600.151
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x34]
push ebx
push dword [ebp - 0x2c]
mov edx, esi
call fcn.004722e3
add esp, 0xc
test eax, eax
js 0x48afe6
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.00409580
add esp, 0x14
test eax, eax
je 0x48667b
jmp 0x409727
push edx
mov edx, dword [ebp - 8]
push ebx
push esi
call fcn.004722e3
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x48b0bb
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0x4095e0
movzx ecx, word [edi + 4]
movzx eax, word [edi + 2]
xor edx, edx
cmp word [edi], 0x69
mov dword [ebp - 0xc], 0x7fffffff
sete dl
test ecx, ecx
cmove ecx, dword [ebp - 0xc]
add edi, 6
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x38], edi
jmp 0x409758
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 0x4097a9
cmp esi, 0x6a
je case.0x409600.151
jmp 0x4098e1
cmp eax, 1
mov eax, dword [ebp - 8]
mov dword [ebp - 0x2c], 1
jl 0x4098fa
mov ecx, dword [ebp - 0x34]
cmp eax, dword [ebx + 0x7c]
jae 0x409e44
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 0x486796
cmp esi, 0x6a
je case.0x409600.151
jmp 0x4867bf
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.0x409600.151
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x34]
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], ecx
jle 0x48676b
jmp 0x4098f7
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.0x4867f1
movzx eax, byte [eax + 0x48cfa4]
jmp dword [eax*4 + 0x48cf9c]
lea eax, [ecx - 0x62]
movzx ecx, al
movsx edx, byte [eax + 0x49f520]
movsx eax, byte [eax + 0x49f528]
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 0x48685e
mov eax, 0x7fffffff
jmp 0x48685b
movzx eax, word [edi + 4]
xor ecx, ecx
cmp edx, 0x69
movzx edx, word [edi + 2]
sete cl
test eax, eax
mov esi, 0x7fffffff
cmove eax, esi
add edi, 6
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x2c], ecx
jmp 0x486858
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 0x4868de
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e44
movzx esi, word [eax]
mov ecx, dword [ebp - 0x20]
add eax, 2
mov dword [ebp - 8], eax
test ecx, ecx
je 0x4868b4
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4868b4
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.004726ea
add esp, 4
test eax, eax
je case.0x409600.151
mov esi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x18]
inc esi
mov dword [ebp - 0x30], esi
cmp esi, edx
jle 0x48686a
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x10]
cmp edx, eax
je 0x4095e0
mov esi, dword [ebp - 8]
test ecx, ecx
je 0x48b439
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x18], eax
jge case.0x409600.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx edx, word [esi]
mov ecx, dword [ebp - 0x20]
add esi, 2
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x48b3dd
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b3dd
movzx eax, word [esi]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or eax, edx
add eax, 0x10000
add esi, 2
jmp 0x48b3e0
mov eax, dword [ebx + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 2
jl 0x48b574
mov ax, word [ecx]
add ecx, 2
mov dword [ebp - 8], ecx
cmp word [edi + 2], ax
jne case.0x409600.151
add edi, 4
jmp 0x4098d9
movzx eax, word [edi + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
add esi, 0x10000
mov edx, 2
jmp 0x4099ef
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x30], ecx
cmp eax, 0xd800
jne 0x4869fc
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 0x4095e0
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x486a2d
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
mov eax, dword [eax*8 + 0x4ac0d4]
add eax, esi
cmp dword [ebp - 0x30], eax
je 0x4095e0
jmp case.0x409600.151
movzx ecx, word [edi + 2]
mov edx, 0xff
cmp cx, dx
ja 0x486a68
mov eax, dword [ebx + 0x3c]
movzx edx, byte [eax + ecx]
mov eax, dword [ebp - 8]
jmp 0x486a6a
mov edx, ecx
movzx ecx, word [eax]
mov esi, 0xff
cmp cx, si
ja 0x486a81
mov eax, dword [ebx + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebp - 8]
cmp edx, ecx
jne case.0x409600.151
add eax, 2
mov dword [ebp - 8], eax
add edi, 4
jmp 0x4098d9
movzx eax, word [edi + 2]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x2c]
add edi, 4
jmp 0x486b71
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 0x486ad6
cmp ecx, 0x35
je 0x486ad6
xor eax, eax
add edi, 4
jmp 0x486b6e
mov eax, 1
add edi, 4
jmp 0x486b6e
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x34], 0x7fffffff
add edi, 2
jmp 0x486b71
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x34], 0x7fffffff
add edi, 2
jmp 0x486b71
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 0x486b71
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 + 0x49f520]
movsx ecx, byte [ecx + 0x49f528]
mov dword [ebp - 0x1c], ebx
add edi, 2
and eax, 1
mov ebx, 0x7fffffff
test ecx, ecx
cmove ecx, ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x486de1
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 0x486bc4
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 0x486bc9
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 0x486df2
cmp esi, 0x2e
jb 0x486c35
mov esi, dword [ebp - 0x18]
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x486c0b
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
mov ecx, dword [eax*8 + 0x4ac0d4]
add ecx, esi
cmp ecx, esi
je 0x486c32
lea edx, [ebp - 0x6c]
call fcn.00472637
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
jmp 0x486c3c
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x18], 0
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0xc], 1
cmp esi, 1
jl 0x486cc2
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
cmp ecx, eax
ja 0x486c76
mov eax, dword [ebp - 0x10]
add eax, eax
push eax
push dword [ebp - 0x28]
push ecx
call fcn.00420be3
add esp, 0xc
test eax, eax
jne 0x486c73
mov eax, dword [ebp - 0x14]
jmp 0x486cb1
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
test edx, edx
jle 0x48b58e
lea eax, [edx + edx]
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebp - 0x30]
cmp ecx, eax
ja 0x48b58e
lea eax, [edx + edx]
push eax
lea eax, [ebp - 0x6c]
push eax
push ecx
call fcn.00420be3
add esp, 0xc
test eax, eax
jne 0x48b58b
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 0x486c4b
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
cmp esi, ecx
je 0x4095e0
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x48b5a9
mov eax, dword [ebp - 8]
mov dword [ebp - 0x30], eax
cmp esi, ecx
jge 0x486d7e
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
cmp ecx, eax
ja 0x486d11
mov eax, dword [ebp - 0x10]
add eax, eax
push eax
push dword [ebp - 0x28]
push ecx
call fcn.00420be3
add esp, 0xc
test eax, eax
jne 0x486d0e
mov eax, dword [ebp - 0x14]
jmp 0x486d40
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
test edx, edx
jle 0x486d4b
lea eax, [edx + edx]
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebp - 0xc]
cmp ecx, eax
ja 0x486d4b
lea eax, [edx + edx]
push eax
lea eax, [ebp - 0x6c]
push eax
push ecx
call fcn.00420be3
add esp, 0xc
test eax, eax
jne 0x486d4b
mov eax, dword [ebp - 0xc]
add dword [ebp - 8], eax
inc esi
cmp esi, dword [ebp - 0x34]
jl 0x486ce6
jmp 0x486d78
cmp dword [ebx + 0x8c], 0
mov eax, dword [ebp - 8]
je 0x486d7b
cmp eax, dword [ebx + 0x7c]
jb 0x486d78
cmp eax, dword [ebx + 0x88]
jbe 0x486d78
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x4095e0
cmp eax, dword [ebp - 0x30]
je 0x40964e
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
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 0x486dd7
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x30]
jne 0x486d92
jmp 0x40964e
movzx ebx, word [edi]
add edi, 2
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x38], edi
jmp 0x486df5
mov eax, dword [ebp - 0x2c]
cmp esi, 0x2e
jb 0x486f5a
mov esi, dword [ebp - 0x18]
test ecx, ecx
je 0x486e4b
cmp esi, 0x7f
jbe 0x486e4b
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x486e2d
dec eax
or eax, 0xffffff80
inc eax
mov edx, dword [ebp - 0x24]
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
mov eax, dword [eax*8 + 0x4ac0d4]
add eax, esi
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x2c]
jmp 0x486e60
cmp esi, 0xff
ja 0x486e5d
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 0x486ea3
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx edx, word [esi]
cmp dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x24]
je 0x486e95
movzx ebx, word [esi]
cmp dword [ebp - 0x14], ebx
mov ebx, dword [ebp + 0x10]
jne case.0x409600.151
inc dword [ebp - 0x10]
add esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x10], ecx
jle 0x486e72
cmp ecx, dword [ebp - 0x34]
je 0x4095e0
test eax, eax
jne 0x48b671
mov eax, dword [ebp - 8]
mov esi, eax
mov dword [ebp - 0x10], esi
cmp ecx, dword [ebp - 0x34]
jge 0x486f14
mov esi, dword [ebp - 0x18]
cmp eax, dword [ebx + 0x7c]
jae 0x486eec
movzx edx, word [eax]
cmp esi, edx
mov edx, dword [ebp - 0x24]
je 0x486ede
movzx edx, word [eax]
cmp dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x24]
jne 0x486f11
add eax, 2
inc ecx
mov dword [ebp - 8], eax
cmp ecx, dword [ebp - 0x34]
jl 0x486ec4
jmp 0x486f11
cmp dword [ebx + 0x8c], 0
je 0x486f11
cmp eax, dword [ebx + 0x88]
jbe 0x486f11
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
mov esi, dword [ebp - 0x10]
test edx, edx
jne 0x4095e0
cmp eax, esi
je 0x40964e
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.00409580
sub esi, 2
add esp, 0x14
mov dword [ebp - 8], esi
test eax, eax
jne 0x409727
cmp esi, dword [ebp - 0x10]
jne 0x486f27
jmp 0x40964e
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xc], 1
cmp ecx, 1
jge 0x486f6e
mov esi, dword [ebp - 8]
jmp 0x486f9d
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e44
movzx eax, word [eax]
mov esi, dword [ebp - 8]
add esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x18], eax
jne case.0x409600.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, ecx
jle 0x486f6e
mov eax, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x34]
je 0x4095e0
test eax, eax
jne 0x48b6e5
mov eax, dword [ebp - 8]
mov esi, eax
mov dword [ebp - 0x10], esi
cmp ecx, dword [ebp - 0x34]
jge 0x486fdd
mov esi, dword [ebp - 0x18]
cmp eax, dword [ebx + 0x7c]
jae 0x487023
movzx eax, word [eax]
cmp esi, eax
jne 0x486fd7
add dword [ebp - 8], 2
mov eax, dword [ebp - 8]
inc ecx
cmp ecx, dword [ebp - 0x34]
jl 0x486fbe
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
test edx, edx
jne 0x4095e0
cmp eax, esi
je 0x40964e
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.00409580
sub esi, 2
add esp, 0x14
mov dword [ebp - 8], esi
test eax, eax
jne 0x409727
cmp esi, dword [ebp - 0x10]
jne 0x486ff0
jmp 0x40964e
cmp dword [ebx + 0x8c], 0
je 0x486fda
cmp eax, dword [ebx + 0x88]
jbe 0x486fda
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
jmp 0x486fda
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e56
cmp dword [ebp - 0x20], edx
je 0x48715a
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 0x48709c
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 0x4870dd
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 0x4870ef
cmp edx, ecx
jne 0x4095e0
jmp case.0x409600.151
cmp edx, 0x7f
jbe 0x487132
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x48711a
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
mov ecx, dword [ebp - 0x30]
mov eax, dword [eax*8 + 0x4ac0d4]
add eax, edx
jmp 0x487145
cmp edx, 0xff
ja 0x487143
mov eax, dword [ebx + 0x40]
movzx eax, byte [eax + edx]
jmp 0x487145
mov eax, edx
cmp edx, ecx
je case.0x409600.151
cmp eax, ecx
jne 0x4095e0
jmp case.0x409600.151
movzx edx, word [eax]
movzx ecx, word [edi + 2]
add eax, 2
mov dword [ebp - 8], eax
cmp ecx, edx
je case.0x409600.151
cmp esi, 0x20
jne 0x48718b
cmp ecx, 0xff
ja 0x487183
mov eax, dword [ebx + 0x40]
movzx ecx, byte [eax + ecx]
cmp ecx, edx
je case.0x409600.151
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x4095e0
movzx eax, word [edi + 2]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x2c]
add edi, 4
jmp 0x487285
movzx eax, word [edi + 2]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x34], eax
cmp ecx, 0x42
je 0x4871c9
cmp ecx, 0x4f
je 0x4871c9
xor eax, eax
add edi, 4
jmp 0x487282
mov eax, 1
add edi, 4
jmp 0x487282
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x34], 0x7fffffff
add edi, 2
jmp 0x487285
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x34], 0x7fffffff
add edi, 2
jmp 0x487285
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 0x487285
movzx eax, word [edi + 2]
mov edx, 1
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], 0
add edi, 4
jmp 0x487285
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 + 0x49f520]
movsx ecx, byte [ecx + 0x49f528]
mov dword [ebp - 0x1c], ebx
add edi, 2
and eax, 1
mov ebx, 0x7fffffff
test ecx, ecx
cmove ecx, ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x2c], eax
movzx ecx, word [edi]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x20]
add edi, 2
mov dword [ebp - 0x38], edi
test ecx, ecx
je 0x4872ce
mov eax, dword [ebp - 0x14]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4872cb
movzx eax, word [edi]
and dword [ebp - 0x14], 0x3ff
shl dword [ebp - 0x14], 0xa
and eax, 0x3ff
or eax, dword [ebp - 0x14]
add eax, 0x10000
add edi, 2
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x38], edi
mov eax, dword [ebp - 0x2c]
cmp esi, 0x48
jb 0x4875dd
mov esi, dword [ebp - 0x14]
test ecx, ecx
je 0x487324
cmp esi, 0x7f
jbe 0x487324
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4ad470]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x487306
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax*8 + 0x4ac0d4]
add eax, esi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x2c]
jmp 0x487339
cmp esi, 0xff
ja 0x487336
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 0x48743d
mov esi, dword [ebp - 0x1c]
cmp esi, 1
jl 0x4873bd
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e44
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 0x48739a
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 0x48739d
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], eax
je case.0x409600.151
cmp dword [ebp - 0x10], eax
je case.0x409600.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, esi
jle 0x487350
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 8]
mov edx, dword [ebp - 0x34]
cmp dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0x24]
je 0x4095e0
test eax, eax
jne 0x48b754
mov eax, dword [ebp - 8]
mov esi, eax
mov dword [ebp - 0x18], esi
test ecx, ecx
je 0x48753c
mov esi, dword [ebp - 0x1c]
cmp esi, dword [ebp - 0x34]
jge 0x4874aa
mov dword [ebp - 0xc], 1
cmp eax, dword [ebx + 0x7c]
jae 0x48750d
movzx eax, word [eax]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x2c], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487485
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 0x487488
cmp dword [ebp - 0x1c], 1
jl 0x4873bd
mov esi, dword [ebp - 8]
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx ecx, word [esi]
cmp dword [ebp - 0x14], ecx
je case.0x409600.151
movzx edx, word [esi]
cmp dword [ebp - 0x10], edx
je case.0x409600.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 0x48744a
jmp 0x4873c0
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x14], eax
je 0x4874a7
cmp dword [ebp - 0x10], eax
je 0x4874a7
mov eax, dword [ebp - 0xc]
inc esi
lea ecx, [ecx + eax*2]
mov dword [ebp - 8], ecx
mov eax, ecx
cmp esi, dword [ebp - 0x34]
jl 0x4873f3
mov eax, dword [ebp - 8]
test edx, edx
jne 0x4095e0
cmp eax, dword [ebp - 0x18]
je 0x40964e
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
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 0x487503
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x18]
jne 0x4874be
jmp 0x40964e
cmp dword [ebx + 0x8c], 0
je 0x4874aa
cmp eax, dword [ebx + 0x88]
jbe 0x4874aa
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x4874aa
mov eax, 0xfffffff4
jmp 0x409727
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x34]
jge 0x487597
mov esi, dword [ebp - 0x14]
cmp eax, dword [ebx + 0x7c]
jae 0x48756f
movzx ebx, word [eax]
cmp esi, ebx
mov ebx, dword [ebp + 0x10]
je 0x487594
movzx edx, word [eax]
cmp dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x24]
je 0x487594
add eax, 2
inc ecx
mov dword [ebp - 8], eax
cmp ecx, dword [ebp - 0x34]
jl 0x487547
jmp 0x487594
cmp dword [ebx + 0x8c], 0
je 0x487594
cmp eax, dword [ebx + 0x88]
jbe 0x487594
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
mov esi, dword [ebp - 0x18]
test edx, edx
jne 0x4095e0
cmp eax, esi
je 0x40964e
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x18]
jne 0x4875aa
jmp 0x40964e
mov dword [ebp - 0xc], 1
test ecx, ecx
je 0x4876db
mov esi, dword [ebp - 0x1c]
cmp esi, 1
jl 0x48765b
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e44
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 0x487641
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 0x487644
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x14], eax
je case.0x409600.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, esi
jle 0x4875f4
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 8]
mov edx, dword [ebp - 0x34]
cmp dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0x24]
je 0x4095e0
test eax, eax
jne 0x48b863
mov eax, dword [ebp - 8]
mov esi, eax
mov dword [ebp - 0x18], esi
test ecx, ecx
je 0x4877cc
mov esi, dword [ebp - 0x1c]
cmp esi, dword [ebp - 0x34]
jge 0x48773a
mov dword [ebp - 0xc], 1
cmp eax, dword [ebx + 0x7c]
jae 0x48779d
movzx eax, word [eax]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x10], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48771a
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 0x48771d
cmp dword [ebp - 0x1c], 1
jl 0x48765b
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e44
movzx eax, word [eax]
mov esi, dword [ebp - 8]
add esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x14], eax
je case.0x409600.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x1c]
jle 0x4876e5
mov eax, dword [ebp - 0x2c]
jmp 0x48765e
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x14], eax
je 0x487737
mov eax, dword [ebp - 0xc]
inc esi
lea ecx, [ecx + eax*2]
mov dword [ebp - 8], ecx
mov eax, ecx
cmp esi, dword [ebp - 0x34]
jl 0x487691
mov eax, dword [ebp - 8]
test edx, edx
jne 0x4095e0
cmp eax, dword [ebp - 0x18]
je 0x40964e
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
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 0x487793
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x18]
jne 0x48774e
jmp 0x40964e
cmp dword [ebx + 0x8c], 0
je 0x48773a
cmp eax, dword [ebx + 0x88]
jbe 0x48773a
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x48773a
mov eax, 0xfffffff4
jmp 0x409727
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x34]
jge 0x4877f6
mov esi, dword [ebp - 0x14]
cmp eax, dword [ebx + 0x7c]
jae 0x48783c
movzx eax, word [eax]
cmp esi, eax
je 0x4877f0
add dword [ebp - 8], 2
mov eax, dword [ebp - 8]
inc ecx
cmp ecx, dword [ebp - 0x34]
jl 0x4877d7
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0x18]
test edx, edx
jne 0x4095e0
cmp eax, esi
je 0x40964e
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x18]
jne 0x487809
jmp 0x40964e
cmp dword [ebx + 0x8c], 0
je 0x4877f3
cmp eax, dword [ebx + 0x88]
jbe 0x4877f3
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
jmp 0x4877f3
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 0x409d17
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 0x409d17
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 0x409d10
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 0x409d10
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 0x409d17
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 0x409d17
mov dword [ebp - 0x3c], 1
jmp 0x487918
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 0x409d38
test ecx, ecx
js 0x48819f
cmp ecx, 0xa
ja case.default.0x48632a
jmp dword [ecx*4 + 0x48cfac]
cmp dword [ebp - 0x3c], 0
jne case.0x409600.151
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409d49
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], esi
test ecx, ecx
je 0x487997
and dword [ebp - 0x10], 0xfc00
cmp dword [ebp - 0x10], 0xd800
jne 0x487997
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 0x487968
jmp 0x409d49
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x28], 1
cmp esi, 1
jl 0x409d46
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e44
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
test ecx, ecx
je 0x487a0b
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487a0b
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 + 0x4ad470]
shl eax, 7
and edx, 0x8000007f
jns 0x487a30
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp eax, 9
je 0x487a55
cmp eax, 5
je 0x487a55
cmp eax, 8
je 0x487a55
xor eax, eax
jmp 0x487a5a
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x409600.151
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, esi
jle 0x4879be
mov eax, dword [ebp - 0x2c]
jmp 0x409d46
mov dword [ebp - 0xc], 1
cmp esi, 1
jl 0x409d43
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e44
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 8], eax
je 0x487ad3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487ad3
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 + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x487af5
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x40]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cf0], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x409600.151
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, esi
jle 0x487a8a
mov eax, dword [ebp - 0x2c]
jmp 0x409d43
mov dword [ebp - 0xc], 1
cmp esi, 1
jl 0x409d43
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e44
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 8], eax
je 0x487b8f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487b8f
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 + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x487bb1
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x409600.151
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, esi
jle 0x487b46
mov eax, dword [ebp - 0x2c]
jmp 0x409d43
mov dword [ebp - 0xc], 1
cmp esi, 1
jl 0x409d43
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e44
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 8], eax
je 0x487c44
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487c44
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 + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x487c66
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x409600.151
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, esi
jle 0x487bfb
mov eax, dword [ebp - 0x2c]
jmp 0x409d43
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x28], 1
cmp esi, 1
jl 0x409d46
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e44
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
test ecx, ecx
je 0x487d00
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487d00
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 + 0x4ad470]
shl eax, 7
and edx, 0x8000007f
jns 0x487d25
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x487d4c
cmp eax, 3
je 0x487d4c
xor eax, eax
jmp 0x487d51
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x409600.151
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, esi
jle 0x487cb3
mov eax, dword [ebp - 0x2c]
jmp 0x409d46
mov dword [ebp - 0x28], 1
cmp esi, 1
jl 0x409d43
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e44
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], eax
mov esi, eax
je 0x487dd1
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487dd1
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 + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x487df7
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cf0], 6
je 0x487e2b
cmp edx, 9
je 0x487e2b
cmp edx, 0xa
je 0x487e2b
cmp edx, 0xc
je 0x487e2b
cmp edx, 0xd
je 0x487e2b
xor eax, eax
jmp 0x487e30
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x409600.151
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, dword [ebp - 0x14]
jle 0x487d81
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x409d49
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x488c44
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], esi
je 0x487eb2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487eb2
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 + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x487ed8
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cf0], 6
je 0x487f11
cmp edx, 9
je 0x487f11
cmp edx, 0xa
je 0x487f11
cmp edx, 0xb
je 0x487f11
cmp edx, 0xc
je 0x487f11
cmp edx, 0xd
je 0x487f11
xor eax, eax
jmp 0x487f16
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x409600.151
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, dword [ebp - 0x14]
jle 0x487e67
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x409d49
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x488c44
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], esi
je 0x487f98
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487f98
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 + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x487fbe
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x487fea
cmp eax, 3
je 0x487fea
cmp edx, 0x5f
je 0x487fea
xor eax, eax
jmp 0x487fef
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x409600.151
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, dword [ebp - 0x14]
jle 0x487f4d
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x409d49
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x409d49
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x18], edx
mov dword [ebp - 8], esi
test ecx, ecx
je 0x48807a
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x488077
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 + 0x4af670]
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 0x4880b0
mov edx, dword [ebp - 0xc]
add dword [ebp - 0x10], 4
cmp dword [ebp - 0x18], edx
je 0x4880ce
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 0x488094
cmp dword [ebp - 0x3c], 0
je case.0x409600.151
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x48802c
mov eax, dword [ebp - 0x2c]
jmp 0x409d49
cmp dword [ebp - 0x3c], 0
jne case.0x409600.151
jmp 0x4880ba
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x409d49
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x18], edx
mov dword [ebp - 8], esi
test ecx, ecx
je 0x488141
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48813e
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 0x488175
cmp dword [ebp - 0x18], 0x40
je 0x488175
cmp dword [ebp - 0x18], 0x60
je 0x488175
cmp dword [ebp - 0x18], 0xa0
jb 0x488165
cmp dword [ebp - 0x18], 0xd7ff
jbe 0x488175
cmp dword [ebp - 0x18], 0xe000
mov dword [ebp - 0xc], 0
jb 0x48817c
mov dword [ebp - 0xc], 1
mov ebx, dword [ebp - 0x3c]
cmp dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
je case.0x409600.151
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x4880f3
mov eax, dword [ebp - 0x2c]
jmp 0x409d49
cmp dword [ebp - 0x34], 0x16
mov ecx, dword [ebp - 0x20]
jne 0x48833d
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x10], 1
jl 0x409d49
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x28], eax
cmp esi, eax
jae 0x48b421
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], esi
test ecx, ecx
je 0x48820d
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48820d
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 + 0x4ad470]
shl eax, 7
and edx, 0x8000007f
jns 0x488232
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5d0]
movzx edx, byte [eax*8 + 0x4ac0d2]
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0xc], edx
cmp esi, eax
jae 0x4882fc
mov ebx, dword [ebp - 0x20]
mov edi, edx
movzx ecx, word [esi]
mov dword [ebp - 0xc], 1
test ebx, ebx
je 0x488294
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x488294
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 + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x4882b6
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx ecx, byte [eax*8 + 0x4ac0d2]
mov eax, 1
shl eax, cl
test dword [edi*4 + 0x49f454], eax
je 0x4882ed
mov eax, dword [ebp - 0xc]
mov edi, ecx
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x28]
cmp esi, eax
jb 0x488257
jmp 0x4882f0
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 0x488325
cmp esi, eax
jb 0x488325
cmp esi, dword [ebx + 0x88]
jbe 0x488325
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x14]
jle 0x4881bf
mov eax, dword [ebp - 0x2c]
jmp 0x409d49
test ecx, ecx
je 0x488b5f
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffffa
cmp ecx, 0xf
ja case.default.0x48632a
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffffa
jmp dword [ecx*4 + 0x48cfd8]
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409d49
lea eax, [esi + 2]
mov dword [ebp - 0x10], eax
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x48b421
cmp dword [ebx + 0x18], 0
je 0x48843d
push ecx
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.00408184
add esp, 0xc
test eax, eax
jne case.0x409600.151
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
cmp dword [ebx + 0x8c], 0
je 0x4883ed
cmp edx, dword [ebx + 0x7c]
jb 0x4883ed
cmp dword [ebx + 0x18], 0
jne 0x4883ed
cmp dword [ebx + 0x1c], 2
jne 0x4883ed
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x4883ed
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
add esi, 2
add edx, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edx
cmp esi, dword [ebx + 0x7c]
jae 0x488425
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 0x488425
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 0x488380
mov eax, dword [ebp - 0x2c]
jmp 0x409d49
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x4883b3
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x4883b3
cmp dword [ebx + 0x1c], 1
je case.0x409600.151
mov edx, dword [ebp - 0x10]
mov ax, word [edx]
cmp ax, word [ebx + 0x36]
je case.0x409600.151
jmp 0x4883b6
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x409d49
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
add esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebx + 0x7c]
jae 0x4884cc
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 0x4884cc
add esi, 2
mov dword [ebp - 8], esi
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x488494
mov eax, dword [ebp - 0x2c]
jmp 0x409d49
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.0x409600.151
add esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 8], esi
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409d49
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x488562
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 0x488565
mov eax, dword [ebp - 0x10]
cmp eax, 0xd
ja 0x488592
je 0x48857f
cmp eax, 0xa
je 0x4885b1
add eax, 0xfffffff5
cmp eax, 1
ja case.0x409600.151
jmp 0x4885a7
cmp esi, dword [ebx + 0x7c]
jae 0x4885b1
cmp word [esi], 0xa
jne 0x4885b1
add esi, 2
mov dword [ebp - 8], esi
jmp 0x4885b1
cmp eax, 0x85
je 0x4885a7
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x409600.151
cmp dword [ebx + 0x6c], 0
jne case.0x409600.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x48851e
mov eax, dword [ebp - 0x2c]
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409d49
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x488626
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 0x488629
mov eax, dword [ebp - 0x10]
cmp eax, 0x180e
ja 0x488664
je case.0x409600.151
cmp eax, 0xa0
ja 0x488657
je case.0x409600.151
cmp eax, 9
je case.0x409600.151
cmp eax, 0x20
je case.0x409600.151
jmp 0x48869b
cmp eax, 0x1680
je case.0x409600.151
jmp 0x48869b
cmp eax, 0x205f
ja 0x488690
je case.0x409600.151
cmp eax, 0x2000
jb 0x48869b
cmp eax, 0x200a
jbe case.0x409600.151
cmp eax, 0x202f
je case.0x409600.151
jmp 0x48869b
cmp eax, 0x3000
je case.0x409600.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x4885e2
mov eax, dword [ebp - 0x2c]
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409d49
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x488710
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 0x488713
mov eax, dword [ebp - 0x10]
cmp eax, 0x180e
ja 0x488742
je 0x488775
cmp eax, 0xa0
ja 0x488735
je 0x488775
cmp eax, 9
je 0x488775
cmp eax, 0x20
jne case.0x409600.151
jmp 0x488775
cmp eax, 0x1680
jne case.0x409600.151
jmp 0x488775
cmp eax, 0x205f
ja 0x48876a
je 0x488775
cmp eax, 0x2000
jb case.0x409600.151
cmp eax, 0x200a
jbe 0x488775
cmp eax, 0x202f
jne case.0x409600.151
jmp 0x488775
cmp eax, 0x3000
jne case.0x409600.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x4886cc
mov eax, dword [ebp - 0x2c]
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409d49
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x4887ea
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 0x4887ed
mov eax, dword [ebp - 0x10]
cmp eax, 0x85
ja 0x48880a
je case.0x409600.151
cmp eax, 0xa
jb 0x48881c
cmp eax, 0xd
jbe case.0x409600.151
jmp 0x48881c
cmp eax, 0x2028
jb 0x48881c
cmp eax, 0x2029
jbe case.0x409600.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x4887a6
mov eax, dword [ebp - 0x2c]
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409d49
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x488891
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 0x488894
mov eax, dword [ebp - 0x10]
cmp eax, 0x85
ja 0x4888ab
je 0x4888b9
add eax, 0xfffffff6
cmp eax, 3
ja case.0x409600.151
jmp 0x4888b9
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x409600.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x48884d
mov eax, dword [ebp - 0x2c]
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409d49
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x488930
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 0x488933
mov eax, dword [ebp - 0x10]
cmp eax, 0x80
jae 0x48894a
mov eax, dword [ebx + 0x44]
mov edx, dword [ebp - 0x10]
test byte [edx + eax], 4
jne case.0x409600.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x4888e6
mov eax, dword [ebp - 0x2c]
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409d49
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
cmp word [esi], 0x80
jae case.0x409600.151
movzx edx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
je case.0x409600.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 0x488977
mov eax, dword [ebp - 0x2c]
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x409d49
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
cmp word [esi], 0x80
jae 0x4889f4
movzx edx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
jne case.0x409600.151
mov eax, dword [ebp - 0x14]
add esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebx + 0x7c]
jae 0x488a23
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 0x488a23
add esi, 2
mov dword [ebp - 8], esi
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x4889d1
mov eax, dword [ebp - 0x2c]
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409d49
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
cmp word [esi], 0x80
jae case.0x409600.151
movzx edx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
je case.0x409600.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 0x488a4c
mov eax, dword [ebp - 0x2c]
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x409d49
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
cmp word [esi], 0x80
jae 0x488ac9
movzx edx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
jne case.0x409600.151
mov eax, dword [ebp - 0x14]
add esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebx + 0x7c]
jae 0x488af8
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 0x488af8
add esi, 2
mov dword [ebp - 8], esi
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x488aa6
mov eax, dword [ebp - 0x2c]
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409d49
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
cmp word [esi], 0x80
jae case.0x409600.151
movzx edx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
je case.0x409600.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 0x488b21
mov eax, dword [ebp - 0x2c]
jmp 0x409d49
mov edx, dword [ebp - 0x34]
add edx, 0xfffffffa
cmp edx, 0xf
ja case.default.0x48632a
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffffa
jmp dword [ecx*4 + 0x48d018]
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409d49
mov ecx, dword [ebx + 0x7c]
cmp esi, ecx
jae 0x48b421
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x488bc4
lea eax, [ebx + 0x1c]
push 0
push eax
push ecx
mov ecx, esi
call fcn.00408184
add esp, 0xc
test eax, eax
jne case.0x409600.151
lea edx, [ebx + 0x1c]
jmp 0x488bf2
mov eax, dword [ebx + 0x1c]
lea edx, [ebx + 0x1c]
add eax, eax
sub ecx, eax
cmp esi, ecx
ja 0x488bf2
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x488bf2
cmp dword [edx], 1
je case.0x409600.151
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x36]
je case.0x409600.151
cmp dword [ebx + 0x8c], 0
je 0x488c2b
lea eax, [esi + 2]
cmp eax, dword [ebx + 0x7c]
jb 0x488c2b
cmp dword [ebx + 0x18], 0
jne 0x488c2b
cmp dword [edx], 2
jne 0x488c2b
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x488c2b
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
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 0x488b94
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x409d49
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 0x48b421
add esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 8], esi
jmp 0x409d49
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 0x48b421
add esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 8], esi
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x409d49
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
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 0x488d07
cmp dword [ebp - 0x10], 0xd
je 0x488cf4
cmp dword [ebp - 0x10], 0xa
je 0x488d2e
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff5
cmp eax, 1
ja case.0x409600.151
jmp 0x488d21
cmp esi, dword [ebx + 0x7c]
jae 0x488d2e
cmp word [esi], 0xa
jne 0x488d2e
add esi, 2
mov dword [ebp - 8], esi
jmp 0x488d2e
cmp dword [ebp - 0x10], 0x85
je 0x488d24
mov eax, dword [ebp - 0x10]
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x409600.151
mov eax, dword [ebp - 0x14]
cmp dword [ebx + 0x6c], 0
jne case.0x409600.151
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x488cba
mov eax, dword [ebp - 0x2c]
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409d49
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x18], edx
mov dword [ebp - 8], esi
cmp edx, 0x180e
jg 0x488db1
cmp edx, 0x180e
je case.0x409600.151
cmp edx, 0xa0
jg 0x488da2
je case.0x409600.151
cmp edx, 9
je case.0x409600.151
cmp edx, 0x20
je case.0x409600.151
jmp 0x488df2
cmp dword [ebp - 0x18], 0x1680
je case.0x409600.151
jmp 0x488df2
cmp dword [ebp - 0x18], 0x205f
jg 0x488de5
je case.0x409600.151
cmp dword [ebp - 0x18], 0x2000
jl 0x488df2
cmp dword [ebp - 0x18], 0x200a
jle case.0x409600.151
cmp dword [ebp - 0x18], 0x202f
je case.0x409600.151
jmp 0x488df2
cmp dword [ebp - 0x18], 0x3000
je case.0x409600.151
mov ebx, dword [ebp - 0xc]
inc ebx
cmp ebx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
jle 0x488d57
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409d49
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x18], edx
mov dword [ebp - 8], esi
cmp edx, 0x180e
jg 0x488e71
cmp edx, 0x180e
je 0x488eae
cmp edx, 0xa0
jg 0x488e62
je 0x488eae
cmp edx, 9
je 0x488eae
cmp edx, 0x20
jne case.0x409600.151
jmp 0x488eae
cmp dword [ebp - 0x18], 0x1680
jne case.0x409600.151
jmp 0x488eae
cmp dword [ebp - 0x18], 0x205f
jg 0x488ea1
je 0x488eae
cmp dword [ebp - 0x18], 0x2000
jl case.0x409600.151
cmp dword [ebp - 0x18], 0x200a
jle 0x488eae
cmp dword [ebp - 0x18], 0x202f
jne case.0x409600.151
jmp 0x488eae
cmp dword [ebp - 0x18], 0x3000
jne case.0x409600.151
mov ecx, dword [ebp - 0xc]
inc ecx
cmp ecx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x20]
jle 0x488e23
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409d49
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], esi
cmp edx, 0x85
jg 0x488f18
cmp edx, 0x85
je case.0x409600.151
cmp edx, 0xa
jl 0x488f2e
cmp edx, 0xd
jle case.0x409600.151
jmp 0x488f2e
cmp dword [ebp - 0x10], 0x2028
jl 0x488f2e
cmp dword [ebp - 0x10], 0x2029
jle case.0x409600.151
mov edx, dword [ebp - 0xc]
inc edx
mov dword [ebp - 0xc], edx
cmp edx, dword [ebp - 0x14]
jle 0x488edf
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x10], 1
jl 0x409d49
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx ecx, word [esi]
add esi, 2
mov dword [ebp - 0x28], ecx
cmp ecx, 0x85
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 8], esi
jg 0x488f95
cmp dword [ebp - 0x28], 0x85
je 0x488fa9
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff6
cmp eax, 3
ja case.0x409600.151
jmp 0x488fa6
mov eax, dword [ebp - 0x28]
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x409600.151
mov eax, dword [ebp - 0x14]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], eax
jle 0x488f5b
mov eax, dword [ebp - 0x2c]
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x409d49
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx edx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp dx, word [ebp - 0xc]
ja 0x489007
movzx ecx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
jne case.0x409600.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 0x488fd8
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409d49
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja case.0x409600.151
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
je case.0x409600.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 0x489039
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x409d49
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx edx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp dx, word [ebp - 0xc]
ja 0x4890cd
movzx ecx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
jne case.0x409600.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 0x48909e
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x409d49
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja case.0x409600.151
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
je case.0x409600.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 0x4890ff
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x409d49
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx edx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp dx, word [ebp - 0xc]
ja 0x489193
movzx ecx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
jne case.0x409600.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 0x489164
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x409d49
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0xc], 1
cmp esi, 1
jl 0x409d46
mov esi, dword [ebp - 8]
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja case.0x409600.151
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je case.0x409600.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 0x4891c5
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x409d49
mov dword [ebp - 0x2c], esi
test eax, eax
js 0x489b88
cmp eax, 0xa
ja case.default.0x48632a
jmp dword [eax*4 + 0x48d058]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x489395
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x10], 1
cmp esi, dword [ebx + 0x7c]
jae 0x489296
test ecx, ecx
je 0x48926f
mov edx, dword [ebp - 0x10]
mov eax, 0xfc00
and ax, word [esi]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], 0xd800
cmp ax, word [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov edx, 2
cmove eax, edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x3c], 0
mov edx, dword [ebp - 0x24]
jne 0x489395
mov ebx, dword [ebp - 0x10]
inc eax
lea esi, [esi + ebx*2]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x489232
jmp 0x489395
cmp dword [ebx + 0x8c], 0
je 0x489395
cmp esi, dword [ebx + 0x88]
jbe 0x489395
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x489395
mov eax, 0xfffffff4
jmp 0x409727
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x489395
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x4893f9
movzx edx, word [esi]
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x489325
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489325
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 + 0x4ad470]
shl eax, 7
and edx, 0x8000007f
jns 0x48934a
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp eax, 9
je 0x48936f
cmp eax, 5
je 0x48936f
cmp eax, 8
je 0x48936f
xor eax, eax
jmp 0x489374
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x489392
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 0x4892d9
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x4095e0
cmp esi, dword [ebp - 0x2c]
je 0x40964e
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
sub esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x20], eax
je 0x4893ef
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4893ef
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x2c]
jne 0x4893a6
jmp 0x40964e
cmp dword [ebx + 0x8c], 0
je 0x489392
cmp esi, dword [ebx + 0x88]
jbe 0x489392
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x489392
mov eax, 0xfffffff4
jmp 0x409727
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x489395
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x4893f9
movzx eax, word [esi]
mov dword [ebp - 0x30], eax
test ecx, ecx
je 0x48947b
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48947e
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 0x48947e
movzx ecx, word [esi]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x4894a0
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x40]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cf0], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x489392
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 0x489434
jmp 0x489392
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x489395
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x4893f9
movzx eax, word [esi]
mov dword [ebp - 0x30], eax
test ecx, ecx
je 0x489542
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489545
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 0x489545
movzx ecx, word [esi]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x489567
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x489392
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 0x4894f7
jmp 0x489392
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x489395
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x4893f9
movzx eax, word [esi]
mov dword [ebp - 0x30], eax
test ecx, ecx
je 0x489602
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489605
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 0x489605
movzx ecx, word [esi]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x489627
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x489392
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 0x4895b7
jmp 0x489392
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x489395
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x4893f9
movzx edx, word [esi]
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x4896c3
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4896c3
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 + 0x4ad470]
shl eax, 7
and edx, 0x8000007f
jns 0x4896e8
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x48970f
cmp eax, 3
je 0x48970f
xor eax, eax
jmp 0x489714
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x489392
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 0x489677
jmp 0x489392
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x489395
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x4893f9
movzx edx, word [esi]
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x489793
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489793
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 + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x4897b9
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cf0], 6
je 0x4897ed
cmp edx, 9
je 0x4897ed
cmp edx, 0xa
je 0x4897ed
cmp edx, 0xc
je 0x4897ed
cmp edx, 0xd
je 0x4897ed
xor eax, eax
jmp 0x4897f2
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x489392
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 0x489747
jmp 0x489392
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x489395
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x4893f9
movzx edx, word [esi]
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x489874
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489874
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 + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x48989a
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cf0], 6
je 0x4898d3
cmp edx, 9
je 0x4898d3
cmp edx, 0xa
je 0x4898d3
cmp edx, 0xb
je 0x4898d3
cmp edx, 0xc
je 0x4898d3
cmp edx, 0xd
je 0x4898d3
xor eax, eax
jmp 0x4898d8
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x489392
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 0x489828
jmp 0x489392
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x489395
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x4893f9
movzx edx, word [esi]
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x48995a
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48995a
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 + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x489980
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x4899ac
cmp eax, 3
je 0x4899ac
cmp edx, 0x5f
je 0x4899ac
xor eax, eax
jmp 0x4899b1
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x489392
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 0x48990e
jmp 0x489392
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x489395
mov ecx, dword [ebx + 0x7c]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x20]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x30], 1
cmp esi, dword [ebp - 0x10]
jae 0x489296
movzx edx, word [esi]
mov dword [ebp - 0x18], edx
test ecx, ecx
je 0x489a44
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489a41
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 + 0x4af670]
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 0x489a7d
mov ebx, dword [ebp - 0xc]
add dword [ebp - 0x28], 4
cmp dword [ebp - 0x18], ebx
mov ebx, dword [ebp + 0x10]
je 0x489aa8
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 0x489a5e
cmp dword [ebp - 0x3c], 0
mov edx, dword [ebp - 0x24]
je 0x489395
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 0x4899f0
jmp 0x489395
cmp dword [ebp - 0x3c], 0
je 0x489a8a
jmp 0x489395
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x489395
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 0x489296
movzx edx, word [esi]
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x24]
test ecx, ecx
je 0x489b20
mov eax, dword [ebp - 0x18]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489b1d
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 0x489b54
cmp dword [ebp - 0x18], 0x40
je 0x489b54
cmp dword [ebp - 0x18], 0x60
je 0x489b54
cmp dword [ebp - 0x18], 0xa0
jb 0x489b44
cmp dword [ebp - 0x18], 0xd7ff
jbe 0x489b54
cmp dword [ebp - 0x18], 0xe000
mov dword [ebp - 0xc], 0
jb 0x489b5b
mov dword [ebp - 0xc], 1
mov ebx, dword [ebp - 0x3c]
cmp dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
je 0x489395
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 0x489ac8
jmp 0x489395
mov eax, dword [ebp - 0x34]
cmp eax, 0x16
jne 0x489d8d
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x489d40
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x30], eax
cmp esi, eax
jae 0x489d18
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], esi
test ecx, ecx
je 0x489bee
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489bee
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 + 0x4ad470]
shl eax, 7
and edx, 0x8000007f
jns 0x489c13
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5d0]
movzx edx, byte [eax*8 + 0x4ac0d2]
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0xc], edx
cmp esi, eax
jae 0x489cdd
mov ebx, dword [ebp - 0x20]
mov edi, edx
movzx ecx, word [esi]
mov dword [ebp - 0xc], 1
test ebx, ebx
je 0x489c75
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489c75
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 + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x489c97
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx ecx, byte [eax*8 + 0x4ac0d2]
mov eax, 1
shl eax, cl
test dword [edi*4 + 0x49f454], eax
je 0x489cce
mov eax, dword [ebp - 0xc]
mov edi, ecx
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x30]
cmp esi, eax
jb 0x489c38
jmp 0x489cd1
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 0x489d06
cmp esi, eax
jb 0x489d06
cmp esi, dword [ebx + 0x88]
jbe 0x489d06
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x489ba0
jmp 0x489d3d
cmp dword [ebx + 0x8c], 0
je 0x489d3d
cmp esi, dword [ebx + 0x88]
jbe 0x489d3d
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x4095e0
cmp esi, dword [ebp - 0x2c]
je 0x40964e
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov ebx, dword [ebp - 0x20]
sub esi, 2
mov dword [ebp - 8], esi
test ebx, ebx
jne 0x48ad5c
movzx ecx, word [esi]
jmp 0x48ad9f
add eax, 0xfffffffa
test ecx, ecx
je 0x48a6bd
cmp eax, 0xf
ja case.default.0x48632a
jmp dword [eax*4 + 0x48d084]
mov eax, dword [ebp - 0x1c]
cmp eax, 0x7fffffff
jge 0x489f6f
cmp dword [ebp - 0x14], eax
jge 0x489e7d
lea eax, [esi + 2]
mov dword [ebp - 0x10], eax
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x489f38
cmp dword [ebx + 0x18], 0
je 0x489efd
push ecx
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.00408184
add esp, 0xc
test eax, eax
jne 0x489e7a
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
cmp dword [ebx + 0x8c], 0
je 0x489e32
cmp edx, dword [ebx + 0x7c]
jb 0x489e32
cmp dword [ebx + 0x18], 0
jne 0x489e32
cmp dword [ebx + 0x1c], 2
jne 0x489e32
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x489e32
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
add esi, 2
add edx, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edx
cmp esi, dword [ebx + 0x7c]
jae 0x489e6a
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 0x489e6a
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 0x489dc5
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x4095e0
cmp esi, dword [ebp - 0x2c]
je 0x40964e
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
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 0x489ed3
sub esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x34], 0x11
mov ecx, dword [ebp - 0x2c]
jne 0x489ef4
cmp esi, ecx
jbe 0x489ef6
cmp word [esi], 0xa
jne 0x489ef4
cmp word [esi - 2], 0xd
lea eax, [esi - 2]
cmove esi, eax
mov dword [ebp - 8], esi
cmp esi, ecx
jne 0x489e8e
jmp 0x40964e
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x489df8
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x489df8
cmp dword [ebx + 0x1c], 1
je 0x489e7a
mov edx, dword [ebp - 0x10]
mov ax, word [edx]
cmp ax, word [ebx + 0x36]
jne 0x489dfb
jmp 0x489e7a
cmp dword [ebx + 0x8c], 0
je 0x489e7a
cmp esi, dword [ebx + 0x88]
jbe 0x489e7a
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x489e7a
mov eax, 0xfffffff4
jmp 0x409727
cmp dword [ebp - 0x14], eax
jge 0x489e7d
lea eax, [esi + 2]
mov dword [ebp - 0x10], eax
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x489f38
cmp dword [ebx + 0x18], 0
je 0x48a034
push ecx
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.00408184
add esp, 0xc
test eax, eax
jne 0x489e7a
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
cmp dword [ebx + 0x8c], 0
je 0x489fe7
cmp edx, dword [ebx + 0x7c]
jb 0x489fe7
cmp dword [ebx + 0x18], 0
jne 0x489fe7
cmp dword [ebx + 0x1c], 2
jne 0x489fe7
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x489fe7
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
add esi, 2
add edx, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edx
cmp esi, dword [ebx + 0x7c]
jae 0x48a01f
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 0x48a01f
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 0x489f7e
jmp 0x489e7a
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x489fad
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x489fad
cmp dword [ebx + 0x1c], 1
je 0x489e7a
mov edx, dword [ebp - 0x10]
mov ax, word [edx]
cmp ax, word [ebx + 0x36]
jne 0x489fb0
jmp 0x489e7a
mov eax, dword [ebp - 0x1c]
cmp eax, 0x7fffffff
jge 0x48a0c4
mov ecx, dword [ebp - 0x14]
cmp ecx, eax
jge 0x489e7d
mov eax, dword [ebx + 0x7c]
cmp esi, eax
jae 0x48a0ce
add esi, 2
mov dword [ebp - 8], esi
cmp esi, eax
jae 0x48a0b9
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 0x48a0b9
add esi, 2
mov dword [ebp - 8], esi
inc ecx
cmp ecx, dword [ebp - 0x1c]
jl 0x48a087
jmp 0x489e7d
mov esi, dword [ebx + 0x7c]
jmp 0x48a0cb
mov esi, ecx
mov dword [ebp - 8], esi
cmp dword [ebx + 0x8c], 0
je 0x489e7d
cmp esi, dword [ebx + 0x88]
jbe 0x489e7d
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x489e7d
mov eax, 0xfffffff4
jmp 0x409727
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 0x48a0c9
mov eax, dword [ebp - 0x1c]
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
jmp 0x489e7d
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489e7d
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0xc], 1
cmp esi, eax
jae 0x48a0ce
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a17b
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 0x48a17e
mov eax, dword [ebp - 0x10]
cmp eax, 0xd
jne 0x48a19f
mov eax, dword [ebx + 0x7c]
add esi, 2
mov dword [ebp - 8], esi
cmp esi, eax
jae 0x489e7d
cmp word [esi], 0xa
jne 0x48a1dd
add esi, 2
jmp 0x48a1da
cmp eax, 0xa
je 0x48a1d1
cmp dword [ebx + 0x6c], 0
jne 0x489e7d
cmp eax, 0xb
je 0x48a1d1
cmp eax, 0xc
je 0x48a1d1
cmp eax, 0x85
je 0x48a1d1
cmp eax, 0x2028
je 0x48a1d1
cmp eax, 0x2029
jne 0x489e7d
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 0x48a139
jmp 0x489e7d
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489e7d
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48a0ce
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a23f
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 0x48a242
mov eax, dword [ebp - 0x10]
cmp eax, 0x180e
ja 0x48a298
je 0x48a25e
cmp eax, 0xa0
ja 0x48a28f
je 0x48a25e
cmp eax, 9
je 0x48a25e
cmp eax, 0x20
jne 0x48a2bf
mov dword [ebp - 0xc], 1
xor eax, eax
cmp dword [ebp - 0x34], 0x12
sete al
cmp dword [ebp - 0xc], eax
je 0x489e7d
mov eax, dword [ebp - 0x30]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a1f8
jmp 0x489e7d
cmp eax, 0x1680
jne 0x48a2bf
jmp 0x48a25e
cmp eax, 0x205f
ja 0x48a2b8
je 0x48a25e
cmp eax, 0x2000
jb 0x48a2bf
cmp eax, 0x200a
jbe 0x48a25e
cmp eax, 0x202f
jne 0x48a2bf
jmp 0x48a25e
cmp eax, 0x3000
je 0x48a25e
mov dword [ebp - 0xc], 0
jmp 0x48a265
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489e7d
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48a0ce
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a31b
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 0x48a31e
mov eax, dword [ebp - 0x10]
cmp eax, 0x85
ja 0x48a362
je 0x48a36c
cmp eax, 0xa
jb 0x48a331
cmp eax, 0xd
jbe 0x48a36c
mov dword [ebp - 0xc], 0
xor eax, eax
cmp dword [ebp - 0x34], 0x14
sete al
cmp dword [ebp - 0xc], eax
je 0x489e7d
mov eax, dword [ebp - 0x30]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a2d4
jmp 0x489e7d
add eax, 0xffffdfd8
cmp eax, 1
ja 0x48a331
mov dword [ebp - 0xc], 1
jmp 0x48a338
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489e7d
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48a0ce
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a3ce
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 0x48a3d1
movzx eax, word [esi]
cmp eax, 0x100
jae 0x48a3eb
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
mov edx, dword [ebp - 0x24]
jne 0x489e7d
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a381
jmp 0x489e7d
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489e7d
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48a0ce
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a458
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 0x48a45b
movzx eax, word [esi]
cmp eax, 0x100
jae 0x489e7d
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
mov edx, dword [ebp - 0x24]
je 0x489e7d
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a40b
jmp 0x489e7d
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489e7d
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48a0ce
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a4e6
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 0x48a4e9
movzx eax, word [esi]
cmp eax, 0x100
jae 0x48a503
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
mov edx, dword [ebp - 0x24]
jne 0x489e7d
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a499
jmp 0x489e7d
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489e7d
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48a0ce
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a570
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 0x48a573
movzx eax, word [esi]
cmp eax, 0x100
jae 0x489e7d
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
mov edx, dword [ebp - 0x24]
je 0x489e7d
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a523
jmp 0x489e7d
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489e7d
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48a0ce
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a5fe
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 0x48a601
movzx eax, word [esi]
cmp eax, 0x100
jae 0x48a61b
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
mov edx, dword [ebp - 0x24]
jne 0x489e7d
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a5b1
jmp 0x489e7d
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489e7d
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48a0ce
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a688
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 0x48a68b
movzx eax, word [esi]
cmp eax, 0x100
jae 0x489e7d
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
mov edx, dword [ebp - 0x24]
je 0x489e7d
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a63b
jmp 0x489e7d
cmp eax, 0xf
ja case.default.0x48632a
jmp dword [eax*4 + 0x48d0c4]
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x48a77b
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x48a7df
cmp dword [ebx + 0x18], 0
je 0x48a707
lea eax, [ebx + 0x1c]
push 0
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.00408184
add esp, 0xc
test eax, eax
jne 0x48a778
mov ecx, dword [ebp - 0x14]
jmp 0x48a72b
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x48a72b
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x48a72b
cmp dword [ebx + 0x1c], 1
je 0x48a778
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x36]
je 0x48a778
cmp dword [ebx + 0x8c], 0
je 0x48a765
lea eax, [esi + 2]
cmp eax, dword [ebx + 0x7c]
jb 0x48a765
cmp dword [ebx + 0x18], 0
jne 0x48a765
cmp dword [ebx + 0x1c], 2
jne 0x48a765
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x48a765
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
inc ecx
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], ecx
cmp ecx, dword [ebp - 0x1c]
jl 0x48a6d9
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x4095e0
cmp esi, dword [ebp - 0x2c]
je 0x40964e
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov ecx, dword [ebp - 0x2c]
sub esi, 2
cmp dword [ebp - 0x34], 0x11
mov dword [ebp - 8], esi
jne 0x48a7d6
cmp esi, ecx
jbe 0x48a7d8
cmp word [esi], 0xa
jne 0x48a7d6
cmp word [esi - 2], 0xd
lea eax, [esi - 2]
cmove esi, eax
mov dword [ebp - 8], esi
cmp esi, ecx
jne 0x48a78c
jmp 0x40964e
cmp dword [ebx + 0x8c], 0
je 0x48a778
cmp esi, dword [ebx + 0x88]
jbe 0x48a778
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x48a778
mov eax, 0xfffffff4
jmp 0x409727
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 0x48a861
mov esi, ecx
mov dword [ebp - 8], esi
cmp dword [ebx + 0x8c], 0
je 0x48a77b
cmp esi, dword [ebx + 0x88]
jbe 0x48a77b
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x48a77b
mov eax, 0xfffffff4
jmp 0x409727
mov eax, dword [ebp - 0x1c]
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
jmp 0x48a77b
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a77b
mov ecx, dword [ebx + 0x7c]
cmp esi, ecx
jae 0x48a82a
movzx ecx, word [esi]
cmp ecx, 0xd
jne 0x48a8a3
mov ecx, dword [ebx + 0x7c]
add esi, 2
mov dword [ebp - 8], esi
cmp esi, ecx
jae 0x48a77b
cmp word [esi], 0xa
je 0x48a8db
jmp 0x48a8e1
cmp ecx, 0xa
je 0x48a8d8
cmp dword [ebx + 0x6c], 0
jne 0x48a77b
cmp ecx, 0xb
je 0x48a8d8
cmp ecx, 0xc
je 0x48a8d8
cmp ecx, 0x85
je 0x48a8d8
cmp ecx, 0x2028
je 0x48a8d8
cmp ecx, 0x2029
jne 0x48a77b
mov ecx, dword [ebx + 0x7c]
add esi, 2
mov dword [ebp - 8], esi
inc eax
cmp eax, dword [ebp - 0x1c]
jl 0x48a87e
jmp 0x48a77b
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a77b
cmp esi, dword [ebx + 0x7c]
jae 0x48a82a
movzx ecx, word [esi]
cmp ecx, 0x180e
jg 0x48a940
je 0x48a77b
cmp ecx, 0xa0
jg 0x48a933
je 0x48a77b
cmp ecx, 9
je 0x48a77b
cmp ecx, 0x20
jne 0x48a97b
jmp 0x48a77b
cmp ecx, 0x1680
jne 0x48a97b
jmp 0x48a77b
cmp ecx, 0x205f
jg 0x48a96f
je 0x48a77b
cmp ecx, 0x2000
jl 0x48a97b
cmp ecx, 0x200a
jle 0x48a77b
cmp ecx, 0x202f
jne 0x48a97b
jmp 0x48a77b
cmp ecx, 0x3000
je 0x48a77b
add esi, 2
inc eax
mov dword [ebp - 8], esi
cmp eax, dword [ebp - 0x1c]
jl 0x48a8f8
jmp 0x48a77b
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a77b
cmp esi, dword [ebx + 0x7c]
jae 0x48a82a
movzx ecx, word [esi]
cmp ecx, 0x180e
jg 0x48a9d8
je 0x48aa0f
cmp ecx, 0xa0
jg 0x48a9cb
je 0x48aa0f
cmp ecx, 9
je 0x48aa0f
cmp ecx, 0x20
je 0x48aa0f
jmp 0x48a77b
cmp ecx, 0x1680
je 0x48aa0f
jmp 0x48a77b
cmp ecx, 0x205f
jg 0x48aa03
je 0x48aa0f
cmp ecx, 0x2000
jl 0x48a77b
cmp ecx, 0x200a
jle 0x48aa0f
cmp ecx, 0x202f
je 0x48aa0f
jmp 0x48a77b
cmp ecx, 0x3000
jne 0x48a77b
add esi, 2
inc eax
mov dword [ebp - 8], esi
cmp eax, dword [ebp - 0x1c]
jl 0x48a99c
jmp 0x48a77b
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a77b
cmp esi, dword [ebx + 0x7c]
jae 0x48a82a
movzx ecx, word [esi]
cmp ecx, 0x85
jg 0x48aa55
je 0x48a77b
cmp ecx, 0xa
jl 0x48aa69
cmp ecx, 0xd
jg 0x48aa69
jmp 0x48a77b
cmp ecx, 0x2028
jl 0x48aa69
cmp ecx, 0x2029
jle 0x48a77b
add esi, 2
inc eax
mov dword [ebp - 8], esi
cmp eax, dword [ebp - 0x1c]
jl 0x48aa2c
jmp 0x48a77b
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x48a77b
cmp esi, dword [ebx + 0x7c]
jae 0x48a82a
movzx eax, word [esi]
cmp eax, 0x85
jg 0x48aaa8
je 0x48aab6
add eax, 0xfffffff6
cmp eax, 3
jbe 0x48aab6
jmp 0x48a77b
add eax, 0xffffdfd8
cmp eax, 1
ja 0x48a77b
add esi, 2
inc ecx
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48aa86
jmp 0x48a77b
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a77b
cmp esi, dword [ebx + 0x7c]
jae 0x48a82a
movzx ecx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp cx, word [ebp - 0xc]
ja 0x48aafc
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
jne 0x48a77b
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 0x48aad3
jmp 0x48a77b
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x48a77b
cmp esi, dword [ebx + 0x7c]
jae 0x48a82a
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x48a77b
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
je 0x48a77b
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 0x48ab1c
jmp 0x48a77b
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a77b
cmp esi, dword [ebx + 0x7c]
jae 0x48a82a
movzx ecx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp cx, word [ebp - 0xc]
ja 0x48ab91
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
jne 0x48a77b
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 0x48ab68
jmp 0x48a77b
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x48a77b
cmp esi, dword [ebx + 0x7c]
jae 0x48a82a
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x48a77b
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
je 0x48a77b
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 0x48abb1
jmp 0x48a77b
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a77b
cmp esi, dword [ebx + 0x7c]
jae 0x48a82a
movzx ecx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp cx, word [ebp - 0xc]
ja 0x48ac26
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
jne 0x48a77b
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 0x48abfd
jmp 0x48a77b
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x48a77b
cmp esi, dword [ebx + 0x7c]
jae 0x48a82a
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x48a77b
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je 0x48a77b
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 0x48ac46
jmp 0x48a77b
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 0x48acb5
lea edx, [edi + 4]
call fcn.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov edi, dword [ebp - 0xc]
jmp 0x40964b
mov edx, dword [ebp - 0xc]
call fcn.00409580
add esp, 0x14
test eax, eax
jne 0x409727
add edi, 4
jmp 0x40964b
mov eax, dword [ebx + 0x90]
mov ecx, dword [ebp + 0xc]
cmp eax, ecx
cmovg ecx, eax
movzx eax, word [edi + 6]
mov dword [ebp + 0xc], ecx
lea edi, [edi + eax*2]
add edi, 4
cmp word [edi], 0x71
jne 0x48ad04
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x48acf1
jmp 0x48ad04
mov ecx, dword [ebp + 0xc]
cmp esi, 0x86
je 0x48ae7f
add edi, 4
jmp 0x40964b
mov edx, esi
mov esi, dword [ebp - 8]
mov ecx, esi
call fcn.00409580
add esp, 0x14
cmp eax, 0xfffffc1b
jne 0x48ad3f
mov ecx, dword [ebp - 0x18]
cmp dword [ebx + 0xb8], ecx
jne 0x409727
jmp 0x48ad4a
test eax, eax
jne 0x409727
mov ecx, dword [ebp - 0x18]
cmp word [ecx], 0x7b
je 0x48af32
add edi, 4
jmp 0x40964b
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x48ad74
sub esi, 2
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48ad9f
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 + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x48adc1
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cf0], 2
jne 0x48ade5
sub esi, 2
jmp 0x489d7d
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 8], esi
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x2c]
jne 0x489d51
jmp 0x40964e
mov dword [ebx + 0x9c], 2
jmp 0x409f04
movzx ecx, word [edi + 2]
lea eax, [edi + ecx*2]
cmp dword [ebx + 0x80], eax
jae 0x48cca6
cmp word [edi], 0x71
je 0x409f53
cmp word [eax], 0x71
jne 0x48cca6
jmp 0x409f53
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [edi]
push dword [ebp + 0x14]
movzx ecx, byte [eax + 0x49f530]
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
lea eax, [edi + 4]
mov dword [ebx + 0x80], eax
mov eax, 0xfffffc1f
jmp 0x409727
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.00409580
add esp, 0x14
jmp 0x409727
mov eax, dword [ebp - 0x58]
mov dword [ebx + 0xa8], eax
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je case.0x409600.151
push eax
call dword [0x4bc80c]
add esp, 4
jmp case.0x409600.151
mov ecx, dword [ebp - 0x50]
lea edx, [ebp - 0x14c]
cmp ecx, edx
je 0x409727
push ecx
call dword [0x4bc80c]
mov eax, dword [ebp - 0xc]
add esp, 4
jmp 0x409727
mov eax, 0xfffffffa
jmp 0x409727
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov dword [ebx + 0xb8], edi
mov eax, 0xfffffc1b
jmp 0x409727
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov eax, dword [ebp - 0x18]
mov dword [ebx + 0xb8], eax
mov eax, 0xfffffc1b
jmp 0x409727
mov dword [ebx + 0x84], eax
mov dword [ebx + 0x90], edx
mov eax, 0xfffffc1a
jmp 0x409727
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov dword [ebx + 0xb8], esi
mov eax, 0xfffffc1b
jmp 0x409727
cmp ecx, dword [ebx + 0x88]
jbe case.0x409600.151
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle case.0x409600.151
mov eax, 0xfffffff4
jmp 0x409727
mov eax, 0xfffffff2
jmp 0x409727
cmp eax, 0xfffffffe
jne 0x48afee
mov esi, dword [ebx + 0x7c]
cmp dword [ebx + 0x8c], 0
je case.0x409600.151
cmp esi, dword [ebx + 0x7c]
jb case.0x409600.151
cmp esi, dword [ebx + 0x88]
jmp 0x48afb8
mov dword [ebp - 0xc], eax
cmp ecx, edx
jl 0x48b018
jmp 0x48b07e
mov eax, dword [ebp - 8]
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x34]
push ebx
push esi
mov edx, eax
call fcn.004722e3
add esp, 0xc
test eax, eax
js 0x48b045
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 0x48b015
jmp 0x48b075
cmp eax, 0xfffffffe
jne 0x48b072
cmp dword [ebx + 0x8c], 0
je 0x48b072
mov eax, dword [ebx + 0x7c]
cmp eax, dword [ebx + 0x88]
jbe 0x48b072
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0xc]
jb case.0x409600.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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
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 0x48b07e
xor eax, eax
jmp 0x409727
cmp ecx, 0xfffffffe
jne 0x48b0c5
mov eax, dword [ebx + 0x7c]
jmp 0x48b0c8
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
je case.0x409600.151
cmp eax, dword [ebx + 0x7c]
jb case.0x409600.151
cmp eax, dword [ebx + 0x88]
jmp 0x48afb8
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 0x48b1ea
call fcn.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov edx, dword [ebp - 0x34]
cmp edx, dword [ebp - 0x18]
jge case.0x409600.151
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebx + 0x7c]
jae 0x48b1d2
movzx eax, word [ecx]
mov dword [ebp - 0x10], eax
add ecx, 2
and eax, 0xfc00
mov dword [ebp - 8], ecx
cmp eax, 0xd800
jne 0x48b16e
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 0x48b171
mov eax, dword [ebp - 0x10]
cmp eax, 0xff
jbe 0x48b183
cmp esi, 0x6a
je case.0x409600.151
jmp 0x48b1a8
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.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x48b115
jmp 0x409727
cmp dword [ebx + 0x8c], 0
je case.0x409600.151
cmp ecx, dword [ebx + 0x88]
jmp 0x48afb8
call fcn.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov edx, dword [ebp - 0x34]
cmp edx, dword [ebp - 0x18]
jge case.0x409600.151
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x409e44
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 0x28], ecx
mov dword [ebp - 8], eax
cmp ecx, 0xff
jbe 0x48b231
cmp esi, 0x6a
je case.0x409600.151
jmp 0x48b251
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.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x48b1fa
jmp 0x409727
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 0x40994f
cmp esi, 0x6a
je 0x40997b
jmp 0x409f7b
cmp dword [ebx + 0x8c], 0
je 0x40997b
cmp eax, dword [ebx + 0x88]
jbe 0x40997b
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
jmp 0x40997b
mov eax, esi
sub esi, 2
cmp eax, dword [ebp - 0x40]
je case.0x409600.151
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x48b309
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.00409580
add esp, 0x14
test eax, eax
je 0x48b2e3
jmp 0x409727
mov edx, dword [ebp - 0x34]
cmp edx, dword [ebp - 0x18]
jge 0x48b3aa
cmp eax, dword [ebx + 0x7c]
jae 0x48b37c
movzx ecx, word [eax]
mov dword [ebp - 0x28], ecx
cmp ecx, 0xff
jbe 0x48b34f
cmp esi, 0x6a
jne 0x48b36e
jmp 0x48b3a1
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 0x48b3a1
add eax, 2
inc edx
mov dword [ebp - 8], eax
cmp edx, dword [ebp - 0x18]
jl 0x48b335
jmp 0x48b3a1
cmp dword [ebx + 0x8c], 0
je 0x48b3a1
cmp eax, dword [ebx + 0x88]
jbe 0x48b3a1
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
cmp eax, dword [ebp - 0x40]
jb case.0x409600.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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
sub esi, 2
cmp esi, dword [ebp - 0x40]
jae 0x48b3ad
jmp 0x409727
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.004726ea
add esp, 4
test eax, eax
je case.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x486914
jmp 0x409727
cmp dword [ebx + 0x8c], 0
je case.0x409600.151
cmp esi, dword [ebx + 0x88]
jmp 0x48afb8
mov dword [ebp - 0x40], esi
cmp edx, eax
jge 0x48b4e0
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48b4bb
movzx edx, word [esi]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x30], edx
test ecx, ecx
je 0x48b492
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b48d
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 0x48b495
mov eax, dword [ebp - 0x30]
jmp 0x48b495
movzx eax, word [esi]
mov edx, dword [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.004726ea
add esp, 4
test eax, eax
je 0x48b4e0
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 0x48b444
jmp 0x48b4e0
cmp dword [ebx + 0x8c], 0
je 0x48b4e0
cmp esi, dword [ebx + 0x88]
jbe 0x48b4e0
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov eax, esi
sub esi, 2
cmp eax, dword [ebp - 0x40]
je case.0x409600.151
cmp dword [ebp - 0x20], 0
je 0x48b52f
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x48b52f
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.00409580
add esp, 0x14
test eax, eax
je 0x48b503
jmp 0x409727
cmp dword [ebx + 0x8c], 0
je case.0x409600.151
cmp edx, dword [ebx + 0x7c]
jb case.0x409600.151
cmp edx, dword [ebx + 0x88]
jmp 0x48afb8
cmp dword [ebx + 0x8c], edx
je case.0x409600.151
cmp ecx, dword [ebx + 0x88]
jmp 0x48afb8
mov ecx, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
je case.0x409600.151
cmp ecx, dword [ebx + 0x7c]
jb case.0x409600.151
jmp 0x48afb2
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
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.0x409600.151
mov eax, dword [ebx + 0x7c]
sub eax, edx
cmp esi, eax
ja 0x48b606
lea eax, [ecx + ecx]
push eax
push dword [ebp - 0x28]
push esi
call fcn.00420be3
add esp, 0xc
test eax, eax
jne 0x48b606
add esi, dword [ebp - 0xc]
jmp 0x48b640
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jle 0x48afee
mov eax, dword [ebx + 0x7c]
lea edx, [ecx + ecx]
sub eax, edx
mov dword [ebp - 0x30], edx
cmp esi, eax
ja 0x48afee
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x6c]
push eax
push esi
call fcn.00420be3
add esp, 0xc
test eax, eax
jne 0x48afee
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.00409580
mov ecx, dword [ebp - 0x10]
add esp, 0x14
lea edx, [ecx + ecx]
test eax, eax
je 0x48b5d8
jmp 0x409727
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x34]
jge case.0x409600.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx ecx, word [esi]
cmp dword [ebp - 0x18], ecx
je 0x48b6ba
cmp dword [ebp - 0x14], ecx
jne case.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x48b694
jmp 0x409727
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x34]
jge case.0x409600.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx eax, word [esi]
add esi, 2
cmp dword [ebp - 0x18], eax
jne case.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x48b708
jmp 0x409727
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 0x48b7fe
call fcn.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x34]
jge case.0x409600.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
add esi, 2
cmp eax, 0xd800
jne 0x48b7c4
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 - 0x14], edx
je case.0x409600.151
cmp dword [ebp - 0x10], edx
je case.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x48b77f
jmp 0x409727
call fcn.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x34]
jge case.0x409600.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx ecx, word [esi]
cmp dword [ebp - 0x14], ecx
je case.0x409600.151
cmp dword [ebp - 0x10], ecx
je case.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x48b80e
jmp 0x409727
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 0x48b904
call fcn.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x34]
jge case.0x409600.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
add esi, 2
cmp eax, 0xd800
jne 0x48b8d3
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 - 0x14], edx
je case.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x48b88e
jmp 0x409727
call fcn.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x34]
jge case.0x409600.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx eax, word [esi]
add esi, 2
cmp dword [ebp - 0x14], eax
je case.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x48b914
jmp 0x409727
cmp eax, 0xa
ja case.default.0x48632a
jmp dword [eax*4 + 0x48d104]
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge case.0x409600.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48b9c5
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x48b9c5
add esi, 2
cmp dword [ebp - 0x3c], 0
jne case.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x48b993
jmp 0x409727
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge case.0x409600.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx edx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], edx
je 0x48ba6b
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48ba6b
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 + 0x4ad470]
shl eax, 7
and edx, 0x8000007f
jns 0x48ba90
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp eax, 9
je 0x48bab5
cmp eax, 5
je 0x48bab5
cmp eax, 8
je 0x48bab5
xor eax, eax
jmp 0x48baba
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x48ba1a
jmp 0x409727
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x409600.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48bb5d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48bb5d
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 + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x48bb7f
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x40]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cf0], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x48bb12
jmp 0x409727
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x409600.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48bc42
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48bc42
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 + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x48bc64
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x48bbf7
jmp 0x409727
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x409600.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48bd20
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48bd20
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 + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x48bd42
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d0]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x48bcd5
jmp 0x409727
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge case.0x409600.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx edx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], edx
je 0x48be04
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48be04
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 + 0x4ad470]
shl eax, 7
and edx, 0x8000007f
jns 0x48be29
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x48be50
cmp eax, 3
je 0x48be50
xor eax, eax
jmp 0x48be55
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x48bdb3
jmp 0x409727
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x409600.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
je 0x48befe
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48befe
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 + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x48bf24
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cf0], 6
je 0x48bf58
cmp edx, 9
je 0x48bf58
cmp edx, 0xa
je 0x48bf58
cmp edx, 0xc
je 0x48bf58
cmp edx, 0xd
je 0x48bf58
xor eax, eax
jmp 0x48bf5d
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x48bead
jmp 0x409727
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x409600.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
je 0x48c005
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48c005
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 + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x48c02b
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
cmp dword [eax*4 + 0x4b6cf0], 6
je 0x48c064
cmp edx, 9
je 0x48c064
cmp edx, 0xa
je 0x48c064
cmp edx, 0xb
je 0x48c064
cmp edx, 0xc
je 0x48c064
cmp edx, 0xd
je 0x48c064
xor eax, eax
jmp 0x48c069
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x48bfb4
jmp 0x409727
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x409600.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
je 0x48c111
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48c111
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 + 0x4ad470]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x48c137
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5d0]
movzx eax, byte [eax*8 + 0x4ac0d1]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x48c163
cmp eax, 3
je 0x48c163
cmp edx, 0x5f
je 0x48c163
xor eax, eax
jmp 0x48c168
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x48c0c0
jmp 0x409727
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge case.0x409600.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48c20d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48c20a
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 + 0x4af670]
lea edx, [edx*4 + 0x4af670]
mov dword [ebp - 0xc], ebx
cmp ecx, ebx
mov ebx, dword [ebp + 0x10]
jb 0x48c23f
mov ebx, dword [ebp + 0x10]
lea edx, [edx + 4]
cmp ecx, dword [ebp - 0xc]
je 0x48c275
mov ebx, dword [edx]
mov dword [ebp - 0xc], ebx
cmp ecx, ebx
mov ebx, dword [ebp + 0x10]
jae 0x48c228
cmp dword [ebp - 0x3c], 0
je case.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x48c1bf
jmp 0x409727
cmp dword [ebp - 0x3c], 0
jne case.0x409600.151
jmp 0x48c249
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.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge case.0x409600.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b421
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48c2f2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48c2ef
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 0x48c31d
cmp ecx, 0x40
je 0x48c31d
cmp ecx, 0x60
je 0x48c31d
cmp ecx, 0xa0
jb 0x48c311
cmp ecx, 0xd7ff
jbe 0x48c31d
cmp ecx, 0xe000
jae 0x48c31d
xor ecx, ecx
jmp 0x48c322
mov ecx, 1
cmp ecx, dword [ebp - 0x3c]
je case.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x48c2a4
jmp 0x409727
mov ecx, esi
call fcn.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge case.0x409600.151
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x30], eax
cmp esi, eax
jae 0x48b421
movzx edx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], edx
je 0x48c3bf
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48c3bf
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 + 0x4ad470]
shl eax, 7
and edx, 0x8000007f
jns 0x48c3e4
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5d0]
movzx edx, byte [eax*8 + 0x4ac0d2]
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0xc], edx
cmp esi, eax
jae 0x48c4ab
mov ebx, dword [ebp - 0x20]
mov edi, edx
movzx ecx, word [esi]
mov dword [ebp - 0xc], 1
test ebx, ebx
je 0x48c446
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48c446
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 + 0x4ad470]
shl eax, 7
and ecx, 0x8000007f
jns 0x48c468
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5d0]
movzx ecx, byte [eax*8 + 0x4ac0d2]
mov eax, 1
shl eax, cl
test dword [edi*4 + 0x49f454], eax
je 0x48c49f
mov eax, dword [ebp - 0xc]
mov edi, ecx
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x30]
cmp esi, eax
jb 0x48c409
jmp 0x48c4a2
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 0x48c4d4
cmp esi, eax
jb 0x48c4d4
cmp esi, dword [ebx + 0x88]
jbe 0x48c4d4
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
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.00409580
add esp, 0x14
test eax, eax
je 0x48c369
jmp 0x409727
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x409de7
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x409de7
cmp dword [ebx + 0x1c], 1
je case.0x409600.151
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x36]
je case.0x409600.151
jmp 0x409de7
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add esi, 2
jmp 0x409dff
add eax, 0xfffffffa
cmp eax, 0xf
ja case.default.0x48632a
jmp dword [eax*4 + 0x48d130]
cmp edx, 0xd
ja 0x48c5a6
je 0x48c58b
cmp edx, 0xa
je case.0x48c566.13
lea eax, [edx - 0xb]
cmp eax, 1
ja case.0x409600.151
jmp 0x48c5bd
cmp esi, dword [ebx + 0x7c]
jae case.0x48c566.13
cmp word [esi], 0xa
jne case.0x48c566.13
add esi, 2
jmp case.0x48c566.13
cmp edx, 0x85
je 0x48c5bd
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x409600.151
cmp dword [ebx + 0x6c], 0
jne case.0x409600.151
jmp case.0x48c566.13
cmp edx, 0x180e
ja 0x48c610
je case.0x409600.151
cmp edx, 0xa0
ja 0x48c5ff
je case.0x409600.151
cmp edx, 9
je case.0x409600.151
cmp edx, 0x20
je case.0x409600.151
jmp case.0x48c566.13
cmp edx, 0x1680
je case.0x409600.151
jmp case.0x48c566.13
cmp edx, 0x205f
ja 0x48c647
je case.0x409600.151
cmp edx, 0x2000
jb case.0x48c566.13
cmp edx, 0x200a
jbe case.0x409600.151
cmp edx, 0x202f
je case.0x409600.151
jmp case.0x48c566.13
cmp edx, 0x3000
je case.0x409600.151
jmp case.0x48c566.13
cmp edx, 0x180e
ja 0x48c69c
je case.0x48c566.13
cmp edx, 0xa0
ja 0x48c68b
je case.0x48c566.13
cmp edx, 9
je case.0x48c566.13
cmp edx, 0x20
jne case.0x409600.151
jmp case.0x48c566.13
cmp edx, 0x1680
jne case.0x409600.151
jmp case.0x48c566.13
cmp edx, 0x205f
ja 0x48c6d3
je case.0x48c566.13
cmp edx, 0x2000
jb case.0x409600.151
cmp edx, 0x200a
jbe case.0x48c566.13
cmp edx, 0x202f
jne case.0x409600.151
jmp case.0x48c566.13
cmp edx, 0x3000
jne case.0x409600.151
jmp case.0x48c566.13
cmp edx, 0x85
ja 0x48c709
je case.0x409600.151
cmp edx, 0xa
jb case.0x48c566.13
cmp edx, 0xd
jbe case.0x409600.151
jmp case.0x48c566.13
cmp edx, 0x2028
jb case.0x48c566.13
cmp edx, 0x2029
jbe case.0x409600.151
jmp case.0x48c566.13
cmp edx, 0x85
ja 0x48c745
je case.0x48c566.13
lea eax, [edx - 0xa]
cmp eax, 3
ja case.0x409600.151
jmp case.0x48c566.13
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x409600.151
jmp case.0x48c566.13
cmp edx, 0x100
jae case.0x48c566.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
jne case.0x409600.151
jmp case.0x48c566.13
cmp edx, 0x100
jae case.0x409600.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
je case.0x409600.151
jmp case.0x48c566.13
cmp edx, 0x100
jae case.0x48c566.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
jne case.0x409600.151
jmp case.0x48c566.13
cmp edx, 0x100
jae case.0x409600.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
je case.0x409600.151
jmp case.0x48c566.13
cmp edx, 0x100
jae case.0x48c566.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
jne case.0x409600.151
jmp case.0x48c566.13
cmp edx, 0x100
jae case.0x409600.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
je case.0x409600.151
jmp case.0x48c566.13
cmp esi, dword [ebx + 0x7c]
jb case.0x48c566.13
cmp dword [ebx + 0x18], 0
jne case.0x48c566.13
cmp dword [ebx + 0x1c], 2
jne case.0x48c566.13
movzx eax, word [ebx + 0x34]
cmp edx, eax
jne case.0x48c566.13
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
jmp case.0x48c566.13
call fcn.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge case.0x409600.151
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x48b421
mov eax, dword [ebp - 0x34]
cmp eax, 0xc
jne 0x48c8d4
cmp dword [ebx + 0x18], 0
je 0x48c8a5
push 0
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.00408184
add esp, 0xc
test eax, eax
jne case.0x409600.151
mov ecx, dword [ebp - 0x14]
jmp 0x48c8d1
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x48c8d1
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x48c8d1
cmp dword [ebx + 0x1c], 1
je case.0x409600.151
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x36]
je case.0x409600.151
mov eax, dword [ebp - 0x34]
movzx edx, word [esi]
add eax, 0xfffffffa
add esi, 2
cmp eax, 0xf
ja case.default.0x48632a
jmp dword [eax*4 + 0x48d170]
cmp dword [ebx + 0x8c], 0
je case.0x48c8e6.13
cmp esi, dword [ebx + 0x7c]
jb case.0x48c8e6.13
cmp dword [ebx + 0x18], 0
jne case.0x48c8e6.13
cmp dword [ebx + 0x1c], 2
jne case.0x48c8e6.13
movzx eax, word [ebx + 0x34]
cmp edx, eax
jne case.0x48c8e6.13
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x48583c
jmp case.0x48c8e6.13
cmp edx, 0xd
ja 0x48c975
je 0x48c95a
cmp edx, 0xa
je case.0x48c8e6.13
lea eax, [edx - 0xb]
cmp eax, 1
ja case.0x409600.151
jmp 0x48c98c
cmp esi, dword [ebx + 0x7c]
jae case.0x48c8e6.13
cmp word [esi], 0xa
jne case.0x48c8e6.13
add esi, 2
jmp case.0x48c8e6.13
cmp edx, 0x85
je 0x48c98c
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x409600.151
cmp dword [ebx + 0x6c], 0
jne case.0x409600.151
jmp case.0x48c8e6.13
cmp edx, 0x180e
ja 0x48c9df
je case.0x409600.151
cmp edx, 0xa0
ja 0x48c9ce
je case.0x409600.151
cmp edx, 9
je case.0x409600.151
cmp edx, 0x20
je case.0x409600.151
jmp case.0x48c8e6.13
cmp edx, 0x1680
je case.0x409600.151
jmp case.0x48c8e6.13
cmp edx, 0x205f
ja 0x48ca16
je case.0x409600.151
cmp edx, 0x2000
jb case.0x48c8e6.13
cmp edx, 0x200a
jbe case.0x409600.151
cmp edx, 0x202f
je case.0x409600.151
jmp case.0x48c8e6.13
cmp edx, 0x3000
je case.0x409600.151
jmp case.0x48c8e6.13
cmp edx, 0x180e
ja 0x48ca6b
je case.0x48c8e6.13
cmp edx, 0xa0
ja 0x48ca5a
je case.0x48c8e6.13
cmp edx, 9
je case.0x48c8e6.13
cmp edx, 0x20
jne case.0x409600.151
jmp case.0x48c8e6.13
cmp edx, 0x1680
jne case.0x409600.151
jmp case.0x48c8e6.13
cmp edx, 0x205f
ja 0x48caa2
je case.0x48c8e6.13
cmp edx, 0x2000
jb case.0x409600.151
cmp edx, 0x200a
jbe case.0x48c8e6.13
cmp edx, 0x202f
jne case.0x409600.151
jmp case.0x48c8e6.13
cmp edx, 0x3000
jne case.0x409600.151
jmp case.0x48c8e6.13
cmp edx, 0x85
ja 0x48cad8
je case.0x409600.151
cmp edx, 0xa
jb case.0x48c8e6.13
cmp edx, 0xd
jbe case.0x409600.151
jmp case.0x48c8e6.13
cmp edx, 0x2028
jb case.0x48c8e6.13
cmp edx, 0x2029
jbe case.0x409600.151
jmp case.0x48c8e6.13
cmp edx, 0x85
ja 0x48cb14
je case.0x48c8e6.13
lea eax, [edx - 0xa]
cmp eax, 3
ja case.0x409600.151
jmp case.0x48c8e6.13
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x409600.151
jmp case.0x48c8e6.13
cmp edx, 0xff
ja case.0x48c8e6.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
jne case.0x409600.151
jmp case.0x48c8e6.13
cmp edx, 0xff
ja case.0x409600.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
je case.0x409600.151
jmp case.0x48c8e6.13
cmp edx, 0xff
ja case.0x48c8e6.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
jne case.0x409600.151
jmp case.0x48c8e6.13
cmp edx, 0xff
ja case.0x409600.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
je case.0x409600.151
jmp case.0x48c8e6.13
cmp edx, 0xff
ja case.0x48c8e6.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
jne case.0x409600.151
jmp case.0x48c8e6.13
cmp edx, 0xff
ja case.0x409600.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
je case.0x409600.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.00409580
add esp, 0x14
test eax, eax
je 0x48c85f
jmp 0x409727
mov dword [ebx + 0x9c], 2
jmp 0x409c8f
movzx ecx, word [edi + 2]
lea eax, [edi + ecx*2]
cmp dword [ebx + 0x80], eax
jae 0x409cd8
cmp word [edi], 0x71
je 0x48cc1e
cmp word [eax], 0x71
jne 0x409cd8
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 0x409c83
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 0x409cd8
cmp edx, 0xfffffc1b
jne 0x48cca6
movzx eax, word [edi]
cmp eax, 0x7b
je 0x48cc9b
cmp eax, 0x71
jne 0x48cc92
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x48cc84
movzx eax, word [edi + 2]
neg eax
lea edi, [edi + eax*2]
xor eax, eax
cmp dword [ebx + 0xb8], edi
cmove edx, eax
mov eax, edx
jmp 0x409727
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 + 0x49f530]
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.00409580
mov edi, eax
add esp, 0x14
cmp edi, 1
je 0x48ccfd
cmp edi, 0xfffffc19
jne 0x48cd16
cmp dword [ebx + 0xb0], 0
jne 0x48cd16
mov ecx, dword [ebp - 0xc]
mov dword [ebx + 0xb0], ecx
mov eax, edi
jmp 0x409727
cmp edi, 0xfffffc1f
jne 0x48cd34
mov edx, dword [ebx + 0x80]
mov ecx, dword [ebp - 0xc]
call fcn.00472519
test eax, eax
je 0x48ce45
mov eax, edi
jmp 0x409727
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 + 0x49f530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00409580
add esp, 0x14
test eax, eax
mov ecx, 0xfffffc1c
cmovne ecx, eax
mov eax, ecx
jmp 0x409727
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 + 0x49f530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00409580
add esp, 0x14
test eax, eax
mov ecx, 0xfffffc1d
cmovne ecx, eax
mov eax, ecx
jmp 0x409727
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 + 0x49f530]
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.00409580
mov ecx, eax
add esp, 0x14
cmp ecx, 1
je 0x48cdf6
cmp ecx, 0xfffffc19
jne 0x48ce05
cmp dword [ebx + 0xb0], 0
jne 0x48ce05
mov dword [ebx + 0xb0], esi
mov eax, 0xfffffc1d
test ecx, ecx
cmovne eax, ecx
jmp 0x409727
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 + 0x49f530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
mov ecx, esi
call fcn.00409580
add esp, 0x14
test eax, eax
jne 0x409727
mov dword [ebx + 0x80], esi
mov eax, 0xfffffc1e
jmp 0x409727
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 + 0x49f530]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.00409580
add esp, 0x14
jmp 0x48ce84
mov dword [ebx + 0xb0], esi
test eax, eax
jne 0x409727
mov dword [ebx + 0x80], edi
mov eax, 0xfffffc20
jmp 0x409727
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 + 0x49f530]
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.00409580
add esp, 0x14
cmp eax, 1
je 0x48cee4
cmp eax, 0xfffffc19
jne 0x48ce84
cmp dword [ebx + 0xb0], 0
jne 0x48ce84
jmp 0x48ce7e
cmp esi, 0x99
je 0x409705
cmp dword [ebx + 0xa8], 0
jne 0x409705
cmp dword [ebx + 0x60], 0
jne case.0x409600.151
cmp dword [ebx + 0x64], 0
je 0x409705
mov ecx, dword [ebx + 0x98]
mov eax, dword [ebx + 0x78]
lea eax, [eax + ecx*2]
cmp edi, eax
je case.0x409600.151
jmp 0x409705
mov eax, 0xfffffc19
jmp 0x409727
mov eax, 0xfffffffb
jmp 0x409727
mov eax, 0xffffffeb
jmp 0x409727
inc dword [ebx]
mov eax, 0xfffffff8
jmp 0x409727