Function at 0x40a740
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 0x484a16
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 0x48d0c9
inc eax
mov dword [ebx], eax
mov eax, dword [ebp + 0x18]
cmp eax, dword [ebx + 8]
jae 0x48d0bf
cmp dword [ebx + 0x9c], 2
je 0x484a47
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.0x40a7c0.98
movzx eax, byte [esi + 0x40b2e0]
jmp dword [eax*4 + 0x40b198]
cmp esi, 0x82
jae 0x48af72
cmp esi, 0x7b
je 0x48af72
cmp dword [ebx + 0x70], 0
jne 0x40b0c4
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
je 0x40b0c4
movzx eax, word [edi]
movzx eax, byte [eax + 0x49f528]
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 0x40a780
jmp 0x48d0c9
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 0x485723
cmp eax, 0x7b
je 0x485723
xor ecx, ecx
mov dword [ebp - 0x10], ecx
cmp eax, 0x7a
jbe 0x485733
cmp eax, 0x7f
je 0x40ac63
cmp eax, 0x7c
je 0x48573c
mov edx, 0x84
cmp ax, dx
je 0x40ac63
mov edx, 0x80
cmp ax, dx
je 0x40ac63
mov edx, 0x85
cmp ax, dx
je 0x40ac63
mov edx, dword [ebp + 0xc]
cmp word [edi], 0x72
jne 0x4857c2
cmp word [esi], 0x7b
je 0x48b0f5
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
mov edx, dword [ebp - 8]
mov edi, dword [ebp + 8]
cmp edx, edi
je 0x48d065
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x84], edx
mov dword [ebx + 0x90], eax
mov dword [ebx + 0x80], edi
test esi, esi
jne 0x48d0ab
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 0x40b01e
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 0x4868cb
mov dword [ebp - 0x28], 1
cmp eax, 1
jl 0x40b07a
mov ecx, dword [ebx + 0x7c]
lea esp, [esp]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x40b004
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 0x486895
cmp ecx, 0xff
ja 0x4868bd
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 0x40aaa1
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 0x40b016
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x40a9ce
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x486653
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad468]
shl eax, 7
and ecx, 0x8000007f
jns 0x40a9f0
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0ca]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 8]
cmp eax, esi
jae 0x40aa89
mov edi, dword [ebp - 0x20]
mov ebx, eax
movzx ecx, word [ebx]
mov esi, 1
test edi, edi
je 0x40aa2f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x486678
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad468]
shl eax, 7
and ecx, 0x8000007f
jns 0x40aa51
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x30]
add eax, ecx
movzx eax, word [eax*2 + 0x49f5c8]
movzx ecx, byte [eax*8 + 0x4ac0ca]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x49f44c], eax
jne 0x40ab66
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 0x48669c
add edi, 2
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebx + 0x7c]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, dword [ebp - 0x34]
jle 0x40a940
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 0x40a7a0
test edx, edx
jne 0x48b25f
mov dword [ebp - 0x40], eax
test ecx, ecx
je 0x48b4a3
mov ecx, dword [ebp - 0x18]
cmp dword [ebp - 0x34], ecx
jge 0x40ab3b
mov dword [ebp - 0xc], 1
cmp eax, dword [ebx + 0x7c]
jae 0x48b427
movzx ecx, word [eax]
mov edx, dword [ebp - 8]
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x10], ecx
cmp eax, 0xd800
je 0x48b3f0
cmp ecx, 0xff
ja 0x48b419
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 0x40b13b
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
jmp 0x48b459
lea ebx, [ebx + esi*2]
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x30], ecx
cmp ebx, esi
jb 0x40aa11
jmp 0x40aa7d
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b016
cmp dword [ebp - 0x20], edx
je 0x486bc4
movzx esi, word [edi + 2]
add edi, 2
mov eax, esi
and eax, 0xfc00
mov edx, 1
cmp eax, 0xd800
je 0x486b14
mov eax, dword [ebp - 8]
movzx ecx, word [eax]
cmp esi, 0x80
jae 0x486b38
cmp ecx, 0xff
ja 0x40abd0
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.0x40a7c0.151
add edi, 2
add dword [ebp - 8], 2
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
mov edx, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, edx
jae 0x40b004
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 8], eax
je 0x40ac20
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
mov eax, dword [ebp - 8]
je 0x48612b
cmp ecx, 0xe
jb 0x40ac31
cmp ecx, 0x85
jb case.0x40a7c0.151
cmp ecx, 0xd
ja 0x48619c
jne 0x486150
cmp eax, edx
jae 0x48616a
cmp word [eax], 0xa
jne 0x40aa96
add eax, 2
add edi, 2
mov dword [ebp - 8], eax
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
movzx ecx, word [esi + 4]
mov eax, dword [ebx + 0xa8]
mov dword [ebp - 0xc], ecx
lea edx, [ecx + ecx]
test eax, eax
jne 0x48575c
mov eax, dword [ebx + 0x94]
and eax, 0xffff0000
or eax, ecx
mov dword [ebx + 0x94], eax
cmp edx, dword [ebx + 0x14]
jge 0x485781
mov ecx, dword [ebp + 0xc]
cmp edx, ecx
jg 0x485794
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 0x40a895
add edx, 2
mov dword [ebp + 0xc], edx
jmp 0x40a898
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b016
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 0x30], ecx
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x40ad06
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
je 0x48646f
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0x30]
sar eax, 7
movzx ecx, byte [eax + 0x4ad468]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x40ad2c
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5c8]
movzx ecx, word [edi + 2]
cmp ecx, 9
jne 0x486497
movzx eax, word [edi + 4]
mov ecx, dword [eax*4 + 0x4af668]
lea eax, [eax*4 + 0x4af668]
cmp edx, ecx
jb 0x486645
lea ecx, [ecx]
lea eax, [eax + 4]
cmp edx, ecx
je 0x40ad72
mov ecx, dword [eax]
cmp edx, ecx
jae 0x40ad60
jmp 0x486645
cmp esi, 0x10
jne case.0x40a7c0.151
add edi, 6
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
cmp dword [ebp - 0x20], edx
je 0x486ae5
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 0x40b185
mov eax, dword [ebx + 0x7c]
mov edx, dword [ebp - 8]
sub eax, edx
sar eax, 1
cmp esi, eax
jg 0x48b6c9
test esi, esi
jle 0x40a7a0
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.0x40a7c0.151
test esi, esi
jle 0x40a7a0
jmp 0x40add0
movzx edx, word [edi + 4]
mov dword [ebp - 0xc], edx
lea eax, [edx + edx]
cmp eax, dword [ebx + 0x14]
jge case.0x40a7c0.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 0x48cd62
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 + 0x49f528]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.0040a740
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc1b
je 0x48cdb9
cmp edx, 0xfffffc20
je 0x48cd71
test edx, edx
je 0x48cd96
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 0x40b18f
mov eax, 1
movsx esi, byte [ecx + 0x49f518]
movsx ecx, byte [ecx + 0x49f520]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x40aed7
mov dword [ebp - 0x1c], SysAllocStringLen
movzx ecx, word [edi]
add edi, 2
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], edi
cmp ecx, 0x10
je 0x487a87
cmp ecx, 0xf
je 0x487a7e
or ecx, 0xffffffff
mov dword [ebp - 0x30], ecx
test esi, esi
jg 0x487aa6
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 0x40a7a0
test eax, eax
mov eax, dword [ebp - 0x30]
je 0x489381
test eax, eax
jns 0x48bad6
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 0x48c4cd
test ecx, ecx
mov ecx, esi
je 0x48c9c5
call fcn.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge case.0x40a7c0.151
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x48b597
cmp dword [ebp - 0x34], 0xc
jne 0x40afa7
cmp dword [ebx + 0x18], 0
je 0x48c676
push dword [ebp - 0x20]
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.0040939c
add esp, 0xc
test eax, eax
jne case.0x40a7c0.151
mov ecx, dword [ebp - 0x14]
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
add esi, 2
cmp eax, 0xd800
je 0x48c6af
mov eax, dword [ebp - 0x34]
cmp eax, 0xc
jne 0x48c6d0
cmp dword [ebx + 0x8c], 0
jne 0x48c983
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
jmp 0x40af60
cmp dword [ebx + 0x8c], 0
je case.0x40a7c0.151
jmp 0x48b254
cmp dword [ebx + 0x8c], edx
jmp 0x40b00b
sub eax, 0x62
cmp eax, 7
ja case.default.0x40b031
movzx eax, byte [eax + 0x40b384]
jmp dword [eax*4 + 0x40b37c]
add ecx, 0xffffff9e
add edi, 2
mov dword [ebp - 0x38], edi
test cl, 1
jne 0x40b17b
xor eax, eax
mov dword [ebp - 0x2c], eax
movsx eax, byte [ecx + 0x49f518]
movsx ecx, byte [ecx + 0x49f520]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x40a91b
mov dword [ebp - 0x18], SysAllocStringLen
jmp 0x40a91b
mov eax, dword [ebp - 8]
jmp 0x40aaba
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je case.0x40a7c0.113
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
jmp 0x48542f
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 + 0x49f528]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.0040a740
mov edx, eax
add esp, 0x14
cmp edx, 0xfffffc20
je 0x48af81
test edx, edx
jne 0x48cde5
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.0x40a7c0.151
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0x94], eax
jmp case.0x40a7c0.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 0x40ab3b
mov eax, edx
jmp 0x40aae4
mov dword [ebp - 0x10], edx
jmp 0x4854c3
add edi, 2
jmp 0x485488
mov eax, dword [ebp - 8]
jmp 0x485855
mov esi, dword [ebp - 0x20]
jmp 0x485e6a
mov eax, 1
jmp 0x40b04c
mov esi, 2
jmp 0x40adb4
xor eax, eax
jmp 0x40aeb5
cmp dword [ebp + 0x18], 0
lea ecx, [ebp + 0x18]
jne 0x484a38
push 1
push 0
push 0
push 0
push 0
xor edx, edx
call fcn.0040a740
add esp, 0x14
jmp 0x40a8e7
sub ecx, eax
test ecx, ecx
jle 0x484a40
neg ecx
mov eax, ecx
jmp 0x40a8e7
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 0x40a7a0
inc dword [ebx + 0x28]
mov eax, dword [ebx + 0x28]
cmp eax, dword [ebx + 0x2c]
ja 0x48afad
movzx eax, word [edi]
movzx ecx, byte [eax + 0x49f528]
movzx eax, word [edi + 2]
add ecx, eax
lea edi, [edi + ecx*2]
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
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.0040a740
add esp, 0x14
cmp eax, 1
je 0x484b16
cmp eax, 0xfffffc20
jne 0x484af3
movzx ecx, word [edi + 2]
lea ecx, [edi + ecx*2]
cmp dword [ebx + 0x80], ecx
jae 0x40a8e7
cmp word [edi], 0x71
je 0x484afb
cmp word [ecx], 0x71
jne 0x40a8e7
jmp 0x484afb
test eax, eax
jne 0x40a8e7
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 0x484aa7
mov ecx, dword [ebp + 8]
jmp 0x484b1f
mov ecx, dword [ebx + 0x80]
mov dword [ebp + 8], ecx
movzx eax, word [edi]
cmp eax, 0x7c
je 0x484b30
cmp eax, 0x71
jne case.0x40a7c0.151
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x484b30
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 0x487301
cmp eax, dword [ebp - 0x28]
jne 0x48adfc
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
cmp word [edi + 4], 0x70
movzx eax, word [edi + 2]
mov dword [ebp - 0x10], eax
jne 0x484c44
mov ecx, dword [0x4c44ec]
test ecx, ecx
je 0x484c3b
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.0x40a7c0.151
js 0x40a8e7
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 0x484df7
cmp ecx, 0x8a
je 0x484df7
cmp ecx, 0x87
je 0x484ccd
cmp ecx, 0x88
je 0x484ccd
cmp ecx, 0x8b
jne 0x484c87
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
jmp 0x484f2e
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.0040a740
add esp, 0x14
cmp eax, 1
je 0x48ae46
test eax, eax
je 0x484cc2
cmp eax, 0xfffffc20
jne 0x40a8e7
mov eax, dword [ebp - 0x10]
lea edi, [edi + eax*2]
jmp 0x484f2e
movzx edx, word [edi + 6]
add edx, edx
cmp edx, dword [ebp + 0xc]
jge 0x484ce5
mov eax, dword [ebx + 0xc]
cmp dword [eax + edx*4], 0
jge 0x484f19
xor eax, eax
mov dword [ebp - 0x18], eax
cmp ecx, 0x88
jne 0x484f13
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 0x484d28
movzx eax, word [ecx]
cmp eax, dword [ebp - 0xc]
je 0x484d1f
mov eax, dword [ebx + 0x24]
inc edx
lea ecx, [ecx + eax*2]
cmp edx, dword [ebx + 0x20]
jl 0x484d0b
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x34], ecx
cmp edx, dword [ebx + 0x20]
jge 0x484f13
mov dword [ebp - 0x38], ecx
cmp ecx, dword [ebx + 0x30]
jbe 0x484d90
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.004726ae
test eax, eax
jne 0x484d87
mov ecx, dword [ebp - 0x38]
movzx edx, word [ecx]
add edx, edx
cmp edx, dword [ebp + 0xc]
jge 0x484d78
mov eax, dword [ebx + 0xc]
cmp dword [eax + edx*4], 0
jge 0x484f19
xor eax, eax
mov dword [ebp - 0x18], eax
cmp ecx, dword [ebx + 0x30]
jbe 0x484d8a
mov eax, dword [ebp - 0x30]
jmp 0x484d4a
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 0x484f13
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.004726ae
test eax, eax
jne 0x484f10
mov ecx, dword [ebp - 0x34]
movzx edx, word [ecx]
add edx, edx
cmp edx, dword [ebp + 0xc]
jge 0x484ddd
mov eax, dword [ebx + 0xc]
cmp dword [eax + edx*4], 0
jge 0x484f19
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 0x484f13
mov eax, dword [ebp - 0x30]
jmp 0x484dab
mov edx, dword [ebx + 0xa8]
test edx, edx
jne 0x484e0d
movzx eax, word [edi + 2]
lea edi, [edi + eax*2]
jmp 0x484f2e
movzx eax, word [edi + 6]
mov dword [ebp - 0xc], eax
cmp eax, 0xffff
je 0x484f19
mov edx, dword [edx + 4]
mov dword [ebp - 0x30], edx
cmp eax, edx
je 0x484f19
xor eax, eax
mov dword [ebp - 0x18], eax
cmp ecx, 0x8a
jne 0x484f13
mov ecx, dword [ebx + 0x30]
xor edx, edx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x10], edx
cmp dword [ebx + 0x20], eax
jle 0x484e6b
movzx eax, word [ecx]
cmp eax, dword [ebp - 0xc]
je 0x484e62
mov eax, dword [ebx + 0x24]
inc edx
lea ecx, [ecx + eax*2]
cmp edx, dword [ebx + 0x20]
jl 0x484e4e
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x34], ecx
cmp edx, dword [ebx + 0x20]
jge 0x484f13
mov dword [ebp - 0x38], ecx
cmp ecx, dword [ebx + 0x30]
jbe 0x484ec4
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.004726ae
test eax, eax
jne 0x484ebb
mov ecx, dword [ebp - 0x38]
movzx eax, word [ecx]
cmp eax, dword [ebp - 0x30]
je 0x484f19
xor eax, eax
mov dword [ebp - 0x18], eax
cmp ecx, dword [ebx + 0x30]
jbe 0x484ebe
mov eax, dword [ebp - 0x28]
jmp 0x484e8d
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 0x484f13
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.004726ae
test eax, eax
jne 0x484f10
mov ecx, dword [ebp - 0x34]
movzx eax, word [ecx]
cmp eax, dword [ebp - 0x30]
je 0x484f19
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 0x484f13
mov eax, dword [ebp - 0x28]
jmp 0x484edb
mov eax, dword [ebp - 0x18]
movzx ecx, word [edi + 2]
jmp 0x484f23
mov ecx, 2
mov eax, 1
lea edi, [edi + ecx*2]
test eax, eax
jne 0x48ae77
cmp word [edi], 0x71
je 0x48ae77
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
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 0x484f78
or eax, 0x10000
add edi, 4
mov dword [ebx + 0x94], eax
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
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 0x484fa0
lea eax, [edx + 2]
mov dword [ebp + 0xc], eax
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
cmp dword [ebx + 0x9c], 1
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0xc], eax
jne 0x484fca
mov esi, 1
mov dword [ebx + 0x9c], edx
jmp 0x484fcc
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.0040a740
mov ecx, eax
add esp, 0x14
cmp ecx, 1
je 0x485045
cmp ecx, 0xfffffc19
je 0x485045
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0xb0], eax
cmp ecx, 0xfffffc20
jne 0x48502d
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
cmp dword [ebx + 0x80], eax
jae 0x484a40
cmp word [edi], 0x71
je 0x485035
cmp word [eax], 0x71
jne 0x484a40
jmp 0x485035
test ecx, ecx
jne 0x484a40
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x484fcc
jmp 0x48504e
mov eax, dword [ebx + 0x80]
mov dword [ebp + 8], eax
cmp word [edi], 0x72
je case.0x40a7c0.151
test esi, esi
jne 0x40a8e2
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x485060
mov eax, dword [ebx + 0x90]
add edi, 4
mov dword [ebp - 0x38], edi
mov dword [ebp + 0xc], eax
jmp 0x40a7a0
cmp dword [ebx + 0x9c], 1
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0xc], eax
jne 0x4850a1
mov esi, 1
mov dword [ebx + 0x9c], edx
jmp 0x4850a3
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.0040a740
mov ecx, eax
mov eax, dword [ebp - 0xc]
add esp, 0x14
mov dword [ebx + 0xb0], eax
cmp ecx, 0xfffffc20
jg 0x4850ff
jne 0x485114
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
cmp dword [ebx + 0x80], eax
jae 0x48512f
cmp word [edi], 0x71
je 0x4850ef
cmp word [eax], 0x71
jne 0x48512f
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x4850a3
jmp 0x48513d
mov eax, ecx
sub eax, 0
je 0x4850ef
dec eax
je case.0x40a7c0.151
mov eax, ecx
jmp 0x40a8e7
cmp ecx, 0xfffffc19
je case.0x40a7c0.151
lea eax, [ecx + 0x3e4]
cmp eax, 3
ja 0x484a40
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x48512f
test esi, esi
jne 0x40a8e2
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
cmp dword [ebp - 0x20], edx
je 0x485194
movzx ecx, word [edi + 2]
test ecx, ecx
jle 0x4851ae
mov eax, dword [ebp - 8]
sub eax, 2
dec ecx
mov dword [ebp - 8], eax
cmp eax, dword [ebx + 0x78]
jb case.0x40a7c0.151
mov ax, word [eax]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
mov eax, dword [ebp - 8]
jne 0x48518e
sub eax, 2
mov dword [ebp - 8], eax
test ecx, ecx
jg 0x48515d
jmp 0x4851b1
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.0x40a7c0.151
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x88]
jae 0x4851bf
mov dword [ebx + 0x88], eax
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
mov ecx, dword [0x4c44ec]
test ecx, ecx
je 0x485291
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.0x40a7c0.151
js 0x40a8e7
add edi, 8
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
movzx eax, word [edi + 2]
mov ecx, dword [ebx + 0x74]
lea esi, [ecx + eax*2]
cmp esi, ecx
jne 0x4852ae
xor edx, edx
jmp 0x4852b2
movzx edx, word [esi + 4]
mov ecx, dword [ebx + 0xa8]
test ecx, ecx
je 0x4852d9
mov eax, dword [ebp - 8]
cmp edx, dword [ecx + 4]
jne 0x4852d3
cmp eax, dword [ecx + 0x14]
jne 0x4852d3
mov eax, 0xffffffe6
jmp 0x40a8e7
mov ecx, dword [ecx]
test ecx, ecx
jne 0x4852bf
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 0x485319
lea eax, [ebp - 0x14c]
mov dword [ebp - 0x50], eax
jmp 0x485338
lea eax, [ecx*4]
push eax
call dword [0x4bcddc]
add esp, 4
mov dword [ebp - 0x50], eax
test eax, eax
je 0x48b06b
mov ecx, dword [ebp - 0x4c]
shl ecx, 2
push ecx
push dword [ebx + 0xc]
push eax
call fcn.00420710
mov eax, 0x82
add esp, 0xc
cmp word [esi], ax
sbb eax, eax
inc eax
mov dword [ebp - 0x30], eax
test eax, eax
je 0x485364
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 + 0x49f528]
push dword [ebp + 0xc]
lea edx, [esi + eax*2]
push dword [ebp + 8]
call fcn.0040a740
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.00420710
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 0x485401
cmp eax, 0xfffffc19
je 0x485401
cmp eax, 0xfffffc1c
jl 0x4853d6
cmp eax, 0xfffffc20
jle case.0x40a7c0.151
test eax, eax
jne 0x48b048
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 0x48b01f
mov eax, dword [ebp - 0x30]
jmp 0x485356
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je 0x485418
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 0x40a7a0
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x48542f
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
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 0x485450
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.0040a740
add esp, 0x14
test eax, eax
je 0x40a7a0
jmp 0x40a8e7
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x485488
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
movzx esi, word [edi + 2]
add edi, 2
mov dword [ebp - 0x10], 1
cmp esi, 0x80
je 0x4854c3
cmp esi, 0x85
jne 0x485632
movzx edx, word [edi + 4]
mov dword [ebp - 0x18], edx
lea eax, [edx + edx]
cmp eax, dword [ebx + 0x14]
jge case.0x40a7c0.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 0x485536
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 + 0x49f528]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.0040a740
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1a
jne 0x48558f
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 0x485507
cmp ecx, 0xfffffc20
jne 0x4855bc
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
cmp dword [ebx + 0x80], eax
jae 0x484a40
cmp word [edi], 0x71
je 0x4855c4
cmp word [eax], 0x71
jne 0x484a40
jmp 0x4855c4
test ecx, ecx
jne 0x484a40
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 0x485510
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x48560e
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 0x487301
test eax, eax
je case.0x40a7c0.151
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
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 0x48565e
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 + 0x49f528]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.0040a740
mov ecx, eax
add esp, 0x14
cmp ecx, 0xfffffc1a
jne 0x4856b3
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 0x48564c
cmp ecx, 0xfffffc20
jne 0x4856e0
movzx eax, word [edi + 2]
lea eax, [edi + eax*2]
cmp dword [ebx + 0x80], eax
jae 0x484a40
cmp word [edi], 0x71
je 0x4856e8
cmp word [eax], 0x71
jne 0x484a40
jmp 0x4856e8
test ecx, ecx
jne 0x484a40
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
jne 0x485704
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x94], eax
jmp 0x48564c
cmp dword [ebp - 0x30], 0
jne 0x487301
cmp dword [ebp - 0x10], 0
je case.0x40a7c0.151
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
mov edx, dword [ebp + 0x14]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
mov dword [ebp + 0x14], edx
jmp 0x40a84d
cmp eax, 0x77
jb 0x40a859
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 0x40a8e2
cmp dword [eax + 4], ecx
jne 0x40ac7b
mov eax, dword [ebp - 8]
mov dword [ebx + 0x84], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0x80], eax
mov eax, 1
jmp 0x40a8e7
mov ecx, dword [ebp - 0x10]
or eax, 0x10000
mov dword [ebx + 0x94], eax
jmp 0x40a895
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 0x40aca2
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 0x40aca2
mov eax, dword [ebp - 8]
cmp eax, ecx
je 0x40a8a2
movzx ecx, word [edi]
cmp ecx, 0x75
je 0x48b0df
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 0x48ae8e
mov esi, dword [ebp - 8]
lea edx, [edi + 4]
mov ecx, esi
call fcn.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov edi, dword [ebp - 0x18]
movzx eax, word [edi]
cmp eax, 0x7b
je 0x48b075
mov ecx, 0x82
cmp ax, cx
jb 0x40a80b
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.0040a740
add esp, 0x14
jmp 0x40a8e7
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x48], edx
je 0x485855
cmp eax, dword [ebx + 0x78]
je case.0x40a7c0.151
cmp eax, dword [ebx + 0x78]
jne case.0x40a7c0.151
add edi, 2
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x48], edx
je 0x48587a
cmp eax, dword [ebx + 0x78]
je case.0x40a7c0.151
mov ecx, dword [ebx + 0x78]
cmp eax, ecx
je 0x40aa96
cmp eax, dword [ebx + 0x7c]
je case.0x40a7c0.151
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x4858bd
cmp eax, ecx
jbe case.0x40a7c0.151
push dword [ebp - 0x20]
lea eax, [ebx + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.00472713
add esp, 0xc
test eax, eax
je case.0x40a7c0.151
jmp 0x40aa96
mov esi, dword [ebx + 0x1c]
lea edx, [esi + esi]
lea eax, [ecx + edx]
cmp dword [ebp - 8], eax
jb case.0x40a7c0.151
mov ecx, dword [ebp - 8]
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [ebx + 0x34]
jne case.0x40a7c0.151
cmp esi, 1
je 0x40aa96
mov ax, word [ecx + 2]
cmp ax, word [ebx + 0x36]
jne case.0x40a7c0.151
jmp 0x40aa96
mov ecx, dword [ebx + 0x98]
mov eax, dword [ebx + 0x78]
lea eax, [eax + ecx*2]
cmp dword [ebp - 8], eax
jne case.0x40a7c0.151
add edi, 2
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
mov eax, dword [ebp - 8]
add edi, 2
mov dword [ebp + 8], eax
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
mov ecx, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x4859f3
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x4859bc
push dword [ebp - 0x20]
lea eax, [ebx + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.0040939c
add esp, 0xc
test eax, eax
jne 0x40aa96
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
je case.0x40a7c0.151
add eax, 2
cmp eax, dword [ebx + 0x7c]
jb case.0x40a7c0.151
cmp dword [ebx + 0x18], 0
jne case.0x40a7c0.151
cmp dword [ebx + 0x1c], 2
jne case.0x40a7c0.151
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne case.0x40a7c0.151
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle case.0x40a7c0.151
mov eax, 0xfffffff4
jmp 0x40a8e7
mov edx, dword [ebx + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x485961
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne 0x48595e
cmp edx, 1
je 0x40aa96
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [ebx + 0x36]
jne 0x48595e
jmp 0x40aa96
cmp dword [ebx + 0x4c], edx
jne case.0x40a7c0.151
cmp dword [ebx + 0x8c], edx
jmp 0x485a0b
cmp dword [ebx + 0x8c], 0
je 0x40aa96
cmp eax, dword [ebx + 0x88]
jbe 0x40aa96
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
add edi, 2
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
cmp dword [ebx + 0x4c], edx
jne case.0x40a7c0.151
cmp dword [ebx + 0x5c], edx
je case.0x40a7c0.23
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jb case.0x40a7c0.151
cmp dword [ebx + 0x8c], edx
jmp 0x485a0b
mov ecx, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x485a04
mov edx, dword [ebx + 0x18]
lea esi, [ebx + 0x1c]
test edx, edx
je 0x485a86
push dword [ebp - 0x20]
push esi
push ecx
mov ecx, eax
call fcn.0040939c
add esp, 0xc
test eax, eax
jne 0x485abb
jmp 0x48595e
mov edx, dword [esi]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x485961
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne 0x48595e
cmp edx, 1
je 0x485abb
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [ebx + 0x36]
jne 0x48595e
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 0x485961
jmp 0x485a04
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x20], edx
je 0x485c86
cmp eax, dword [ebx + 0x78]
je 0x485bbe
lea edx, [eax - 2]
mov ecx, 0xfc00
mov ax, word [edx]
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x485b05
sub edx, 2
cmp edx, dword [ebx + 0x88]
jae 0x485b13
mov dword [ebx + 0x88], edx
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485b3e
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 0x485ba0
cmp ecx, 0x5f
jne 0x485b51
mov eax, dword [ebp - 8]
lea esi, [ecx - 0x5e]
jmp 0x485bc0
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad468]
shl eax, 7
and ecx, 0x8000007f
jns 0x485b73
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x485b96
cmp eax, 3
jne 0x485bbb
mov eax, dword [ebp - 8]
mov esi, 1
jmp 0x485bc0
cmp ecx, 0x100
jae 0x485bbb
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je 0x485bbb
mov eax, dword [ebp - 8]
mov esi, 1
jmp 0x485bc0
mov eax, dword [ebp - 8]
xor esi, esi
cmp eax, dword [ebx + 0x7c]
jae 0x485c28
movzx ecx, word [eax]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485bf3
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 0x485c6f
cmp ecx, 0x5f
je 0x485daf
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad468]
shl eax, 7
and ecx, 0x8000007f
js 0x485d5b
jmp 0x485d60
cmp dword [ebx + 0x8c], 0
je 0x485c4d
cmp eax, dword [ebx + 0x88]
jbe 0x485c4d
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
xor ecx, ecx
mov ax, word [edi]
add edi, 2
mov dword [ebp - 0x38], edi
cmp ax, 5
jne 0x485db9
cmp ecx, esi
jne 0x40a7a0
jmp case.0x40a7c0.151
cmp ecx, 0x100
jae 0x485c4d
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
jne 0x485daf
jmp 0x485c4d
cmp eax, dword [ebx + 0x78]
je 0x485d25
cmp eax, dword [ebx + 0x88]
ja 0x485ca3
add eax, 0xfffffffe
mov dword [ebx + 0x88], eax
mov eax, dword [ebp - 8]
movzx ecx, word [eax - 2]
cmp dword [ebx + 0x58], edx
je 0x485d05
cmp ecx, 0x5f
jne 0x485cb6
lea esi, [ecx - 0x5e]
jmp 0x485d27
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad468]
shl eax, 7
and ecx, 0x8000007f
jns 0x485cd8
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x485cfb
cmp eax, 3
jne 0x485d22
mov eax, dword [ebp - 8]
mov esi, 1
jmp 0x485d27
mov edx, 0xff
cmp cx, dx
ja 0x485d25
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je 0x485d22
mov eax, dword [ebp - 8]
mov esi, 1
jmp 0x485d27
mov eax, dword [ebp - 8]
xor esi, esi
cmp eax, dword [ebx + 0x7c]
jae 0x485c28
cmp dword [ebx + 0x58], 0
je 0x485d8f
movzx ecx, word [eax]
cmp ecx, 0x5f
je 0x485daf
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad468]
shl eax, 7
and ecx, 0x8000007f
jns 0x485d60
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x485daf
cmp eax, 3
jne 0x485c4d
lea ecx, [eax - 2]
jmp 0x485c4f
movzx eax, word [eax]
mov ecx, 0xff
cmp ax, cx
ja 0x485c4d
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je 0x485c4d
mov ecx, 1
jmp 0x485c4f
cmp ecx, esi
je 0x40a7a0
jmp case.0x40a7c0.151
mov edx, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x7c]
test edx, edx
je 0x485df5
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0x20]
cmp eax, ecx
jae 0x485e2d
push esi
lea eax, [ebx + 0x1c]
push eax
push ecx
mov ecx, dword [ebp - 8]
call fcn.0040939c
add esp, 0xc
test eax, eax
jne case.0x40a7c0.151
jmp 0x485e2a
mov edx, dword [ebx + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
mov eax, dword [ebp - 8]
cmp eax, ecx
ja 0x485e27
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne 0x485e27
cmp edx, 1
je case.0x40a7c0.151
mov eax, dword [ebp - 8]
mov ax, word [eax + 2]
cmp ax, word [ebx + 0x36]
je case.0x40a7c0.151
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
je 0x485e6d
add eax, 2
cmp eax, dword [ebx + 0x7c]
mov eax, dword [ebp - 8]
jb 0x485e6d
cmp dword [ebx + 0x18], 0
jne 0x485e6d
cmp dword [ebx + 0x1c], 2
jne 0x485e6d
mov ax, word [eax]
cmp ax, word [ebx + 0x34]
jne 0x485e6a
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
mov eax, dword [ebp - 8]
mov ecx, dword [ebx + 0x7c]
cmp eax, ecx
jae 0x40b004
add eax, 2
mov dword [ebp - 8], eax
test esi, esi
je 0x40aa96
cmp eax, ecx
jae 0x40aa96
mov ax, word [eax]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x40aa96
add dword [ebp - 8], 2
jmp 0x40aa96
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b016
add eax, 2
mov dword [ebp - 8], eax
jmp 0x40aa96
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b016
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x485f0f
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485f0f
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 0x40aa96
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
jne case.0x40a7c0.151
jmp 0x40aa96
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b016
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x485f75
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485f75
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.0x40a7c0.151
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
je case.0x40a7c0.151
jmp 0x40aa96
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b016
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x485fdb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x485fdb
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 0x40aa96
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
jne case.0x40a7c0.151
jmp 0x40aa96
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b016
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x486041
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x486041
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.0x40a7c0.151
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
je case.0x40a7c0.151
jmp 0x40aa96
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b016
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x4860a7
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4860a7
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 0x40aa96
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40a7c0.151
jmp 0x40aa96
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b016
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x48610d
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48610d
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.0x40a7c0.151
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je case.0x40a7c0.151
jmp 0x40aa96
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 0x40ac20
cmp ecx, 0xa
je 0x40aa96
jbe case.0x40a7c0.151
cmp ecx, 0xc
ja case.0x40a7c0.151
jmp 0x4861b3
cmp dword [ebx + 0x8c], 0
je 0x40aa96
cmp eax, dword [ebx + 0x88]
jbe 0x40aa96
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
jmp 0x40aa96
cmp ecx, 0x85
je 0x4861b3
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40a7c0.151
cmp dword [ebx + 0x6c], 0
jne case.0x40a7c0.151
jmp 0x40aa96
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b016
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x48620a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48620a
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 0x48624e
je case.0x40a7c0.151
cmp ecx, 0xa0
ja 0x48623d
je case.0x40a7c0.151
cmp ecx, 9
je case.0x40a7c0.151
cmp ecx, 0x20
je case.0x40a7c0.151
jmp 0x40aa96
cmp ecx, 0x1680
je case.0x40a7c0.151
jmp 0x40aa96
cmp ecx, 0x205f
ja 0x486285
je case.0x40a7c0.151
cmp ecx, 0x2000
jb 0x40aa96
cmp ecx, 0x200a
jbe case.0x40a7c0.151
cmp ecx, 0x202f
je case.0x40a7c0.151
jmp 0x40aa96
cmp ecx, 0x3000
je case.0x40a7c0.151
jmp 0x40aa96
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b016
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x4862de
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4862de
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 0x486322
je 0x40aa96
cmp ecx, 0xa0
ja 0x486311
je 0x40aa96
cmp ecx, 9
je 0x40aa96
cmp ecx, 0x20
jne case.0x40a7c0.151
jmp 0x40aa96
cmp ecx, 0x1680
jne case.0x40a7c0.151
jmp 0x40aa96
cmp ecx, 0x205f
ja 0x486359
je 0x40aa96
cmp ecx, 0x2000
jb case.0x40a7c0.151
cmp ecx, 0x200a
jbe 0x40aa96
cmp ecx, 0x202f
jne case.0x40a7c0.151
jmp 0x40aa96
cmp ecx, 0x3000
jne case.0x40a7c0.151
jmp 0x40aa96
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b016
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x4863b2
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4863b2
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 0x4863d7
je case.0x40a7c0.151
cmp ecx, 0xa
jb 0x40aa96
cmp ecx, 0xd
jbe case.0x40a7c0.151
jmp 0x40aa96
cmp ecx, 0x2028
jb 0x40aa96
cmp ecx, 0x2029
jbe case.0x40a7c0.151
jmp 0x40aa96
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b016
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 8], eax
cmp dword [ebp - 0x20], edx
je 0x48643c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48643c
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 0x48645b
je 0x40aa96
lea eax, [ecx - 0xa]
cmp eax, 3
ja case.0x40a7c0.151
jmp 0x40aa96
lea eax, [ecx - 0x2028]
cmp eax, 1
ja case.0x40a7c0.151
jmp 0x40aa96
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 0x40ad06
cmp ecx, 0xa
ja case.default.0x4864a0
jmp dword [ecx*4 + 0x48d0d6]
cmp esi, 0xf
je case.0x40a7c0.151
jmp 0x40ad7b
mov al, byte [eax*8 + 0x4ac0c9]
cmp al, 9
je 0x4864cc
cmp al, 5
je 0x4864cc
cmp al, 8
je 0x4864cc
xor ecx, ecx
jmp 0x4864d5
mov ecx, 1
jmp 0x4864d5
xor ecx, ecx
xor eax, eax
cmp esi, 0xf
sete al
cmp ecx, eax
je case.0x40a7c0.151
jmp 0x40ad7b
movzx ecx, byte [eax*8 + 0x4ac0c9]
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.0x40a7c0.151
jmp 0x40ad7b
movzx eax, byte [eax*8 + 0x4ac0c9]
jmp 0x486529
movzx eax, byte [eax*8 + 0x4ac0c8]
xor ecx, ecx
cmp word [edi + 4], ax
setne cl
xor eax, eax
cmp esi, 0x10
sete al
cmp ecx, eax
je case.0x40a7c0.151
jmp 0x40ad7b
movzx eax, byte [eax*8 + 0x4ac0c9]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x4864cc
cmp eax, 3
je 0x4864cc
xor ecx, ecx
jmp 0x4864d5
movzx eax, byte [eax*8 + 0x4ac0c9]
cmp dword [eax*4 + 0x4b6cf0], 6
je 0x4864cc
cmp edx, 9
je 0x4864cc
cmp edx, 0xa
jmp 0x486596
cmp edx, 0xb
je 0x4864cc
cmp edx, 0xc
je 0x4864cc
cmp edx, 0xd
jmp 0x4865ad
cmp edx, 0x5f
je 0x4864cc
jmp 0x4864d3
movzx eax, byte [eax*8 + 0x4ac0c9]
cmp dword [eax*4 + 0x4b6cf0], 6
je 0x4864cc
cmp edx, 9
je 0x4864cc
cmp edx, 0xa
je 0x4864cc
jmp 0x486593
movzx eax, byte [eax*8 + 0x4ac0c9]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x4864cc
cmp eax, 3
je 0x4864cc
jmp 0x4865aa
cmp edx, 0x24
je 0x4864cc
cmp edx, 0x40
je 0x4864cc
cmp edx, 0x60
je 0x4864cc
cmp edx, 0xa0
jb 0x486634
cmp edx, 0xd7ff
jbe 0x4864cc
cmp edx, 0xe000
jae 0x4864cc
jmp 0x4864d3
cmp esi, 0x10
je case.0x40a7c0.151
jmp 0x40ad7b
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 0x40a9ce
movzx eax, word [ebx + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov esi, 2
jmp 0x40aa2f
cmp eax, esi
jb 0x40aa96
jmp 0x485a11
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 0x4866da
mov eax, dword [ebx + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x4866da
mov esi, dword [eax + ecx*4 + 4]
sub esi, dword [eax + ecx*4]
jmp 0x4866e4
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.0x4866fd
movzx eax, byte [eax + 0x48d10a]
jmp dword [eax*4 + 0x48d102]
movzx eax, word [edi]
movsx edx, byte [eax + 0x49f4be]
add eax, 0xffffff9e
movzx ecx, al
and ecx, 1
mov dword [ebp - 0xc], ecx
movsx ecx, byte [eax + 0x49f518]
add edi, 2
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x18], edx
test edx, edx
jne 0x486762
mov edx, SysAllocStringLen
jmp 0x48675f
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, SysAllocStringLen
cmove edx, eax
add edi, 6
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x18], edx
test esi, esi
je 0x40a7a0
jns 0x486774
test ecx, ecx
je 0x40a7a0
mov eax, dword [ebp - 8]
mov dword [ebp - 0x30], 1
cmp ecx, 1
jl 0x4867b9
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x34]
push ebx
push esi
mov edx, eax
call fcn.00472478
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x48b231
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 0x486783
mov edx, dword [ebp - 0x18]
cmp ecx, edx
je 0x40a7a0
cmp dword [ebp - 0xc], 0
je 0x48b182
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x10], eax
jge case.0x40a7c0.151
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x34]
push ebx
push dword [ebp - 0x2c]
mov edx, esi
call fcn.00472478
add esp, 0xc
test eax, eax
js 0x48b15c
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.0040a740
add esp, 0x14
test eax, eax
je 0x4867f1
jmp 0x40a8e7
push edx
mov edx, dword [ebp - 8]
push ebx
push esi
call fcn.00472478
mov ecx, eax
add esp, 0xc
test ecx, ecx
js 0x48b231
mov eax, dword [ebp - 8]
lea eax, [eax + ecx*2]
mov dword [ebp - 8], eax
jmp 0x40a7a0
movzx ecx, word [edi + 4]
movzx eax, word [edi + 2]
xor edx, edx
cmp word [edi], 0x69
mov dword [ebp - 0xc], SysAllocStringLen
sete dl
test ecx, ecx
cmove ecx, dword [ebp - 0xc]
add edi, 6
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x38], edi
jmp 0x40a918
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 0x40a969
cmp esi, 0x6a
je case.0x40a7c0.151
jmp 0x40aaa1
cmp eax, 1
mov eax, dword [ebp - 8]
mov dword [ebp - 0x2c], 1
jl 0x40aaba
mov ecx, dword [ebp - 0x34]
cmp eax, dword [ebx + 0x7c]
jae 0x40b004
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 0x48690c
cmp esi, 0x6a
je case.0x40a7c0.151
jmp 0x486935
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.0x40a7c0.151
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x34]
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], ecx
jle 0x4868e1
jmp 0x40aab7
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.0x486967
movzx eax, byte [eax + 0x48d11a]
jmp dword [eax*4 + 0x48d112]
lea eax, [ecx - 0x62]
movzx ecx, al
movsx edx, byte [eax + 0x49f518]
movsx eax, byte [eax + 0x49f520]
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 0x4869d4
mov eax, SysAllocStringLen
jmp 0x4869d1
movzx eax, word [edi + 4]
xor ecx, ecx
cmp edx, 0x69
movzx edx, word [edi + 2]
sete cl
test eax, eax
mov esi, SysAllocStringLen
cmove eax, esi
add edi, 6
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x2c], ecx
jmp 0x4869ce
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 0x486a54
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b004
movzx esi, word [eax]
mov ecx, dword [ebp - 0x20]
add eax, 2
mov dword [ebp - 8], eax
test ecx, ecx
je 0x486a2a
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x486a2a
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.0047287f
add esp, 4
test eax, eax
je case.0x40a7c0.151
mov esi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x18]
inc esi
mov dword [ebp - 0x30], esi
cmp esi, edx
jle 0x4869e0
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x10]
cmp edx, eax
je 0x40a7a0
mov esi, dword [ebp - 8]
test ecx, ecx
je 0x48b5af
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x18], eax
jge case.0x40a7c0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx edx, word [esi]
mov ecx, dword [ebp - 0x20]
add esi, 2
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x48b553
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b553
movzx eax, word [esi]
and edx, 0x3ff
and eax, 0x3ff
shl edx, 0xa
or eax, edx
add eax, 0x10000
add esi, 2
jmp 0x48b556
mov eax, dword [ebx + 0x7c]
mov ecx, dword [ebp - 8]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 2
jl 0x48b6ea
mov ax, word [ecx]
add ecx, 2
mov dword [ebp - 8], ecx
cmp word [edi + 2], ax
jne case.0x40a7c0.151
add edi, 4
jmp 0x40aa99
movzx eax, word [edi + 2]
and esi, 0x3ff
and eax, 0x3ff
shl esi, 0xa
or esi, eax
add esi, 0x10000
mov edx, 2
jmp 0x40abaf
add eax, 2
mov dword [ebp - 8], eax
mov eax, ecx
and eax, 0xfc00
mov dword [ebp - 0x30], ecx
cmp eax, 0xd800
jne 0x486b72
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 0x40a7a0
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4ad468]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x486ba3
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5c8]
mov eax, dword [eax*8 + 0x4ac0cc]
add eax, esi
cmp dword [ebp - 0x30], eax
je 0x40a7a0
jmp case.0x40a7c0.151
movzx ecx, word [edi + 2]
mov edx, 0xff
cmp cx, dx
ja 0x486bde
mov eax, dword [ebx + 0x3c]
movzx edx, byte [eax + ecx]
mov eax, dword [ebp - 8]
jmp 0x486be0
mov edx, ecx
movzx ecx, word [eax]
mov esi, 0xff
cmp cx, si
ja 0x486bf7
mov eax, dword [ebx + 0x3c]
movzx ecx, byte [eax + ecx]
mov eax, dword [ebp - 8]
cmp edx, ecx
jne case.0x40a7c0.151
add eax, 2
mov dword [ebp - 8], eax
add edi, 4
jmp 0x40aa99
movzx eax, word [edi + 2]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x2c]
add edi, 4
jmp 0x486ce7
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 0x486c4c
cmp ecx, 0x35
je 0x486c4c
xor eax, eax
add edi, 4
jmp 0x486ce4
mov eax, 1
add edi, 4
jmp 0x486ce4
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x34], SysAllocStringLen
add edi, 2
jmp 0x486ce7
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x34], SysAllocStringLen
add edi, 2
jmp 0x486ce7
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 0x486ce7
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 + 0x49f518]
movsx ecx, byte [ecx + 0x49f520]
mov dword [ebp - 0x1c], ebx
add edi, 2
and eax, 1
mov ebx, SysAllocStringLen
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 0x486f57
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 0x486d3a
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 0x486d3f
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 0x486f68
cmp esi, 0x2e
jb 0x486dab
mov esi, dword [ebp - 0x18]
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4ad468]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x486d81
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5c8]
mov ecx, dword [eax*8 + 0x4ac0cc]
add ecx, esi
cmp ecx, esi
je 0x486da8
lea edx, [ebp - 0x6c]
call fcn.004727cc
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
jmp 0x486db2
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x18], 0
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0xc], 1
cmp esi, 1
jl 0x486e38
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
cmp ecx, eax
ja 0x486dec
mov eax, dword [ebp - 0x10]
add eax, eax
push eax
push dword [ebp - 0x28]
push ecx
call fcn.00420df3
add esp, 0xc
test eax, eax
jne 0x486de9
mov eax, dword [ebp - 0x14]
jmp 0x486e27
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
test edx, edx
jle 0x48b704
lea eax, [edx + edx]
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebp - 0x30]
cmp ecx, eax
ja 0x48b704
lea eax, [edx + edx]
push eax
lea eax, [ebp - 0x6c]
push eax
push ecx
call fcn.00420df3
add esp, 0xc
test eax, eax
jne 0x48b701
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 0x486dc1
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
cmp esi, ecx
je 0x40a7a0
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x48b71f
mov eax, dword [ebp - 8]
mov dword [ebp - 0x30], eax
cmp esi, ecx
jge 0x486ef4
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
cmp ecx, eax
ja 0x486e87
mov eax, dword [ebp - 0x10]
add eax, eax
push eax
push dword [ebp - 0x28]
push ecx
call fcn.00420df3
add esp, 0xc
test eax, eax
jne 0x486e84
mov eax, dword [ebp - 0x14]
jmp 0x486eb6
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
test edx, edx
jle 0x486ec1
lea eax, [edx + edx]
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0x7c]
sub eax, dword [ebp - 0xc]
cmp ecx, eax
ja 0x486ec1
lea eax, [edx + edx]
push eax
lea eax, [ebp - 0x6c]
push eax
push ecx
call fcn.00420df3
add esp, 0xc
test eax, eax
jne 0x486ec1
mov eax, dword [ebp - 0xc]
add dword [ebp - 8], eax
inc esi
cmp esi, dword [ebp - 0x34]
jl 0x486e5c
jmp 0x486eee
cmp dword [ebx + 0x8c], 0
mov eax, dword [ebp - 8]
je 0x486ef1
cmp eax, dword [ebx + 0x7c]
jb 0x486eee
cmp eax, dword [ebx + 0x88]
jbe 0x486eee
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x40a7a0
cmp eax, dword [ebp - 0x30]
je 0x40a80e
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
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 0x486f4d
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x30]
jne 0x486f08
jmp 0x40a80e
movzx ebx, word [edi]
add edi, 2
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x38], edi
jmp 0x486f6b
mov eax, dword [ebp - 0x2c]
cmp esi, 0x2e
jb 0x4870d0
mov esi, dword [ebp - 0x18]
test ecx, ecx
je 0x486fc1
cmp esi, 0x7f
jbe 0x486fc1
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4ad468]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x486fa3
dec eax
or eax, 0xffffff80
inc eax
mov edx, dword [ebp - 0x24]
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5c8]
mov eax, dword [eax*8 + 0x4ac0cc]
add eax, esi
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x2c]
jmp 0x486fd6
cmp esi, 0xff
ja 0x486fd3
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 0x487019
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx edx, word [esi]
cmp dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x24]
je 0x48700b
movzx ebx, word [esi]
cmp dword [ebp - 0x14], ebx
mov ebx, dword [ebp + 0x10]
jne case.0x40a7c0.151
inc dword [ebp - 0x10]
add esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x10], ecx
jle 0x486fe8
cmp ecx, dword [ebp - 0x34]
je 0x40a7a0
test eax, eax
jne 0x48b7e7
mov eax, dword [ebp - 8]
mov esi, eax
mov dword [ebp - 0x10], esi
cmp ecx, dword [ebp - 0x34]
jge 0x48708a
mov esi, dword [ebp - 0x18]
cmp eax, dword [ebx + 0x7c]
jae 0x487062
movzx edx, word [eax]
cmp esi, edx
mov edx, dword [ebp - 0x24]
je 0x487054
movzx edx, word [eax]
cmp dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x24]
jne 0x487087
add eax, 2
inc ecx
mov dword [ebp - 8], eax
cmp ecx, dword [ebp - 0x34]
jl 0x48703a
jmp 0x487087
cmp dword [ebx + 0x8c], 0
je 0x487087
cmp eax, dword [ebx + 0x88]
jbe 0x487087
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
mov esi, dword [ebp - 0x10]
test edx, edx
jne 0x40a7a0
cmp eax, esi
je 0x40a80e
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.0040a740
sub esi, 2
add esp, 0x14
mov dword [ebp - 8], esi
test eax, eax
jne 0x40a8e7
cmp esi, dword [ebp - 0x10]
jne 0x48709d
jmp 0x40a80e
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xc], 1
cmp ecx, 1
jge 0x4870e4
mov esi, dword [ebp - 8]
jmp 0x487113
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b004
movzx eax, word [eax]
mov esi, dword [ebp - 8]
add esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x18], eax
jne case.0x40a7c0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, ecx
jle 0x4870e4
mov eax, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x34]
je 0x40a7a0
test eax, eax
jne 0x48b85b
mov eax, dword [ebp - 8]
mov esi, eax
mov dword [ebp - 0x10], esi
cmp ecx, dword [ebp - 0x34]
jge 0x487153
mov esi, dword [ebp - 0x18]
cmp eax, dword [ebx + 0x7c]
jae 0x487199
movzx eax, word [eax]
cmp esi, eax
jne 0x48714d
add dword [ebp - 8], 2
mov eax, dword [ebp - 8]
inc ecx
cmp ecx, dword [ebp - 0x34]
jl 0x487134
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
test edx, edx
jne 0x40a7a0
cmp eax, esi
je 0x40a80e
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.0040a740
sub esi, 2
add esp, 0x14
mov dword [ebp - 8], esi
test eax, eax
jne 0x40a8e7
cmp esi, dword [ebp - 0x10]
jne 0x487166
jmp 0x40a80e
cmp dword [ebx + 0x8c], 0
je 0x487150
cmp eax, dword [ebx + 0x88]
jbe 0x487150
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
jmp 0x487150
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b016
cmp dword [ebp - 0x20], edx
je 0x4872d0
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 0x487212
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 0x487253
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 0x487265
cmp edx, ecx
jne 0x40a7a0
jmp case.0x40a7c0.151
cmp edx, 0x7f
jbe 0x4872a8
mov eax, edx
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 7
movzx ecx, byte [eax + 0x4ad468]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x487290
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5c8]
mov ecx, dword [ebp - 0x30]
mov eax, dword [eax*8 + 0x4ac0cc]
add eax, edx
jmp 0x4872bb
cmp edx, 0xff
ja 0x4872b9
mov eax, dword [ebx + 0x40]
movzx eax, byte [eax + edx]
jmp 0x4872bb
mov eax, edx
cmp edx, ecx
je case.0x40a7c0.151
cmp eax, ecx
jne 0x40a7a0
jmp case.0x40a7c0.151
movzx edx, word [eax]
movzx ecx, word [edi + 2]
add eax, 2
mov dword [ebp - 8], eax
cmp ecx, edx
je case.0x40a7c0.151
cmp esi, 0x20
jne 0x487301
cmp ecx, 0xff
ja 0x4872f9
mov eax, dword [ebx + 0x40]
movzx ecx, byte [eax + ecx]
cmp ecx, edx
je case.0x40a7c0.151
add edi, 4
mov dword [ebp - 0x38], edi
jmp 0x40a7a0
movzx eax, word [edi + 2]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x2c]
add edi, 4
jmp 0x4873fb
movzx eax, word [edi + 2]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x34], eax
cmp ecx, 0x42
je 0x48733f
cmp ecx, 0x4f
je 0x48733f
xor eax, eax
add edi, 4
jmp 0x4873f8
mov eax, 1
add edi, 4
jmp 0x4873f8
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x34], SysAllocStringLen
add edi, 2
jmp 0x4873fb
mov eax, dword [ebp - 0x2c]
mov edx, 1
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x34], SysAllocStringLen
add edi, 2
jmp 0x4873fb
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 0x4873fb
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 0x4873fb
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 + 0x49f518]
movsx ecx, byte [ecx + 0x49f520]
mov dword [ebp - 0x1c], ebx
add edi, 2
and eax, 1
mov ebx, SysAllocStringLen
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 0x487444
mov eax, dword [ebp - 0x14]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487441
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 0x487753
mov esi, dword [ebp - 0x14]
test ecx, ecx
je 0x48749a
cmp esi, 0x7f
jbe 0x48749a
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, byte [eax + 0x4ad468]
mov eax, esi
shl ecx, 7
and eax, 0x8000007f
jns 0x48747c
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5c8]
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax*8 + 0x4ac0cc]
add eax, esi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x2c]
jmp 0x4874af
cmp esi, 0xff
ja 0x4874ac
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 0x4875b3
mov esi, dword [ebp - 0x1c]
cmp esi, 1
jl 0x487533
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b004
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 0x487510
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 0x487513
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], eax
je case.0x40a7c0.151
cmp dword [ebp - 0x10], eax
je case.0x40a7c0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, esi
jle 0x4874c6
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 0x40a7a0
test eax, eax
jne 0x48b8ca
mov eax, dword [ebp - 8]
mov esi, eax
mov dword [ebp - 0x18], esi
test ecx, ecx
je 0x4876b2
mov esi, dword [ebp - 0x1c]
cmp esi, dword [ebp - 0x34]
jge 0x487620
mov dword [ebp - 0xc], 1
cmp eax, dword [ebx + 0x7c]
jae 0x487683
movzx eax, word [eax]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x2c], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4875fb
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 0x4875fe
cmp dword [ebp - 0x1c], 1
jl 0x487533
mov esi, dword [ebp - 8]
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx ecx, word [esi]
cmp dword [ebp - 0x14], ecx
je case.0x40a7c0.151
movzx edx, word [esi]
cmp dword [ebp - 0x10], edx
je case.0x40a7c0.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 0x4875c0
jmp 0x487536
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x14], eax
je 0x48761d
cmp dword [ebp - 0x10], eax
je 0x48761d
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 0x487569
mov eax, dword [ebp - 8]
test edx, edx
jne 0x40a7a0
cmp eax, dword [ebp - 0x18]
je 0x40a80e
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
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 0x487679
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x18]
jne 0x487634
jmp 0x40a80e
cmp dword [ebx + 0x8c], 0
je 0x487620
cmp eax, dword [ebx + 0x88]
jbe 0x487620
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x487620
mov eax, 0xfffffff4
jmp 0x40a8e7
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x34]
jge 0x48770d
mov esi, dword [ebp - 0x14]
cmp eax, dword [ebx + 0x7c]
jae 0x4876e5
movzx ebx, word [eax]
cmp esi, ebx
mov ebx, dword [ebp + 0x10]
je 0x48770a
movzx edx, word [eax]
cmp dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x24]
je 0x48770a
add eax, 2
inc ecx
mov dword [ebp - 8], eax
cmp ecx, dword [ebp - 0x34]
jl 0x4876bd
jmp 0x48770a
cmp dword [ebx + 0x8c], 0
je 0x48770a
cmp eax, dword [ebx + 0x88]
jbe 0x48770a
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
mov esi, dword [ebp - 0x18]
test edx, edx
jne 0x40a7a0
cmp eax, esi
je 0x40a80e
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x18]
jne 0x487720
jmp 0x40a80e
mov dword [ebp - 0xc], 1
test ecx, ecx
je 0x487851
mov esi, dword [ebp - 0x1c]
cmp esi, 1
jl 0x4877d1
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b004
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 0x4877b7
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 0x4877ba
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x14], eax
je case.0x40a7c0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, esi
jle 0x48776a
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 0x40a7a0
test eax, eax
jne 0x48b9d9
mov eax, dword [ebp - 8]
mov esi, eax
mov dword [ebp - 0x18], esi
test ecx, ecx
je 0x487942
mov esi, dword [ebp - 0x1c]
cmp esi, dword [ebp - 0x34]
jge 0x4878b0
mov dword [ebp - 0xc], 1
cmp eax, dword [ebx + 0x7c]
jae 0x487913
movzx eax, word [eax]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x10], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487890
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 0x487893
cmp dword [ebp - 0x1c], 1
jl 0x4877d1
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b004
movzx eax, word [eax]
mov esi, dword [ebp - 8]
add esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x14], eax
je case.0x40a7c0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x1c]
jle 0x48785b
mov eax, dword [ebp - 0x2c]
jmp 0x4877d4
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x14], eax
je 0x4878ad
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 0x487807
mov eax, dword [ebp - 8]
test edx, edx
jne 0x40a7a0
cmp eax, dword [ebp - 0x18]
je 0x40a80e
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
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 0x487909
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x18]
jne 0x4878c4
jmp 0x40a80e
cmp dword [ebx + 0x8c], 0
je 0x4878b0
cmp eax, dword [ebx + 0x88]
jbe 0x4878b0
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x4878b0
mov eax, 0xfffffff4
jmp 0x40a8e7
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x34]
jge 0x48796c
mov esi, dword [ebp - 0x14]
cmp eax, dword [ebx + 0x7c]
jae 0x4879b2
movzx eax, word [eax]
cmp esi, eax
je 0x487966
add dword [ebp - 8], 2
mov eax, dword [ebp - 8]
inc ecx
cmp ecx, dword [ebp - 0x34]
jl 0x48794d
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0x18]
test edx, edx
jne 0x40a7a0
cmp eax, esi
je 0x40a80e
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x18]
jne 0x48797f
jmp 0x40a80e
cmp dword [ebx + 0x8c], 0
je 0x487969
cmp eax, dword [ebx + 0x88]
jbe 0x487969
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
jmp 0x487969
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 0x40aed7
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 0x40aed7
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 0x40aed0
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 0x40aed0
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 0x40aed7
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 0x40aed7
mov dword [ebp - 0x3c], 1
jmp 0x487a8e
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 0x40aef8
test ecx, ecx
js 0x488315
cmp ecx, 0xa
ja case.default.0x4864a0
jmp dword [ecx*4 + 0x48d122]
cmp dword [ebp - 0x3c], 0
jne case.0x40a7c0.151
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40af09
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], esi
test ecx, ecx
je 0x487b0d
and dword [ebp - 0x10], 0xfc00
cmp dword [ebp - 0x10], 0xd800
jne 0x487b0d
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 0x487ade
jmp 0x40af09
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x28], 1
cmp esi, 1
jl 0x40af06
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b004
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
test ecx, ecx
je 0x487b81
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487b81
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 + 0x4ad468]
shl eax, 7
and edx, 0x8000007f
jns 0x487ba6
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
cmp eax, 9
je 0x487bcb
cmp eax, 5
je 0x487bcb
cmp eax, 8
je 0x487bcb
xor eax, eax
jmp 0x487bd0
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a7c0.151
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, esi
jle 0x487b34
mov eax, dword [ebp - 0x2c]
jmp 0x40af06
mov dword [ebp - 0xc], 1
cmp esi, 1
jl 0x40af03
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b004
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 8], eax
je 0x487c49
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487c49
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 + 0x4ad468]
shl eax, 7
and ecx, 0x8000007f
jns 0x487c6b
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x40]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
cmp dword [eax*4 + 0x4b6cf0], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a7c0.151
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, esi
jle 0x487c00
mov eax, dword [ebp - 0x2c]
jmp 0x40af03
mov dword [ebp - 0xc], 1
cmp esi, 1
jl 0x40af03
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b004
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 8], eax
je 0x487d05
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487d05
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 + 0x4ad468]
shl eax, 7
and ecx, 0x8000007f
jns 0x487d27
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a7c0.151
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, esi
jle 0x487cbc
mov eax, dword [ebp - 0x2c]
jmp 0x40af03
mov dword [ebp - 0xc], 1
cmp esi, 1
jl 0x40af03
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b004
movzx ecx, word [eax]
add eax, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 8], eax
je 0x487dba
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487dba
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 + 0x4ad468]
shl eax, 7
and ecx, 0x8000007f
jns 0x487ddc
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c8]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a7c0.151
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, esi
jle 0x487d71
mov eax, dword [ebp - 0x2c]
jmp 0x40af03
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x28], 1
cmp esi, 1
jl 0x40af06
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b004
movzx edx, word [eax]
add eax, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
test ecx, ecx
je 0x487e76
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487e76
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 + 0x4ad468]
shl eax, 7
and edx, 0x8000007f
jns 0x487e9b
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x487ec2
cmp eax, 3
je 0x487ec2
xor eax, eax
jmp 0x487ec7
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a7c0.151
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, esi
jle 0x487e29
mov eax, dword [ebp - 0x2c]
jmp 0x40af06
mov dword [ebp - 0x28], 1
cmp esi, 1
jl 0x40af03
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b004
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 0x487f47
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x487f47
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 + 0x4ad468]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x487f6d
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
cmp dword [eax*4 + 0x4b6cf0], 6
je 0x487fa1
cmp edx, 9
je 0x487fa1
cmp edx, 0xa
je 0x487fa1
cmp edx, 0xc
je 0x487fa1
cmp edx, 0xd
je 0x487fa1
xor eax, eax
jmp 0x487fa6
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a7c0.151
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, dword [ebp - 0x14]
jle 0x487ef7
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x40af09
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x488dba
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], esi
je 0x488028
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x488028
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 + 0x4ad468]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x48804e
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
cmp dword [eax*4 + 0x4b6cf0], 6
je 0x488087
cmp edx, 9
je 0x488087
cmp edx, 0xa
je 0x488087
cmp edx, 0xb
je 0x488087
cmp edx, 0xc
je 0x488087
cmp edx, 0xd
je 0x488087
xor eax, eax
jmp 0x48808c
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a7c0.151
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, dword [ebp - 0x14]
jle 0x487fdd
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x40af09
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x488dba
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], esi
je 0x48810e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48810e
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 + 0x4ad468]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x488134
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x488160
cmp eax, 3
je 0x488160
cmp edx, 0x5f
je 0x488160
xor eax, eax
jmp 0x488165
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a7c0.151
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, dword [ebp - 0x14]
jle 0x4880c3
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x40af09
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x40af09
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x18], edx
mov dword [ebp - 8], esi
test ecx, ecx
je 0x4881f0
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4881ed
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 + 0x4af668]
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 0x488226
mov edx, dword [ebp - 0xc]
add dword [ebp - 0x10], 4
cmp dword [ebp - 0x18], edx
je 0x488244
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 0x48820a
cmp dword [ebp - 0x3c], 0
je case.0x40a7c0.151
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x4881a2
mov eax, dword [ebp - 0x2c]
jmp 0x40af09
cmp dword [ebp - 0x3c], 0
jne case.0x40a7c0.151
jmp 0x488230
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x40af09
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x18], edx
mov dword [ebp - 8], esi
test ecx, ecx
je 0x4882b7
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4882b4
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 0x4882eb
cmp dword [ebp - 0x18], 0x40
je 0x4882eb
cmp dword [ebp - 0x18], 0x60
je 0x4882eb
cmp dword [ebp - 0x18], 0xa0
jb 0x4882db
cmp dword [ebp - 0x18], 0xd7ff
jbe 0x4882eb
cmp dword [ebp - 0x18], 0xe000
mov dword [ebp - 0xc], 0
jb 0x4882f2
mov dword [ebp - 0xc], 1
mov ebx, dword [ebp - 0x3c]
cmp dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
je case.0x40a7c0.151
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x488269
mov eax, dword [ebp - 0x2c]
jmp 0x40af09
cmp dword [ebp - 0x34], 0x16
mov ecx, dword [ebp - 0x20]
jne 0x4884b3
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x10], 1
jl 0x40af09
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x28], eax
cmp esi, eax
jae 0x48b597
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], esi
test ecx, ecx
je 0x488383
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x488383
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 + 0x4ad468]
shl eax, 7
and edx, 0x8000007f
jns 0x4883a8
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5c8]
movzx edx, byte [eax*8 + 0x4ac0ca]
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0xc], edx
cmp esi, eax
jae 0x488472
mov ebx, dword [ebp - 0x20]
mov edi, edx
movzx ecx, word [esi]
mov dword [ebp - 0xc], 1
test ebx, ebx
je 0x48840a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48840a
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 + 0x4ad468]
shl eax, 7
and ecx, 0x8000007f
jns 0x48842c
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5c8]
movzx ecx, byte [eax*8 + 0x4ac0ca]
mov eax, 1
shl eax, cl
test dword [edi*4 + 0x49f44c], eax
je 0x488463
mov eax, dword [ebp - 0xc]
mov edi, ecx
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x28]
cmp esi, eax
jb 0x4883cd
jmp 0x488466
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 0x48849b
cmp esi, eax
jb 0x48849b
cmp esi, dword [ebx + 0x88]
jbe 0x48849b
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x14]
jle 0x488335
mov eax, dword [ebp - 0x2c]
jmp 0x40af09
test ecx, ecx
je 0x488cd5
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffffa
cmp ecx, 0xf
ja case.default.0x4864a0
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffffa
jmp dword [ecx*4 + 0x48d14e]
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40af09
lea eax, [esi + 2]
mov dword [ebp - 0x10], eax
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x48b597
cmp dword [ebx + 0x18], 0
je 0x4885b3
push ecx
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.0040939c
add esp, 0xc
test eax, eax
jne case.0x40a7c0.151
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
cmp dword [ebx + 0x8c], 0
je 0x488563
cmp edx, dword [ebx + 0x7c]
jb 0x488563
cmp dword [ebx + 0x18], 0
jne 0x488563
cmp dword [ebx + 0x1c], 2
jne 0x488563
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x488563
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
add esi, 2
add edx, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edx
cmp esi, dword [ebx + 0x7c]
jae 0x48859b
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 0x48859b
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 0x4884f6
mov eax, dword [ebp - 0x2c]
jmp 0x40af09
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x488529
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x488529
cmp dword [ebx + 0x1c], 1
je case.0x40a7c0.151
mov edx, dword [ebp - 0x10]
mov ax, word [edx]
cmp ax, word [ebx + 0x36]
je case.0x40a7c0.151
jmp 0x48852c
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x40af09
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
add esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebx + 0x7c]
jae 0x488642
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 0x488642
add esi, 2
mov dword [ebp - 8], esi
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x48860a
mov eax, dword [ebp - 0x2c]
jmp 0x40af09
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.0x40a7c0.151
add esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 8], esi
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40af09
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x4886d8
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 0x4886db
mov eax, dword [ebp - 0x10]
cmp eax, 0xd
ja 0x488708
je 0x4886f5
cmp eax, 0xa
je 0x488727
add eax, 0xfffffff5
cmp eax, 1
ja case.0x40a7c0.151
jmp 0x48871d
cmp esi, dword [ebx + 0x7c]
jae 0x488727
cmp word [esi], 0xa
jne 0x488727
add esi, 2
mov dword [ebp - 8], esi
jmp 0x488727
cmp eax, 0x85
je 0x48871d
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x40a7c0.151
cmp dword [ebx + 0x6c], 0
jne case.0x40a7c0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x488694
mov eax, dword [ebp - 0x2c]
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40af09
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x48879c
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 0x48879f
mov eax, dword [ebp - 0x10]
cmp eax, 0x180e
ja 0x4887da
je case.0x40a7c0.151
cmp eax, 0xa0
ja 0x4887cd
je case.0x40a7c0.151
cmp eax, 9
je case.0x40a7c0.151
cmp eax, 0x20
je case.0x40a7c0.151
jmp 0x488811
cmp eax, 0x1680
je case.0x40a7c0.151
jmp 0x488811
cmp eax, 0x205f
ja 0x488806
je case.0x40a7c0.151
cmp eax, 0x2000
jb 0x488811
cmp eax, 0x200a
jbe case.0x40a7c0.151
cmp eax, 0x202f
je case.0x40a7c0.151
jmp 0x488811
cmp eax, 0x3000
je case.0x40a7c0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x488758
mov eax, dword [ebp - 0x2c]
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40af09
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x488886
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 0x488889
mov eax, dword [ebp - 0x10]
cmp eax, 0x180e
ja 0x4888b8
je 0x4888eb
cmp eax, 0xa0
ja 0x4888ab
je 0x4888eb
cmp eax, 9
je 0x4888eb
cmp eax, 0x20
jne case.0x40a7c0.151
jmp 0x4888eb
cmp eax, 0x1680
jne case.0x40a7c0.151
jmp 0x4888eb
cmp eax, 0x205f
ja 0x4888e0
je 0x4888eb
cmp eax, 0x2000
jb case.0x40a7c0.151
cmp eax, 0x200a
jbe 0x4888eb
cmp eax, 0x202f
jne case.0x40a7c0.151
jmp 0x4888eb
cmp eax, 0x3000
jne case.0x40a7c0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x488842
mov eax, dword [ebp - 0x2c]
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40af09
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x488960
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 0x488963
mov eax, dword [ebp - 0x10]
cmp eax, 0x85
ja 0x488980
je case.0x40a7c0.151
cmp eax, 0xa
jb 0x488992
cmp eax, 0xd
jbe case.0x40a7c0.151
jmp 0x488992
cmp eax, 0x2028
jb 0x488992
cmp eax, 0x2029
jbe case.0x40a7c0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x48891c
mov eax, dword [ebp - 0x2c]
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40af09
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x488a07
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 0x488a0a
mov eax, dword [ebp - 0x10]
cmp eax, 0x85
ja 0x488a21
je 0x488a2f
add eax, 0xfffffff6
cmp eax, 3
ja case.0x40a7c0.151
jmp 0x488a2f
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x40a7c0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x4889c3
mov eax, dword [ebp - 0x2c]
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40af09
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
add esi, 2
and eax, 0xfc00
mov dword [ebp - 8], esi
cmp eax, 0xd800
jne 0x488aa6
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 0x488aa9
mov eax, dword [ebp - 0x10]
cmp eax, 0x80
jae 0x488ac0
mov eax, dword [ebx + 0x44]
mov edx, dword [ebp - 0x10]
test byte [edx + eax], 4
jne case.0x40a7c0.151
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x14]
jle 0x488a5c
mov eax, dword [ebp - 0x2c]
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40af09
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
cmp word [esi], 0x80
jae case.0x40a7c0.151
movzx edx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
je case.0x40a7c0.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 0x488aed
mov eax, dword [ebp - 0x2c]
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x40af09
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
cmp word [esi], 0x80
jae 0x488b6a
movzx edx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
jne case.0x40a7c0.151
mov eax, dword [ebp - 0x14]
add esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebx + 0x7c]
jae 0x488b99
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 0x488b99
add esi, 2
mov dword [ebp - 8], esi
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x488b47
mov eax, dword [ebp - 0x2c]
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40af09
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
cmp word [esi], 0x80
jae case.0x40a7c0.151
movzx edx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
je case.0x40a7c0.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 0x488bc2
mov eax, dword [ebp - 0x2c]
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x40af09
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
cmp word [esi], 0x80
jae 0x488c3f
movzx edx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
jne case.0x40a7c0.151
mov eax, dword [ebp - 0x14]
add esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebx + 0x7c]
jae 0x488c6e
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 0x488c6e
add esi, 2
mov dword [ebp - 8], esi
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x488c1c
mov eax, dword [ebp - 0x2c]
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40af09
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
cmp word [esi], 0x80
jae case.0x40a7c0.151
movzx edx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
je case.0x40a7c0.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 0x488c97
mov eax, dword [ebp - 0x2c]
jmp 0x40af09
mov edx, dword [ebp - 0x34]
add edx, 0xfffffffa
cmp edx, 0xf
ja case.default.0x4864a0
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffffa
jmp dword [ecx*4 + 0x48d18e]
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40af09
mov ecx, dword [ebx + 0x7c]
cmp esi, ecx
jae 0x48b597
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x488d3a
lea eax, [ebx + 0x1c]
push 0
push eax
push ecx
mov ecx, esi
call fcn.0040939c
add esp, 0xc
test eax, eax
jne case.0x40a7c0.151
lea edx, [ebx + 0x1c]
jmp 0x488d68
mov eax, dword [ebx + 0x1c]
lea edx, [ebx + 0x1c]
add eax, eax
sub ecx, eax
cmp esi, ecx
ja 0x488d68
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x488d68
cmp dword [edx], 1
je case.0x40a7c0.151
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x36]
je case.0x40a7c0.151
cmp dword [ebx + 0x8c], 0
je 0x488da1
lea eax, [esi + 2]
cmp eax, dword [ebx + 0x7c]
jb 0x488da1
cmp dword [ebx + 0x18], 0
jne 0x488da1
cmp dword [edx], 2
jne 0x488da1
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x488da1
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
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 0x488d0a
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x40af09
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 0x48b597
add esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 8], esi
jmp 0x40af09
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 0x48b597
add esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 8], esi
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x40af09
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
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 0x488e7d
cmp dword [ebp - 0x10], 0xd
je 0x488e6a
cmp dword [ebp - 0x10], 0xa
je 0x488ea4
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff5
cmp eax, 1
ja case.0x40a7c0.151
jmp 0x488e97
cmp esi, dword [ebx + 0x7c]
jae 0x488ea4
cmp word [esi], 0xa
jne 0x488ea4
add esi, 2
mov dword [ebp - 8], esi
jmp 0x488ea4
cmp dword [ebp - 0x10], 0x85
je 0x488e9a
mov eax, dword [ebp - 0x10]
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x40a7c0.151
mov eax, dword [ebp - 0x14]
cmp dword [ebx + 0x6c], 0
jne case.0x40a7c0.151
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], eax
jle 0x488e30
mov eax, dword [ebp - 0x2c]
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40af09
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x18], edx
mov dword [ebp - 8], esi
cmp edx, 0x180e
jg 0x488f27
cmp edx, 0x180e
je case.0x40a7c0.151
cmp edx, 0xa0
jg 0x488f18
je case.0x40a7c0.151
cmp edx, 9
je case.0x40a7c0.151
cmp edx, 0x20
je case.0x40a7c0.151
jmp 0x488f68
cmp dword [ebp - 0x18], 0x1680
je case.0x40a7c0.151
jmp 0x488f68
cmp dword [ebp - 0x18], 0x205f
jg 0x488f5b
je case.0x40a7c0.151
cmp dword [ebp - 0x18], 0x2000
jl 0x488f68
cmp dword [ebp - 0x18], 0x200a
jle case.0x40a7c0.151
cmp dword [ebp - 0x18], 0x202f
je case.0x40a7c0.151
jmp 0x488f68
cmp dword [ebp - 0x18], 0x3000
je case.0x40a7c0.151
mov ebx, dword [ebp - 0xc]
inc ebx
cmp ebx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
jle 0x488ecd
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40af09
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x18], edx
mov dword [ebp - 8], esi
cmp edx, 0x180e
jg 0x488fe7
cmp edx, 0x180e
je 0x489024
cmp edx, 0xa0
jg 0x488fd8
je 0x489024
cmp edx, 9
je 0x489024
cmp edx, 0x20
jne case.0x40a7c0.151
jmp 0x489024
cmp dword [ebp - 0x18], 0x1680
jne case.0x40a7c0.151
jmp 0x489024
cmp dword [ebp - 0x18], 0x205f
jg 0x489017
je 0x489024
cmp dword [ebp - 0x18], 0x2000
jl case.0x40a7c0.151
cmp dword [ebp - 0x18], 0x200a
jle 0x489024
cmp dword [ebp - 0x18], 0x202f
jne case.0x40a7c0.151
jmp 0x489024
cmp dword [ebp - 0x18], 0x3000
jne case.0x40a7c0.151
mov ecx, dword [ebp - 0xc]
inc ecx
cmp ecx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x20]
jle 0x488f99
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40af09
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], esi
cmp edx, 0x85
jg 0x48908e
cmp edx, 0x85
je case.0x40a7c0.151
cmp edx, 0xa
jl 0x4890a4
cmp edx, 0xd
jle case.0x40a7c0.151
jmp 0x4890a4
cmp dword [ebp - 0x10], 0x2028
jl 0x4890a4
cmp dword [ebp - 0x10], 0x2029
jle case.0x40a7c0.151
mov edx, dword [ebp - 0xc]
inc edx
mov dword [ebp - 0xc], edx
cmp edx, dword [ebp - 0x14]
jle 0x489055
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x10], 1
jl 0x40af09
mov eax, dword [ebp - 0x14]
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
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 0x48910b
cmp dword [ebp - 0x28], 0x85
je 0x48911f
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff6
cmp eax, 3
ja case.0x40a7c0.151
jmp 0x48911c
mov eax, dword [ebp - 0x28]
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x40a7c0.151
mov eax, dword [ebp - 0x14]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], eax
jle 0x4890d1
mov eax, dword [ebp - 0x2c]
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x40af09
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx edx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp dx, word [ebp - 0xc]
ja 0x48917d
movzx ecx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
jne case.0x40a7c0.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 0x48914e
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40af09
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja case.0x40a7c0.151
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
je case.0x40a7c0.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 0x4891af
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x40af09
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx edx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp dx, word [ebp - 0xc]
ja 0x489243
movzx ecx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
jne case.0x40a7c0.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 0x489214
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0xc], 1
jl 0x40af09
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja case.0x40a7c0.151
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
je case.0x40a7c0.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 0x489275
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
cmp esi, 1
mov esi, dword [ebp - 8]
mov dword [ebp - 0x28], 1
jl 0x40af09
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx edx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp dx, word [ebp - 0xc]
ja 0x489309
movzx ecx, word [esi]
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
jne case.0x40a7c0.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 0x4892da
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x40af09
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0xc], 1
cmp esi, 1
jl 0x40af06
mov esi, dword [ebp - 8]
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja case.0x40a7c0.151
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je case.0x40a7c0.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 0x48933b
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
jmp 0x40af09
mov dword [ebp - 0x2c], esi
test eax, eax
js 0x489cfe
cmp eax, 0xa
ja case.default.0x4864a0
jmp dword [eax*4 + 0x48d1ce]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48950b
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x10], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48940c
test ecx, ecx
je 0x4893e5
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 0x48950b
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 0x4893a8
jmp 0x48950b
cmp dword [ebx + 0x8c], 0
je 0x48950b
cmp esi, dword [ebx + 0x88]
jbe 0x48950b
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x48950b
mov eax, 0xfffffff4
jmp 0x40a8e7
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x48950b
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48956f
movzx edx, word [esi]
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x48949b
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48949b
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 + 0x4ad468]
shl eax, 7
and edx, 0x8000007f
jns 0x4894c0
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
cmp eax, 9
je 0x4894e5
cmp eax, 5
je 0x4894e5
cmp eax, 8
je 0x4894e5
xor eax, eax
jmp 0x4894ea
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x489508
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 0x48944f
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x40a7a0
cmp esi, dword [ebp - 0x2c]
je 0x40a80e
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
sub esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x20], eax
je 0x489565
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x489565
sub esi, 2
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x2c]
jne 0x48951c
jmp 0x40a80e
cmp dword [ebx + 0x8c], 0
je 0x489508
cmp esi, dword [ebx + 0x88]
jbe 0x489508
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x489508
mov eax, 0xfffffff4
jmp 0x40a8e7
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x48950b
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48956f
movzx eax, word [esi]
mov dword [ebp - 0x30], eax
test ecx, ecx
je 0x4895f1
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4895f4
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 0x4895f4
movzx ecx, word [esi]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad468]
shl eax, 7
and ecx, 0x8000007f
jns 0x489616
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x40]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
cmp dword [eax*4 + 0x4b6cf0], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x489508
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 0x4895aa
jmp 0x489508
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x48950b
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48956f
movzx eax, word [esi]
mov dword [ebp - 0x30], eax
test ecx, ecx
je 0x4896b8
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4896bb
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 0x4896bb
movzx ecx, word [esi]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad468]
shl eax, 7
and ecx, 0x8000007f
jns 0x4896dd
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x489508
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 0x48966d
jmp 0x489508
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x48950b
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48956f
movzx eax, word [esi]
mov dword [ebp - 0x30], eax
test ecx, ecx
je 0x489778
mov ecx, eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48977b
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 0x48977b
movzx ecx, word [esi]
mov eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ad468]
shl eax, 7
and ecx, 0x8000007f
jns 0x48979d
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c8]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je 0x489508
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 0x48972d
jmp 0x489508
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x48950b
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48956f
movzx edx, word [esi]
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x489839
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489839
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 + 0x4ad468]
shl eax, 7
and edx, 0x8000007f
jns 0x48985e
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x489885
cmp eax, 3
je 0x489885
xor eax, eax
jmp 0x48988a
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x489508
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 0x4897ed
jmp 0x489508
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x48950b
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48956f
movzx edx, word [esi]
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x489909
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489909
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 + 0x4ad468]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x48992f
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
cmp dword [eax*4 + 0x4b6cf0], 6
je 0x489963
cmp edx, 9
je 0x489963
cmp edx, 0xa
je 0x489963
cmp edx, 0xc
je 0x489963
cmp edx, 0xd
je 0x489963
xor eax, eax
jmp 0x489968
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x489508
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 0x4898bd
jmp 0x489508
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x48950b
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48956f
movzx edx, word [esi]
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x4899ea
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4899ea
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 + 0x4ad468]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x489a10
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
cmp dword [eax*4 + 0x4b6cf0], 6
je 0x489a49
cmp edx, 9
je 0x489a49
cmp edx, 0xa
je 0x489a49
cmp edx, 0xb
je 0x489a49
cmp edx, 0xc
je 0x489a49
cmp edx, 0xd
je 0x489a49
xor eax, eax
jmp 0x489a4e
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x489508
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 0x48999e
jmp 0x489508
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x48950b
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48956f
movzx edx, word [esi]
mov dword [ebp - 0xc], edx
test ecx, ecx
je 0x489ad0
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489ad0
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 + 0x4ad468]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x489af6
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x489b22
cmp eax, 3
je 0x489b22
cmp edx, 0x5f
je 0x489b22
xor eax, eax
jmp 0x489b27
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je 0x489508
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 0x489a84
jmp 0x489508
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48950b
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 0x48940c
movzx edx, word [esi]
mov dword [ebp - 0x18], edx
test ecx, ecx
je 0x489bba
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489bb7
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 + 0x4af668]
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 0x489bf3
mov ebx, dword [ebp - 0xc]
add dword [ebp - 0x28], 4
cmp dword [ebp - 0x18], ebx
mov ebx, dword [ebp + 0x10]
je 0x489c1e
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 0x489bd4
cmp dword [ebp - 0x3c], 0
mov edx, dword [ebp - 0x24]
je 0x48950b
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 0x489b66
jmp 0x48950b
cmp dword [ebp - 0x3c], 0
je 0x489c00
jmp 0x48950b
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48950b
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 0x48940c
movzx edx, word [esi]
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x24]
test ecx, ecx
je 0x489c96
mov eax, dword [ebp - 0x18]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489c93
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 0x489cca
cmp dword [ebp - 0x18], 0x40
je 0x489cca
cmp dword [ebp - 0x18], 0x60
je 0x489cca
cmp dword [ebp - 0x18], 0xa0
jb 0x489cba
cmp dword [ebp - 0x18], 0xd7ff
jbe 0x489cca
cmp dword [ebp - 0x18], 0xe000
mov dword [ebp - 0xc], 0
jb 0x489cd1
mov dword [ebp - 0xc], 1
mov ebx, dword [ebp - 0x3c]
cmp dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
je 0x48950b
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 0x489c3e
jmp 0x48950b
mov eax, dword [ebp - 0x34]
cmp eax, 0x16
jne 0x489f03
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x489eb6
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x30], eax
cmp esi, eax
jae 0x489e8e
movzx edx, word [esi]
add esi, 2
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], esi
test ecx, ecx
je 0x489d64
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489d64
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 + 0x4ad468]
shl eax, 7
and edx, 0x8000007f
jns 0x489d89
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5c8]
movzx edx, byte [eax*8 + 0x4ac0ca]
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0xc], edx
cmp esi, eax
jae 0x489e53
mov ebx, dword [ebp - 0x20]
mov edi, edx
movzx ecx, word [esi]
mov dword [ebp - 0xc], 1
test ebx, ebx
je 0x489deb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x489deb
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 + 0x4ad468]
shl eax, 7
and ecx, 0x8000007f
jns 0x489e0d
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5c8]
movzx ecx, byte [eax*8 + 0x4ac0ca]
mov eax, 1
shl eax, cl
test dword [edi*4 + 0x49f44c], eax
je 0x489e44
mov eax, dword [ebp - 0xc]
mov edi, ecx
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x30]
cmp esi, eax
jb 0x489dae
jmp 0x489e47
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 0x489e7c
cmp esi, eax
jb 0x489e7c
cmp esi, dword [ebx + 0x88]
jbe 0x489e7c
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x1c]
jl 0x489d16
jmp 0x489eb3
cmp dword [ebx + 0x8c], 0
je 0x489eb3
cmp esi, dword [ebx + 0x88]
jbe 0x489eb3
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x40a7a0
cmp esi, dword [ebp - 0x2c]
je 0x40a80e
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov ebx, dword [ebp - 0x20]
sub esi, 2
mov dword [ebp - 8], esi
test ebx, ebx
jne 0x48aed2
movzx ecx, word [esi]
jmp 0x48af15
add eax, 0xfffffffa
test ecx, ecx
je 0x48a833
cmp eax, 0xf
ja case.default.0x4864a0
jmp dword [eax*4 + 0x48d1fa]
mov eax, dword [ebp - 0x1c]
cmp eax, 0x7fffffff
jge 0x48a0e5
cmp dword [ebp - 0x14], eax
jge 0x489ff3
lea eax, [esi + 2]
mov dword [ebp - 0x10], eax
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x48a0ae
cmp dword [ebx + 0x18], 0
je 0x48a073
push ecx
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.0040939c
add esp, 0xc
test eax, eax
jne 0x489ff0
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
cmp dword [ebx + 0x8c], 0
je 0x489fa8
cmp edx, dword [ebx + 0x7c]
jb 0x489fa8
cmp dword [ebx + 0x18], 0
jne 0x489fa8
cmp dword [ebx + 0x1c], 2
jne 0x489fa8
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x489fa8
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
add esi, 2
add edx, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edx
cmp esi, dword [ebx + 0x7c]
jae 0x489fe0
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 0x489fe0
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 0x489f3b
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x40a7a0
cmp esi, dword [ebp - 0x2c]
je 0x40a80e
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
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 0x48a049
sub esi, 2
mov dword [ebp - 8], esi
cmp dword [ebp - 0x34], 0x11
mov ecx, dword [ebp - 0x2c]
jne 0x48a06a
cmp esi, ecx
jbe 0x48a06c
cmp word [esi], 0xa
jne 0x48a06a
cmp word [esi - 2], 0xd
lea eax, [esi - 2]
cmove esi, eax
mov dword [ebp - 8], esi
cmp esi, ecx
jne 0x48a004
jmp 0x40a80e
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x489f6e
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x489f6e
cmp dword [ebx + 0x1c], 1
je 0x489ff0
mov edx, dword [ebp - 0x10]
mov ax, word [edx]
cmp ax, word [ebx + 0x36]
jne 0x489f71
jmp 0x489ff0
cmp dword [ebx + 0x8c], 0
je 0x489ff0
cmp esi, dword [ebx + 0x88]
jbe 0x489ff0
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x489ff0
mov eax, 0xfffffff4
jmp 0x40a8e7
cmp dword [ebp - 0x14], eax
jge 0x489ff3
lea eax, [esi + 2]
mov dword [ebp - 0x10], eax
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x48a0ae
cmp dword [ebx + 0x18], 0
je 0x48a1aa
push ecx
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.0040939c
add esp, 0xc
test eax, eax
jne 0x489ff0
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
cmp dword [ebx + 0x8c], 0
je 0x48a15d
cmp edx, dword [ebx + 0x7c]
jb 0x48a15d
cmp dword [ebx + 0x18], 0
jne 0x48a15d
cmp dword [ebx + 0x1c], 2
jne 0x48a15d
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x48a15d
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
add esi, 2
add edx, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x10], edx
cmp esi, dword [ebx + 0x7c]
jae 0x48a195
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 0x48a195
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 0x48a0f4
jmp 0x489ff0
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x48a123
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x48a123
cmp dword [ebx + 0x1c], 1
je 0x489ff0
mov edx, dword [ebp - 0x10]
mov ax, word [edx]
cmp ax, word [ebx + 0x36]
jne 0x48a126
jmp 0x489ff0
mov eax, dword [ebp - 0x1c]
cmp eax, 0x7fffffff
jge 0x48a23a
mov ecx, dword [ebp - 0x14]
cmp ecx, eax
jge 0x489ff3
mov eax, dword [ebx + 0x7c]
cmp esi, eax
jae 0x48a244
add esi, 2
mov dword [ebp - 8], esi
cmp esi, eax
jae 0x48a22f
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 0x48a22f
add esi, 2
mov dword [ebp - 8], esi
inc ecx
cmp ecx, dword [ebp - 0x1c]
jl 0x48a1fd
jmp 0x489ff3
mov esi, dword [ebx + 0x7c]
jmp 0x48a241
mov esi, ecx
mov dword [ebp - 8], esi
cmp dword [ebx + 0x8c], 0
je 0x489ff3
cmp esi, dword [ebx + 0x88]
jbe 0x489ff3
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x489ff3
mov eax, 0xfffffff4
jmp 0x40a8e7
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 0x48a23f
mov eax, dword [ebp - 0x1c]
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
jmp 0x489ff3
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489ff3
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0xc], 1
cmp esi, eax
jae 0x48a244
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a2f1
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 0x48a2f4
mov eax, dword [ebp - 0x10]
cmp eax, 0xd
jne 0x48a315
mov eax, dword [ebx + 0x7c]
add esi, 2
mov dword [ebp - 8], esi
cmp esi, eax
jae 0x489ff3
cmp word [esi], 0xa
jne 0x48a353
add esi, 2
jmp 0x48a350
cmp eax, 0xa
je 0x48a347
cmp dword [ebx + 0x6c], 0
jne 0x489ff3
cmp eax, 0xb
je 0x48a347
cmp eax, 0xc
je 0x48a347
cmp eax, 0x85
je 0x48a347
cmp eax, 0x2028
je 0x48a347
cmp eax, 0x2029
jne 0x489ff3
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 0x48a2af
jmp 0x489ff3
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489ff3
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48a244
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a3b5
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 0x48a3b8
mov eax, dword [ebp - 0x10]
cmp eax, 0x180e
ja 0x48a40e
je 0x48a3d4
cmp eax, 0xa0
ja 0x48a405
je 0x48a3d4
cmp eax, 9
je 0x48a3d4
cmp eax, 0x20
jne 0x48a435
mov dword [ebp - 0xc], 1
xor eax, eax
cmp dword [ebp - 0x34], 0x12
sete al
cmp dword [ebp - 0xc], eax
je 0x489ff3
mov eax, dword [ebp - 0x30]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a36e
jmp 0x489ff3
cmp eax, 0x1680
jne 0x48a435
jmp 0x48a3d4
cmp eax, 0x205f
ja 0x48a42e
je 0x48a3d4
cmp eax, 0x2000
jb 0x48a435
cmp eax, 0x200a
jbe 0x48a3d4
cmp eax, 0x202f
jne 0x48a435
jmp 0x48a3d4
cmp eax, 0x3000
je 0x48a3d4
mov dword [ebp - 0xc], 0
jmp 0x48a3db
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489ff3
mov dword [ebp - 0x30], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48a244
movzx eax, word [esi]
mov dword [ebp - 0x10], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a491
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 0x48a494
mov eax, dword [ebp - 0x10]
cmp eax, 0x85
ja 0x48a4d8
je 0x48a4e2
cmp eax, 0xa
jb 0x48a4a7
cmp eax, 0xd
jbe 0x48a4e2
mov dword [ebp - 0xc], 0
xor eax, eax
cmp dword [ebp - 0x34], 0x14
sete al
cmp dword [ebp - 0xc], eax
je 0x489ff3
mov eax, dword [ebp - 0x30]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a44a
jmp 0x489ff3
add eax, 0xffffdfd8
cmp eax, 1
ja 0x48a4a7
mov dword [ebp - 0xc], 1
jmp 0x48a4ae
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489ff3
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48a244
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a544
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 0x48a547
movzx eax, word [esi]
cmp eax, 0x100
jae 0x48a561
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
mov edx, dword [ebp - 0x24]
jne 0x489ff3
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a4f7
jmp 0x489ff3
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489ff3
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48a244
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a5ce
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 0x48a5d1
movzx eax, word [esi]
cmp eax, 0x100
jae 0x489ff3
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
mov edx, dword [ebp - 0x24]
je 0x489ff3
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a581
jmp 0x489ff3
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489ff3
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48a244
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a65c
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 0x48a65f
movzx eax, word [esi]
cmp eax, 0x100
jae 0x48a679
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
mov edx, dword [ebp - 0x24]
jne 0x489ff3
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a60f
jmp 0x489ff3
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489ff3
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48a244
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a6e6
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 0x48a6e9
movzx eax, word [esi]
cmp eax, 0x100
jae 0x489ff3
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
mov edx, dword [ebp - 0x24]
je 0x489ff3
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a699
jmp 0x489ff3
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489ff3
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48a244
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a774
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 0x48a777
movzx eax, word [esi]
cmp eax, 0x100
jae 0x48a791
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
mov edx, dword [ebp - 0x24]
jne 0x489ff3
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a727
jmp 0x489ff3
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x489ff3
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48a244
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48a7fe
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 0x48a801
movzx eax, word [esi]
cmp eax, 0x100
jae 0x489ff3
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
mov edx, dword [ebp - 0x24]
je 0x489ff3
mov eax, dword [ebp - 0xc]
inc ecx
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48a7b1
jmp 0x489ff3
cmp eax, 0xf
ja case.default.0x4864a0
jmp dword [eax*4 + 0x48d23a]
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x48a8f1
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x48a955
cmp dword [ebx + 0x18], 0
je 0x48a87d
lea eax, [ebx + 0x1c]
push 0
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.0040939c
add esp, 0xc
test eax, eax
jne 0x48a8ee
mov ecx, dword [ebp - 0x14]
jmp 0x48a8a1
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x48a8a1
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x48a8a1
cmp dword [ebx + 0x1c], 1
je 0x48a8ee
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x36]
je 0x48a8ee
cmp dword [ebx + 0x8c], 0
je 0x48a8db
lea eax, [esi + 2]
cmp eax, dword [ebx + 0x7c]
jb 0x48a8db
cmp dword [ebx + 0x18], 0
jne 0x48a8db
cmp dword [ebx + 0x1c], 2
jne 0x48a8db
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x48a8db
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
inc ecx
add esi, 2
mov dword [ebp - 8], esi
mov dword [ebp - 0x14], ecx
cmp ecx, dword [ebp - 0x1c]
jl 0x48a84f
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x40a7a0
cmp esi, dword [ebp - 0x2c]
je 0x40a80e
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov ecx, dword [ebp - 0x2c]
sub esi, 2
cmp dword [ebp - 0x34], 0x11
mov dword [ebp - 8], esi
jne 0x48a94c
cmp esi, ecx
jbe 0x48a94e
cmp word [esi], 0xa
jne 0x48a94c
cmp word [esi - 2], 0xd
lea eax, [esi - 2]
cmove esi, eax
mov dword [ebp - 8], esi
cmp esi, ecx
jne 0x48a902
jmp 0x40a80e
cmp dword [ebx + 0x8c], 0
je 0x48a8ee
cmp esi, dword [ebx + 0x88]
jbe 0x48a8ee
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x48a8ee
mov eax, 0xfffffff4
jmp 0x40a8e7
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 0x48a9d7
mov esi, ecx
mov dword [ebp - 8], esi
cmp dword [ebx + 0x8c], 0
je 0x48a8f1
cmp esi, dword [ebx + 0x88]
jbe 0x48a8f1
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle 0x48a8f1
mov eax, 0xfffffff4
jmp 0x40a8e7
mov eax, dword [ebp - 0x1c]
lea esi, [esi + eax*2]
mov dword [ebp - 8], esi
jmp 0x48a8f1
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a8f1
mov ecx, dword [ebx + 0x7c]
cmp esi, ecx
jae 0x48a9a0
movzx ecx, word [esi]
cmp ecx, 0xd
jne 0x48aa19
mov ecx, dword [ebx + 0x7c]
add esi, 2
mov dword [ebp - 8], esi
cmp esi, ecx
jae 0x48a8f1
cmp word [esi], 0xa
je 0x48aa51
jmp 0x48aa57
cmp ecx, 0xa
je 0x48aa4e
cmp dword [ebx + 0x6c], 0
jne 0x48a8f1
cmp ecx, 0xb
je 0x48aa4e
cmp ecx, 0xc
je 0x48aa4e
cmp ecx, 0x85
je 0x48aa4e
cmp ecx, 0x2028
je 0x48aa4e
cmp ecx, 0x2029
jne 0x48a8f1
mov ecx, dword [ebx + 0x7c]
add esi, 2
mov dword [ebp - 8], esi
inc eax
cmp eax, dword [ebp - 0x1c]
jl 0x48a9f4
jmp 0x48a8f1
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a8f1
cmp esi, dword [ebx + 0x7c]
jae 0x48a9a0
movzx ecx, word [esi]
cmp ecx, 0x180e
jg 0x48aab6
je 0x48a8f1
cmp ecx, 0xa0
jg 0x48aaa9
je 0x48a8f1
cmp ecx, 9
je 0x48a8f1
cmp ecx, 0x20
jne 0x48aaf1
jmp 0x48a8f1
cmp ecx, 0x1680
jne 0x48aaf1
jmp 0x48a8f1
cmp ecx, 0x205f
jg 0x48aae5
je 0x48a8f1
cmp ecx, 0x2000
jl 0x48aaf1
cmp ecx, 0x200a
jle 0x48a8f1
cmp ecx, 0x202f
jne 0x48aaf1
jmp 0x48a8f1
cmp ecx, 0x3000
je 0x48a8f1
add esi, 2
inc eax
mov dword [ebp - 8], esi
cmp eax, dword [ebp - 0x1c]
jl 0x48aa6e
jmp 0x48a8f1
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a8f1
cmp esi, dword [ebx + 0x7c]
jae 0x48a9a0
movzx ecx, word [esi]
cmp ecx, 0x180e
jg 0x48ab4e
je 0x48ab85
cmp ecx, 0xa0
jg 0x48ab41
je 0x48ab85
cmp ecx, 9
je 0x48ab85
cmp ecx, 0x20
je 0x48ab85
jmp 0x48a8f1
cmp ecx, 0x1680
je 0x48ab85
jmp 0x48a8f1
cmp ecx, 0x205f
jg 0x48ab79
je 0x48ab85
cmp ecx, 0x2000
jl 0x48a8f1
cmp ecx, 0x200a
jle 0x48ab85
cmp ecx, 0x202f
je 0x48ab85
jmp 0x48a8f1
cmp ecx, 0x3000
jne 0x48a8f1
add esi, 2
inc eax
mov dword [ebp - 8], esi
cmp eax, dword [ebp - 0x1c]
jl 0x48ab12
jmp 0x48a8f1
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a8f1
cmp esi, dword [ebx + 0x7c]
jae 0x48a9a0
movzx ecx, word [esi]
cmp ecx, 0x85
jg 0x48abcb
je 0x48a8f1
cmp ecx, 0xa
jl 0x48abdf
cmp ecx, 0xd
jg 0x48abdf
jmp 0x48a8f1
cmp ecx, 0x2028
jl 0x48abdf
cmp ecx, 0x2029
jle 0x48a8f1
add esi, 2
inc eax
mov dword [ebp - 8], esi
cmp eax, dword [ebp - 0x1c]
jl 0x48aba2
jmp 0x48a8f1
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge 0x48a8f1
cmp esi, dword [ebx + 0x7c]
jae 0x48a9a0
movzx eax, word [esi]
cmp eax, 0x85
jg 0x48ac1e
je 0x48ac2c
add eax, 0xfffffff6
cmp eax, 3
jbe 0x48ac2c
jmp 0x48a8f1
add eax, 0xffffdfd8
cmp eax, 1
ja 0x48a8f1
add esi, 2
inc ecx
mov dword [ebp - 8], esi
cmp ecx, dword [ebp - 0x1c]
jl 0x48abfc
jmp 0x48a8f1
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a8f1
cmp esi, dword [ebx + 0x7c]
jae 0x48a9a0
movzx ecx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp cx, word [ebp - 0xc]
ja 0x48ac72
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
jne 0x48a8f1
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 0x48ac49
jmp 0x48a8f1
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x48a8f1
cmp esi, dword [ebx + 0x7c]
jae 0x48a9a0
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x48a8f1
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 4
je 0x48a8f1
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 0x48ac92
jmp 0x48a8f1
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a8f1
cmp esi, dword [ebx + 0x7c]
jae 0x48a9a0
movzx ecx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp cx, word [ebp - 0xc]
ja 0x48ad07
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
jne 0x48a8f1
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 0x48acde
jmp 0x48a8f1
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x48a8f1
cmp esi, dword [ebx + 0x7c]
jae 0x48a9a0
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x48a8f1
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 1
je 0x48a8f1
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 0x48ad27
jmp 0x48a8f1
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge 0x48a8f1
cmp esi, dword [ebx + 0x7c]
jae 0x48a9a0
movzx ecx, word [esi]
mov dword [ebp - 0xc], 0xff
cmp cx, word [ebp - 0xc]
ja 0x48ad9c
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
jne 0x48a8f1
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 0x48ad73
jmp 0x48a8f1
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge 0x48a8f1
cmp esi, dword [ebx + 0x7c]
jae 0x48a9a0
movzx eax, word [esi]
mov ecx, 0xff
cmp ax, cx
ja 0x48a8f1
mov ecx, eax
mov eax, dword [ebx + 0x44]
test byte [ecx + eax], 0x10
je 0x48a8f1
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 0x48adbc
jmp 0x48a8f1
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 0x48ae2b
lea edx, [edi + 4]
call fcn.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov edi, dword [ebp - 0xc]
jmp 0x40a80b
mov edx, dword [ebp - 0xc]
call fcn.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
add edi, 4
jmp 0x40a80b
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 0x48ae7a
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x48ae67
jmp 0x48ae7a
mov ecx, dword [ebp + 0xc]
cmp esi, 0x86
je 0x48aff5
add edi, 4
jmp 0x40a80b
mov edx, esi
mov esi, dword [ebp - 8]
mov ecx, esi
call fcn.0040a740
add esp, 0x14
cmp eax, 0xfffffc1b
jne 0x48aeb5
mov ecx, dword [ebp - 0x18]
cmp dword [ebx + 0xb8], ecx
jne 0x40a8e7
jmp 0x48aec0
test eax, eax
jne 0x40a8e7
mov ecx, dword [ebp - 0x18]
cmp word [ecx], 0x7b
je 0x48b0a8
add edi, 4
jmp 0x40a80b
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x48aeea
sub esi, 2
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48af15
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 + 0x4ad468]
shl eax, 7
and ecx, 0x8000007f
jns 0x48af37
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
cmp dword [eax*4 + 0x4b6cf0], 2
jne 0x48af5b
sub esi, 2
jmp 0x489ef3
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 8], esi
mov dword [ebp - 8], esi
cmp esi, dword [ebp - 0x2c]
jne 0x489ec7
jmp 0x40a80e
mov dword [ebx + 0x9c], 2
jmp 0x40b0c4
movzx ecx, word [edi + 2]
lea eax, [edi + ecx*2]
cmp dword [ebx + 0x80], eax
jae 0x48ce1c
cmp word [edi], 0x71
je 0x40b113
cmp word [eax], 0x71
jne 0x48ce1c
jmp 0x40b113
mov eax, dword [ebp + 0x18]
inc eax
push eax
movzx eax, word [edi]
push dword [ebp + 0x14]
movzx ecx, byte [eax + 0x49f528]
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
lea eax, [edi + 4]
mov dword [ebx + 0x80], eax
mov eax, 0xfffffc1f
jmp 0x40a8e7
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.0040a740
add esp, 0x14
jmp 0x40a8e7
mov eax, dword [ebp - 0x58]
mov dword [ebx + 0xa8], eax
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x14c]
cmp eax, ecx
je case.0x40a7c0.151
push eax
call dword [0x4bc80c]
add esp, 4
jmp case.0x40a7c0.151
mov ecx, dword [ebp - 0x50]
lea edx, [ebp - 0x14c]
cmp ecx, edx
je 0x40a8e7
push ecx
call dword [0x4bc80c]
mov eax, dword [ebp - 0xc]
add esp, 4
jmp 0x40a8e7
mov eax, 0xfffffffa
jmp 0x40a8e7
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov dword [ebx + 0xb8], edi
mov eax, 0xfffffc1b
jmp 0x40a8e7
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov eax, dword [ebp - 0x18]
mov dword [ebx + 0xb8], eax
mov eax, 0xfffffc1b
jmp 0x40a8e7
mov dword [ebx + 0x84], eax
mov dword [ebx + 0x90], edx
mov eax, 0xfffffc1a
jmp 0x40a8e7
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov dword [ebx + 0xb8], esi
mov eax, 0xfffffc1b
jmp 0x40a8e7
cmp ecx, dword [ebx + 0x88]
jbe case.0x40a7c0.151
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jle case.0x40a7c0.151
mov eax, 0xfffffff4
jmp 0x40a8e7
mov eax, 0xfffffff2
jmp 0x40a8e7
cmp eax, 0xfffffffe
jne 0x48b164
mov esi, dword [ebx + 0x7c]
cmp dword [ebx + 0x8c], 0
je case.0x40a7c0.151
cmp esi, dword [ebx + 0x7c]
jb case.0x40a7c0.151
cmp esi, dword [ebx + 0x88]
jmp 0x48b12e
mov dword [ebp - 0xc], eax
cmp ecx, edx
jl 0x48b18e
jmp 0x48b1f4
mov eax, dword [ebp - 8]
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x34]
push ebx
push esi
mov edx, eax
call fcn.00472478
add esp, 0xc
test eax, eax
js 0x48b1bb
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 0x48b18b
jmp 0x48b1eb
cmp eax, 0xfffffffe
jne 0x48b1e8
cmp dword [ebx + 0x8c], 0
je 0x48b1e8
mov eax, dword [ebx + 0x7c]
cmp eax, dword [ebx + 0x88]
jbe 0x48b1e8
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0xc]
jb case.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
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 0x48b1f4
xor eax, eax
jmp 0x40a8e7
cmp ecx, 0xfffffffe
jne 0x48b23b
mov eax, dword [ebx + 0x7c]
jmp 0x48b23e
mov eax, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
je case.0x40a7c0.151
cmp eax, dword [ebx + 0x7c]
jb case.0x40a7c0.151
cmp eax, dword [ebx + 0x88]
jmp 0x48b12e
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 0x48b360
call fcn.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov edx, dword [ebp - 0x34]
cmp edx, dword [ebp - 0x18]
jge case.0x40a7c0.151
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebx + 0x7c]
jae 0x48b348
movzx eax, word [ecx]
mov dword [ebp - 0x10], eax
add ecx, 2
and eax, 0xfc00
mov dword [ebp - 8], ecx
cmp eax, 0xd800
jne 0x48b2e4
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 0x48b2e7
mov eax, dword [ebp - 0x10]
cmp eax, 0xff
jbe 0x48b2f9
cmp esi, 0x6a
je case.0x40a7c0.151
jmp 0x48b31e
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.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x48b28b
jmp 0x40a8e7
cmp dword [ebx + 0x8c], 0
je case.0x40a7c0.151
cmp ecx, dword [ebx + 0x88]
jmp 0x48b12e
call fcn.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov edx, dword [ebp - 0x34]
cmp edx, dword [ebp - 0x18]
jge case.0x40a7c0.151
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x7c]
jae 0x40b004
movzx ecx, word [eax]
add eax, 2
mov dword [ebp - 0x28], ecx
mov dword [ebp - 8], eax
cmp ecx, 0xff
jbe 0x48b3a7
cmp esi, 0x6a
je case.0x40a7c0.151
jmp 0x48b3c7
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.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x48b370
jmp 0x40a8e7
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 0x40ab0f
cmp esi, 0x6a
je 0x40ab3b
jmp 0x40b13b
cmp dword [ebx + 0x8c], 0
je 0x40ab3b
cmp eax, dword [ebx + 0x88]
jbe 0x40ab3b
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
jmp 0x40ab3b
mov eax, esi
sub esi, 2
cmp eax, dword [ebp - 0x40]
je case.0x40a7c0.151
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x48b47f
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.0040a740
add esp, 0x14
test eax, eax
je 0x48b459
jmp 0x40a8e7
mov edx, dword [ebp - 0x34]
cmp edx, dword [ebp - 0x18]
jge 0x48b520
cmp eax, dword [ebx + 0x7c]
jae 0x48b4f2
movzx ecx, word [eax]
mov dword [ebp - 0x28], ecx
cmp ecx, 0xff
jbe 0x48b4c5
cmp esi, 0x6a
jne 0x48b4e4
jmp 0x48b517
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 0x48b517
add eax, 2
inc edx
mov dword [ebp - 8], eax
cmp edx, dword [ebp - 0x18]
jl 0x48b4ab
jmp 0x48b517
cmp dword [ebx + 0x8c], 0
je 0x48b517
cmp eax, dword [ebx + 0x88]
jbe 0x48b517
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
cmp eax, dword [ebp - 0x40]
jb case.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
sub esi, 2
cmp esi, dword [ebp - 0x40]
jae 0x48b523
jmp 0x40a8e7
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.0047287f
add esp, 4
test eax, eax
je case.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x486a8a
jmp 0x40a8e7
cmp dword [ebx + 0x8c], 0
je case.0x40a7c0.151
cmp esi, dword [ebx + 0x88]
jmp 0x48b12e
mov dword [ebp - 0x40], esi
cmp edx, eax
jge 0x48b656
mov dword [ebp - 0xc], 1
cmp esi, dword [ebx + 0x7c]
jae 0x48b631
movzx edx, word [esi]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x30], edx
test ecx, ecx
je 0x48b608
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48b603
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 0x48b60b
mov eax, dword [ebp - 0x30]
jmp 0x48b60b
movzx eax, word [esi]
mov edx, dword [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.0047287f
add esp, 4
test eax, eax
je 0x48b656
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 0x48b5ba
jmp 0x48b656
cmp dword [ebx + 0x8c], 0
je 0x48b656
cmp esi, dword [ebx + 0x88]
jbe 0x48b656
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov eax, esi
sub esi, 2
cmp eax, dword [ebp - 0x40]
je case.0x40a7c0.151
cmp dword [ebp - 0x20], 0
je 0x48b6a5
mov ax, word [esi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x48b6a5
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.0040a740
add esp, 0x14
test eax, eax
je 0x48b679
jmp 0x40a8e7
cmp dword [ebx + 0x8c], 0
je case.0x40a7c0.151
cmp edx, dword [ebx + 0x7c]
jb case.0x40a7c0.151
cmp edx, dword [ebx + 0x88]
jmp 0x48b12e
cmp dword [ebx + 0x8c], edx
je case.0x40a7c0.151
cmp ecx, dword [ebx + 0x88]
jmp 0x48b12e
mov ecx, dword [ebp - 8]
cmp dword [ebx + 0x8c], 0
je case.0x40a7c0.151
cmp ecx, dword [ebx + 0x7c]
jb case.0x40a7c0.151
jmp 0x48b128
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
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.0x40a7c0.151
mov eax, dword [ebx + 0x7c]
sub eax, edx
cmp esi, eax
ja 0x48b77c
lea eax, [ecx + ecx]
push eax
push dword [ebp - 0x28]
push esi
call fcn.00420df3
add esp, 0xc
test eax, eax
jne 0x48b77c
add esi, dword [ebp - 0xc]
jmp 0x48b7b6
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jle 0x48b164
mov eax, dword [ebx + 0x7c]
lea edx, [ecx + ecx]
sub eax, edx
mov dword [ebp - 0x30], edx
cmp esi, eax
ja 0x48b164
lea eax, [ecx + ecx]
push eax
lea eax, [ebp - 0x6c]
push eax
push esi
call fcn.00420df3
add esp, 0xc
test eax, eax
jne 0x48b164
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.0040a740
mov ecx, dword [ebp - 0x10]
add esp, 0x14
lea edx, [ecx + ecx]
test eax, eax
je 0x48b74e
jmp 0x40a8e7
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x34]
jge case.0x40a7c0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx ecx, word [esi]
cmp dword [ebp - 0x18], ecx
je 0x48b830
cmp dword [ebp - 0x14], ecx
jne case.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x48b80a
jmp 0x40a8e7
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x34]
jge case.0x40a7c0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx eax, word [esi]
add esi, 2
cmp dword [ebp - 0x18], eax
jne case.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x48b87e
jmp 0x40a8e7
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 0x48b974
call fcn.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x34]
jge case.0x40a7c0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
add esi, 2
cmp eax, 0xd800
jne 0x48b93a
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.0x40a7c0.151
cmp dword [ebp - 0x10], edx
je case.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x48b8f5
jmp 0x40a8e7
call fcn.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x34]
jge case.0x40a7c0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx ecx, word [esi]
cmp dword [ebp - 0x14], ecx
je case.0x40a7c0.151
cmp dword [ebp - 0x10], ecx
je case.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x48b984
jmp 0x40a8e7
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 0x48ba7a
call fcn.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x34]
jge case.0x40a7c0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx edx, word [esi]
mov eax, edx
and eax, 0xfc00
add esi, 2
cmp eax, 0xd800
jne 0x48ba49
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.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x48ba04
jmp 0x40a8e7
call fcn.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x34]
jge case.0x40a7c0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx eax, word [esi]
add esi, 2
cmp dword [ebp - 0x14], eax
je case.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x48ba8a
jmp 0x40a8e7
cmp eax, 0xa
ja case.default.0x4864a0
jmp dword [eax*4 + 0x48d27a]
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge case.0x40a7c0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48bb3b
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x48bb3b
add esi, 2
cmp dword [ebp - 0x3c], 0
jne case.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x48bb09
jmp 0x40a8e7
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge case.0x40a7c0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx edx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], edx
je 0x48bbe1
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48bbe1
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 + 0x4ad468]
shl eax, 7
and edx, 0x8000007f
jns 0x48bc06
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
cmp eax, 9
je 0x48bc2b
cmp eax, 5
je 0x48bc2b
cmp eax, 8
je 0x48bc2b
xor eax, eax
jmp 0x48bc30
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x48bb90
jmp 0x40a8e7
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x40a7c0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48bcd3
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48bcd3
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 + 0x4ad468]
shl eax, 7
and ecx, 0x8000007f
jns 0x48bcf5
dec ecx
or ecx, 0xffffff80
inc ecx
mov edx, dword [ebp - 0x40]
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
cmp dword [eax*4 + 0x4b6cf0], edx
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x48bc88
jmp 0x40a8e7
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x40a7c0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48bdb8
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48bdb8
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 + 0x4ad468]
shl eax, 7
and ecx, 0x8000007f
jns 0x48bdda
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x48bd6d
jmp 0x40a8e7
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x40a7c0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48be96
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48be96
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 + 0x4ad468]
shl eax, 7
and ecx, 0x8000007f
jns 0x48beb8
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
xor ecx, ecx
movzx eax, word [eax*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c8]
cmp eax, dword [ebp - 0x40]
sete cl
cmp ecx, dword [ebp - 0x3c]
je case.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x48be4b
jmp 0x40a8e7
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge case.0x40a7c0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx edx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], edx
je 0x48bf7a
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48bf7a
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 + 0x4ad468]
shl eax, 7
and edx, 0x8000007f
jns 0x48bf9f
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x48bfc6
cmp eax, 3
je 0x48bfc6
xor eax, eax
jmp 0x48bfcb
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x48bf29
jmp 0x40a8e7
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x40a7c0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
je 0x48c074
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48c074
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 + 0x4ad468]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x48c09a
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
cmp dword [eax*4 + 0x4b6cf0], 6
je 0x48c0ce
cmp edx, 9
je 0x48c0ce
cmp edx, 0xa
je 0x48c0ce
cmp edx, 0xc
je 0x48c0ce
cmp edx, 0xd
je 0x48c0ce
xor eax, eax
jmp 0x48c0d3
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x48c023
jmp 0x40a8e7
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x40a7c0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
je 0x48c17b
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48c17b
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 + 0x4ad468]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x48c1a1
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
cmp dword [eax*4 + 0x4b6cf0], 6
je 0x48c1da
cmp edx, 9
je 0x48c1da
cmp edx, 0xa
je 0x48c1da
cmp edx, 0xb
je 0x48c1da
cmp edx, 0xc
je 0x48c1da
cmp edx, 0xd
je 0x48c1da
xor eax, eax
jmp 0x48c1df
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x48c12a
jmp 0x40a8e7
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x14], eax
jge case.0x40a7c0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], ecx
je 0x48c287
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48c287
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 + 0x4ad468]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x48c2ad
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x49f5c8]
movzx eax, byte [eax*8 + 0x4ac0c9]
mov eax, dword [eax*4 + 0x4b6cf0]
cmp eax, 1
je 0x48c2d9
cmp eax, 3
je 0x48c2d9
cmp edx, 0x5f
je 0x48c2d9
xor eax, eax
jmp 0x48c2de
mov eax, 1
cmp eax, dword [ebp - 0x3c]
je case.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x48c236
jmp 0x40a8e7
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge case.0x40a7c0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48c383
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48c380
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 + 0x4af668]
lea edx, [edx*4 + 0x4af668]
mov dword [ebp - 0xc], ebx
cmp ecx, ebx
mov ebx, dword [ebp + 0x10]
jb 0x48c3b5
mov ebx, dword [ebp + 0x10]
lea edx, [edx + 4]
cmp ecx, dword [ebp - 0xc]
je 0x48c3eb
mov ebx, dword [edx]
mov dword [ebp - 0xc], ebx
cmp ecx, ebx
mov ebx, dword [ebp + 0x10]
jae 0x48c39e
cmp dword [ebp - 0x3c], 0
je case.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x48c335
jmp 0x40a8e7
cmp dword [ebp - 0x3c], 0
jne case.0x40a7c0.151
jmp 0x48c3bf
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.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jge case.0x40a7c0.151
cmp esi, dword [ebx + 0x7c]
jae 0x48b597
movzx ecx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
je 0x48c468
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48c465
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 0x48c493
cmp ecx, 0x40
je 0x48c493
cmp ecx, 0x60
je 0x48c493
cmp ecx, 0xa0
jb 0x48c487
cmp ecx, 0xd7ff
jbe 0x48c493
cmp ecx, 0xe000
jae 0x48c493
xor ecx, ecx
jmp 0x48c498
mov ecx, 1
cmp ecx, dword [ebp - 0x3c]
je case.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x48c41a
jmp 0x40a8e7
mov ecx, esi
call fcn.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge case.0x40a7c0.151
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0x30], eax
cmp esi, eax
jae 0x48b597
movzx edx, word [esi]
add esi, 2
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0xc], edx
je 0x48c535
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48c535
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 + 0x4ad468]
shl eax, 7
and edx, 0x8000007f
jns 0x48c55a
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x49f5c8]
movzx edx, byte [eax*8 + 0x4ac0ca]
mov eax, dword [ebx + 0x7c]
mov dword [ebp - 0xc], edx
cmp esi, eax
jae 0x48c621
mov ebx, dword [ebp - 0x20]
mov edi, edx
movzx ecx, word [esi]
mov dword [ebp - 0xc], 1
test ebx, ebx
je 0x48c5bc
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x48c5bc
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 + 0x4ad468]
shl eax, 7
and ecx, 0x8000007f
jns 0x48c5de
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x49f5c8]
movzx ecx, byte [eax*8 + 0x4ac0ca]
mov eax, 1
shl eax, cl
test dword [edi*4 + 0x49f44c], eax
je 0x48c615
mov eax, dword [ebp - 0xc]
mov edi, ecx
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x30]
cmp esi, eax
jb 0x48c57f
jmp 0x48c618
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 0x48c64a
cmp esi, eax
jb 0x48c64a
cmp esi, dword [ebx + 0x88]
jbe 0x48c64a
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
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.0040a740
add esp, 0x14
test eax, eax
je 0x48c4df
jmp 0x40a8e7
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x40afa7
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x40afa7
cmp dword [ebx + 0x1c], 1
je case.0x40a7c0.151
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x36]
je case.0x40a7c0.151
jmp 0x40afa7
movzx eax, word [esi]
and edx, 0x3ff
shl edx, 0xa
and eax, 0x3ff
or edx, eax
add edx, 0x10000
add esi, 2
jmp 0x40afbf
add eax, 0xfffffffa
cmp eax, 0xf
ja case.default.0x4864a0
jmp dword [eax*4 + 0x48d2a6]
cmp edx, 0xd
ja 0x48c71c
je 0x48c701
cmp edx, 0xa
je case.0x48c6dc.13
lea eax, [edx - 0xb]
cmp eax, 1
ja case.0x40a7c0.151
jmp 0x48c733
cmp esi, dword [ebx + 0x7c]
jae case.0x48c6dc.13
cmp word [esi], 0xa
jne case.0x48c6dc.13
add esi, 2
jmp case.0x48c6dc.13
cmp edx, 0x85
je 0x48c733
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x40a7c0.151
cmp dword [ebx + 0x6c], 0
jne case.0x40a7c0.151
jmp case.0x48c6dc.13
cmp edx, 0x180e
ja 0x48c786
je case.0x40a7c0.151
cmp edx, 0xa0
ja 0x48c775
je case.0x40a7c0.151
cmp edx, 9
je case.0x40a7c0.151
cmp edx, 0x20
je case.0x40a7c0.151
jmp case.0x48c6dc.13
cmp edx, 0x1680
je case.0x40a7c0.151
jmp case.0x48c6dc.13
cmp edx, 0x205f
ja 0x48c7bd
je case.0x40a7c0.151
cmp edx, 0x2000
jb case.0x48c6dc.13
cmp edx, 0x200a
jbe case.0x40a7c0.151
cmp edx, 0x202f
je case.0x40a7c0.151
jmp case.0x48c6dc.13
cmp edx, 0x3000
je case.0x40a7c0.151
jmp case.0x48c6dc.13
cmp edx, 0x180e
ja 0x48c812
je case.0x48c6dc.13
cmp edx, 0xa0
ja 0x48c801
je case.0x48c6dc.13
cmp edx, 9
je case.0x48c6dc.13
cmp edx, 0x20
jne case.0x40a7c0.151
jmp case.0x48c6dc.13
cmp edx, 0x1680
jne case.0x40a7c0.151
jmp case.0x48c6dc.13
cmp edx, 0x205f
ja 0x48c849
je case.0x48c6dc.13
cmp edx, 0x2000
jb case.0x40a7c0.151
cmp edx, 0x200a
jbe case.0x48c6dc.13
cmp edx, 0x202f
jne case.0x40a7c0.151
jmp case.0x48c6dc.13
cmp edx, 0x3000
jne case.0x40a7c0.151
jmp case.0x48c6dc.13
cmp edx, 0x85
ja 0x48c87f
je case.0x40a7c0.151
cmp edx, 0xa
jb case.0x48c6dc.13
cmp edx, 0xd
jbe case.0x40a7c0.151
jmp case.0x48c6dc.13
cmp edx, 0x2028
jb case.0x48c6dc.13
cmp edx, 0x2029
jbe case.0x40a7c0.151
jmp case.0x48c6dc.13
cmp edx, 0x85
ja 0x48c8bb
je case.0x48c6dc.13
lea eax, [edx - 0xa]
cmp eax, 3
ja case.0x40a7c0.151
jmp case.0x48c6dc.13
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x40a7c0.151
jmp case.0x48c6dc.13
cmp edx, 0x100
jae case.0x48c6dc.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
jne case.0x40a7c0.151
jmp case.0x48c6dc.13
cmp edx, 0x100
jae case.0x40a7c0.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
je case.0x40a7c0.151
jmp case.0x48c6dc.13
cmp edx, 0x100
jae case.0x48c6dc.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
jne case.0x40a7c0.151
jmp case.0x48c6dc.13
cmp edx, 0x100
jae case.0x40a7c0.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
je case.0x40a7c0.151
jmp case.0x48c6dc.13
cmp edx, 0x100
jae case.0x48c6dc.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
jne case.0x40a7c0.151
jmp case.0x48c6dc.13
cmp edx, 0x100
jae case.0x40a7c0.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
je case.0x40a7c0.151
jmp case.0x48c6dc.13
cmp esi, dword [ebx + 0x7c]
jb case.0x48c6dc.13
cmp dword [ebx + 0x18], 0
jne case.0x48c6dc.13
cmp dword [ebx + 0x1c], 2
jne case.0x48c6dc.13
movzx eax, word [ebx + 0x34]
cmp edx, eax
jne case.0x48c6dc.13
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
jmp case.0x48c6dc.13
call fcn.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jge case.0x40a7c0.151
mov edx, dword [ebx + 0x7c]
cmp esi, edx
jae 0x48b597
mov eax, dword [ebp - 0x34]
cmp eax, 0xc
jne 0x48ca4a
cmp dword [ebx + 0x18], 0
je 0x48ca1b
push 0
lea eax, [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x18]
mov ecx, esi
call fcn.0040939c
add esp, 0xc
test eax, eax
jne case.0x40a7c0.151
mov ecx, dword [ebp - 0x14]
jmp 0x48ca47
mov eax, dword [ebx + 0x1c]
add eax, eax
sub edx, eax
cmp esi, edx
ja 0x48ca47
mov ax, word [esi]
cmp ax, word [ebx + 0x34]
jne 0x48ca47
cmp dword [ebx + 0x1c], 1
je case.0x40a7c0.151
mov ax, word [esi + 2]
cmp ax, word [ebx + 0x36]
je case.0x40a7c0.151
mov eax, dword [ebp - 0x34]
movzx edx, word [esi]
add eax, 0xfffffffa
add esi, 2
cmp eax, 0xf
ja case.default.0x4864a0
jmp dword [eax*4 + 0x48d2e6]
cmp dword [ebx + 0x8c], 0
je case.0x48ca5c.13
cmp esi, dword [ebx + 0x7c]
jb case.0x48ca5c.13
cmp dword [ebx + 0x18], 0
jne case.0x48ca5c.13
cmp dword [ebx + 0x1c], 2
jne case.0x48ca5c.13
movzx eax, word [ebx + 0x34]
cmp edx, eax
jne case.0x48ca5c.13
mov dword [ebx + 0x68], 1
cmp dword [ebx + 0x8c], 1
jg 0x4859b2
jmp case.0x48ca5c.13
cmp edx, 0xd
ja 0x48caeb
je 0x48cad0
cmp edx, 0xa
je case.0x48ca5c.13
lea eax, [edx - 0xb]
cmp eax, 1
ja case.0x40a7c0.151
jmp 0x48cb02
cmp esi, dword [ebx + 0x7c]
jae case.0x48ca5c.13
cmp word [esi], 0xa
jne case.0x48ca5c.13
add esi, 2
jmp case.0x48ca5c.13
cmp edx, 0x85
je 0x48cb02
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x40a7c0.151
cmp dword [ebx + 0x6c], 0
jne case.0x40a7c0.151
jmp case.0x48ca5c.13
cmp edx, 0x180e
ja 0x48cb55
je case.0x40a7c0.151
cmp edx, 0xa0
ja 0x48cb44
je case.0x40a7c0.151
cmp edx, 9
je case.0x40a7c0.151
cmp edx, 0x20
je case.0x40a7c0.151
jmp case.0x48ca5c.13
cmp edx, 0x1680
je case.0x40a7c0.151
jmp case.0x48ca5c.13
cmp edx, 0x205f
ja 0x48cb8c
je case.0x40a7c0.151
cmp edx, 0x2000
jb case.0x48ca5c.13
cmp edx, 0x200a
jbe case.0x40a7c0.151
cmp edx, 0x202f
je case.0x40a7c0.151
jmp case.0x48ca5c.13
cmp edx, 0x3000
je case.0x40a7c0.151
jmp case.0x48ca5c.13
cmp edx, 0x180e
ja 0x48cbe1
je case.0x48ca5c.13
cmp edx, 0xa0
ja 0x48cbd0
je case.0x48ca5c.13
cmp edx, 9
je case.0x48ca5c.13
cmp edx, 0x20
jne case.0x40a7c0.151
jmp case.0x48ca5c.13
cmp edx, 0x1680
jne case.0x40a7c0.151
jmp case.0x48ca5c.13
cmp edx, 0x205f
ja 0x48cc18
je case.0x48ca5c.13
cmp edx, 0x2000
jb case.0x40a7c0.151
cmp edx, 0x200a
jbe case.0x48ca5c.13
cmp edx, 0x202f
jne case.0x40a7c0.151
jmp case.0x48ca5c.13
cmp edx, 0x3000
jne case.0x40a7c0.151
jmp case.0x48ca5c.13
cmp edx, 0x85
ja 0x48cc4e
je case.0x40a7c0.151
cmp edx, 0xa
jb case.0x48ca5c.13
cmp edx, 0xd
jbe case.0x40a7c0.151
jmp case.0x48ca5c.13
cmp edx, 0x2028
jb case.0x48ca5c.13
cmp edx, 0x2029
jbe case.0x40a7c0.151
jmp case.0x48ca5c.13
cmp edx, 0x85
ja 0x48cc8a
je case.0x48ca5c.13
lea eax, [edx - 0xa]
cmp eax, 3
ja case.0x40a7c0.151
jmp case.0x48ca5c.13
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x40a7c0.151
jmp case.0x48ca5c.13
cmp edx, 0xff
ja case.0x48ca5c.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
jne case.0x40a7c0.151
jmp case.0x48ca5c.13
cmp edx, 0xff
ja case.0x40a7c0.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 4
je case.0x40a7c0.151
jmp case.0x48ca5c.13
cmp edx, 0xff
ja case.0x48ca5c.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
jne case.0x40a7c0.151
jmp case.0x48ca5c.13
cmp edx, 0xff
ja case.0x40a7c0.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 1
je case.0x40a7c0.151
jmp case.0x48ca5c.13
cmp edx, 0xff
ja case.0x48ca5c.13
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
jne case.0x40a7c0.151
jmp case.0x48ca5c.13
cmp edx, 0xff
ja case.0x40a7c0.151
mov eax, dword [ebx + 0x44]
test byte [edx + eax], 0x10
je case.0x40a7c0.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.0040a740
add esp, 0x14
test eax, eax
je 0x48c9d5
jmp 0x40a8e7
mov dword [ebx + 0x9c], 2
jmp 0x40ae4f
movzx ecx, word [edi + 2]
lea eax, [edi + ecx*2]
cmp dword [ebx + 0x80], eax
jae 0x40ae98
cmp word [edi], 0x71
je 0x48cd94
cmp word [eax], 0x71
jne 0x40ae98
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 0x40ae43
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 0x40ae98
cmp edx, 0xfffffc1b
jne 0x48ce1c
movzx eax, word [edi]
cmp eax, 0x7b
je 0x48ce11
cmp eax, 0x71
jne 0x48ce08
movzx eax, word [edi + 2]
cmp word [edi + eax*2], 0x71
lea edi, [edi + eax*2]
je 0x48cdfa
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 0x40a8e7
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 + 0x49f528]
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.0040a740
mov edi, eax
add esp, 0x14
cmp edi, 1
je 0x48ce73
cmp edi, 0xfffffc19
jne 0x48ce8c
cmp dword [ebx + 0xb0], 0
jne 0x48ce8c
mov ecx, dword [ebp - 0xc]
mov dword [ebx + 0xb0], ecx
mov eax, edi
jmp 0x40a8e7
cmp edi, 0xfffffc1f
jne 0x48ceaa
mov edx, dword [ebx + 0x80]
mov ecx, dword [ebp - 0xc]
call fcn.004726ae
test eax, eax
je 0x48cfbb
mov eax, edi
jmp 0x40a8e7
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 + 0x49f528]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.0040a740
add esp, 0x14
test eax, eax
mov ecx, 0xfffffc1c
cmovne ecx, eax
mov eax, ecx
jmp 0x40a8e7
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 + 0x49f528]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.0040a740
add esp, 0x14
test eax, eax
mov ecx, 0xfffffc1d
cmovne ecx, eax
mov eax, ecx
jmp 0x40a8e7
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 + 0x49f528]
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.0040a740
mov ecx, eax
add esp, 0x14
cmp ecx, 1
je 0x48cf6c
cmp ecx, 0xfffffc19
jne 0x48cf7b
cmp dword [ebx + 0xb0], 0
jne 0x48cf7b
mov dword [ebx + 0xb0], esi
mov eax, 0xfffffc1d
test ecx, ecx
cmovne eax, ecx
jmp 0x40a8e7
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 + 0x49f528]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
mov ecx, esi
call fcn.0040a740
add esp, 0x14
test eax, eax
jne 0x40a8e7
mov dword [ebx + 0x80], esi
mov eax, 0xfffffc1e
jmp 0x40a8e7
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 + 0x49f528]
push dword [ebp + 0xc]
lea edx, [edi + eax*2]
push dword [ebp + 8]
call fcn.0040a740
add esp, 0x14
jmp 0x48cffa
mov dword [ebx + 0xb0], esi
test eax, eax
jne 0x40a8e7
mov dword [ebx + 0x80], edi
mov eax, 0xfffffc20
jmp 0x40a8e7
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 + 0x49f528]
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.0040a740
add esp, 0x14
cmp eax, 1
je 0x48d05a
cmp eax, 0xfffffc19
jne 0x48cffa
cmp dword [ebx + 0xb0], 0
jne 0x48cffa
jmp 0x48cff4
cmp esi, 0x99
je 0x40a8c5
cmp dword [ebx + 0xa8], 0
jne 0x40a8c5
cmp dword [ebx + 0x60], 0
jne case.0x40a7c0.151
cmp dword [ebx + 0x64], 0
je 0x40a8c5
mov ecx, dword [ebx + 0x98]
mov eax, dword [ebx + 0x78]
lea eax, [eax + ecx*2]
cmp edi, eax
je case.0x40a7c0.151
jmp 0x40a8c5
mov eax, 0xfffffc19
jmp 0x40a8e7
mov eax, 0xfffffffb
jmp 0x40a8e7
mov eax, 0xffffffeb
jmp 0x40a8e7
inc dword [ebx]
mov eax, 0xfffffff8
jmp 0x40a8e7