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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x13c
test edx, edx
je 0x53b50e
mov dword [esp + 8], ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x158]
mov eax, dword [edx]
mov ecx, dword [edx + 0x50]
mov dword [esp + 0x34], ecx
lea ecx, [eax + 1]
mov dword [edx], ecx
mov dword [esp + 4], 0xfffffff8
cmp eax, dword [edx + 4]
jae case.0x53dfa4.6
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x154]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x158]
mov ecx, eax
lea eax, [ecx + 0x7c]
mov dword [esp + 0x18], eax
lea eax, [ecx + 0x88]
mov dword [esp + 0x24], eax
lea eax, [ecx + 0x1c]
mov dword [esp + 0x48], eax
lea eax, [ecx + 0x8c]
mov dword [esp + 0x1c], eax
lea eax, [ecx + 0x68]
mov dword [esp + 0x20], eax
lea eax, [ecx + 0x44]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x44], 0
mov eax, dword [esp + 0x160]
mov ecx, dword [esp + 0x158]
cmp eax, dword [ecx + 8]
jae 0x53b687
cmp dword [ecx + 0x9c], 2
jne 0x5365c0
mov eax, dword [esp + 8]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xb0], eax
mov dword [ecx + 0x9c], 0
lea eax, [esp + 0xb0]
mov dword [esp + 0x38], eax
jmp 0x5365c0
movzx eax, word [esp + 0x28]
cmp eax, 0x10
jne 0x534661
jmp 0x53eeed
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, dword [esp + 0x10]
lea ecx, [edx + edx]
sub eax, ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jbe 0x535449
jmp 0x53eeed
movzx eax, word [esp + 0x28]
cmp eax, 0x10
je 0x534661
jmp 0x53eeed
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, dword [esp + 0x10]
lea ecx, [edx + edx]
sub eax, ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jbe 0x535449
jmp 0x53f28b
add ebp, 2
mov dword [esp + 0x14], ebp
jmp 0x5365c0
cmp eax, 0x24
je case.0x538e07.0
cmp eax, 0x60
je case.0x538e07.0
cmp eax, 0x40
je case.0x538e07.0
lea ecx, [eax - 0xa0]
cmp ecx, 0xd760
setb cl
cmp eax, 0xdfff
seta al
or al, cl
movzx ecx, word [esp + 0x28]
cmp ecx, 0xf
sete cl
xor cl, al
cmp cl, 1
je 0x534661
jmp 0x53eeed
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x534224
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x534224
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x53e3ba
mov dword [esp + 8], ebp
cmp dword [esp + 0x58], 0
jne 0x5365c0
jmp 0x53b145
cmp eax, 0x202f
mov dword [esp + 4], 0
je 0x5341a4
cmp eax, 0x3000
je 0x5341a4
cmp eax, 0x205f
je 0x5341a4
jmp case.0x53dfa4.6
lea eax, [ebp + 0x22]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], 0
mov ebx, 1
mov dword [esp + 0x10], 1
mov dword [esp + 4], 0
cmp dword [esp + 0x34], 0
je 0x534342
test ebx, ebx
jle 0x53439b
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
xor esi, esi
mov edi, dword [esp + 8]
cmp edi, edx
jae 0x53b854
movzx ecx, word [edi]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x5342c7
add edi, 4
jmp 0x5342d2
add edi, 2
cmp ecx, 0x100
jb 0x5342e1
movzx eax, word [esp + 0x28]
cmp eax, 0x6e
jne 0x5342fa
jmp 0x53eeed
mov eax, ecx
shr eax, 3
movzx eax, byte [ebp + eax + 2]
and cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x53eeed
inc esi
cmp esi, ebx
jl 0x5342a9
jmp 0x53439f
xor eax, eax
cmp edx, 0x69
sete al
mov dword [esp + 4], eax
cmp edx, 0x6d
sete al
mov dword [esp + 0xc], eax
movzx ebx, word [ebp + 0x24]
movzx eax, word [ebp + 0x26]
test eax, eax
mov ecx, 0x7fffffff
cmovne ecx, eax
mov dword [esp + 0x10], ecx
lea eax, [ebp + 0x28]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x34], 0
jne 0x534295
test ebx, ebx
jle 0x53439b
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
xor esi, esi
mov edi, dword [esp + 8]
cmp edi, edx
jae 0x53bcea
movzx eax, word [edi]
cmp eax, 0x100
jb 0x534373
movzx eax, word [esp + 0x28]
cmp eax, 0x6e
jne 0x534391
jmp 0x53eeed
mov ecx, eax
and ecx, 0xfff8
shr ecx, 3
movzx ecx, byte [ebp + ecx + 2]
and al, 7
movzx eax, al
bt ecx, eax
jae 0x53eeed
add edi, 2
inc esi
cmp esi, ebx
jl 0x534352
jmp 0x53439f
mov edi, dword [esp + 8]
cmp ebx, dword [esp + 0x10]
mov dword [esp + 8], edi
mov edx, dword [esp + 0x28]
je 0x5365c0
cmp dword [esp + 4], 0
jne 0x53d6c8
cmp dword [esp + 0x34], 0
je 0x53444c
cmp ebx, dword [esp + 0x10]
mov eax, edi
jge 0x5344dd
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, edi
cmp eax, dword [esp + 4]
jae 0x5344ad
mov ecx, eax
movzx edx, word [eax]
mov eax, edx
and eax, 0xfc00
mov esi, 2
cmp eax, 0xd800
je 0x53440e
mov esi, 1
cmp edx, 0x100
jb 0x53441d
movzx eax, word [esp + 0x28]
cmp eax, 0x6e
jne 0x53443b
jmp 0x5344d7
mov eax, edx
shr eax, 3
movzx eax, byte [ebp + eax + 2]
and dl, 7
movzx edx, dl
mov esi, 1
bt eax, edx
jae 0x5344d7
mov eax, ecx
lea eax, [eax + esi*2]
inc ebx
cmp ebx, dword [esp + 0x10]
jl 0x5343df
jmp 0x5344dd
cmp ebx, dword [esp + 0x10]
mov eax, edi
jge 0x534521
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov eax, edi
cmp eax, ecx
jae 0x5344f1
mov esi, eax
movzx eax, word [eax]
cmp eax, 0x100
jb 0x534481
movzx eax, dx
cmp eax, 0x6e
jne 0x53449f
jmp 0x53451b
mov edx, eax
and edx, 0xfff8
shr edx, 3
movzx edx, byte [ebp + edx + 2]
and al, 7
movzx eax, al
bt edx, eax
mov edx, dword [esp + 0x28]
jae 0x53451b
mov eax, esi
add eax, 2
inc ebx
cmp ebx, dword [esp + 0x10]
jl 0x534460
jmp 0x534521
mov edx, eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5344db
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x5344db
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov eax, edx
jle 0x5344dd
jmp 0x53bc58
mov eax, ecx
jmp 0x5344dd
mov eax, edx
mov dword [esp + 8], eax
cmp byte [esp + 0xc], 0
jne 0x5365c0
jmp 0x53dc9c
mov edx, eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53451f
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x53451f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov eax, edx
jle 0x534521
jmp 0x53bc58
mov eax, esi
jmp 0x534521
mov eax, edx
mov dword [esp + 8], eax
cmp byte [esp + 0xc], 0
jne 0x5365c0
jmp 0x53e58a
cmp edx, 0xa
mov dword [esp + 4], 0
jne case.0x53dfa4.6
add ebp, 2
mov dword [esp + 0x14], ebp
mov dword [esp + 8], eax
jmp 0x5365c0
xor ecx, ecx
movzx eax, cl
mov ecx, dword [esp + 0x18]
cmp edi, dword [ecx]
jae 0x5345cf
mov ebx, edx
movzx edx, word [edi]
mov ecx, edx
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x534592
shl edx, 0xa
and edx, 0xffc00
movzx ecx, word [edi + 2]
and ecx, 0x3ff
lea edx, [edx + ecx + 0x10000]
cmp dword [esi + 0x58], 0
je 0x53482a
mov cl, 1
cmp edx, 0x5f
je 0x534845
mov ecx, edx
sar ecx, 0x1f
shr ecx, 0x19
add ecx, edx
mov esi, ecx
and esi, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0xa60c94]
shl ecx, 7
sub edx, esi
add edx, ecx
jmp 0x534808
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x5345ff
mov esi, edx
mov edx, dword [esp + 0x24]
cmp edi, dword [edx]
jbe 0x5345f6
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp ecx, 1
jg 0x53bc58
xor ecx, ecx
mov edx, esi
jmp 0x534847
xor ecx, ecx
jmp 0x534847
xor eax, eax
movzx esi, al
test esi, esi
je case.0x537a09.4
jmp 0x53ad84
cmp eax, 0x84
jg 0x53463a
add eax, 0xfffffff7
cmp eax, 0x17
ja case.0x538e28.8203
mov edx, 0x80001f
bt edx, eax
jb case.0x538e07.0
jmp case.0x538e28.8203
cmp eax, 0x85
je case.0x538e07.0
cmp eax, 0xa0
je case.0x538e07.0
cmp eax, 0x1680
jne case.0x538e28.8203
movzx eax, word [esp + 0x28]
cmp eax, 0xf
je 0x53eeed
mov dword [esp + 8], ebx
add ebp, 6
mov dword [esp + 0x14], ebp
jmp 0x5365c0
mov eax, edx
mov dword [esp + 8], eax
cmp dword [esp + 0x4c], 0
jne 0x5365c0
jmp 0x53ae35
movzx edx, word [ebx + 2]
cmp dx, word [edi + 0x36]
jne 0x53c7be
add ecx, ecx
sub eax, ecx
cmp ebx, eax
jne 0x53c7be
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5341a4
mov ecx, dword [esp + 0x24]
cmp ebx, dword [ecx]
jbe 0x5341a4
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jle 0x5341a4
jmp 0x53caa9
cmp eax, 9
mov dword [esp + 4], 0
je 0x5341a4
cmp eax, 0x20
je 0x5341a4
jmp case.0x53dfa4.6
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x535ca6
movzx ebx, word [edi]
mov esi, ebx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x534735
shl ebx, 0xa
and ebx, 0xffc00
movzx edx, word [edi + 2]
and edx, 0x3ff
lea ebx, [ebx + edx + 0x10000]
mov edx, 2
mov esi, 1
cmp ebx, 0x1fff
jle 0x534780
cmp ebx, 0x202e
jg 0x5347a2
add ebx, 0xffffe000
cmp ebx, 0xb
jae 0x5347c6
cmp esi, ecx
je 0x5365a6
mov edi, dword [esp + 0x10]
inc edi
mov esi, dword [esp + 8]
lea esi, [esi + edx*2]
mov dword [esp + 8], esi
mov dword [esp + 0x10], edi
cmp edi, dword [esp + 0x28]
jl 0x5346f2
jmp 0x5365a6
cmp ebx, 0x9f
jle 0x5347bc
cmp ebx, 0xa0
je 0x534755
cmp ebx, 0x1680
je 0x534755
cmp ebx, 0x180e
je 0x534755
jmp 0x5347c6
cmp ebx, 0x202f
je 0x534755
cmp ebx, 0x205f
je 0x534755
cmp ebx, 0x3000
je 0x534755
jmp 0x5347c6
cmp ebx, 9
je 0x534755
cmp ebx, 0x20
je 0x534755
xor esi, esi
cmp esi, ecx
jne 0x53475d
jmp 0x5365a6
xor ecx, ecx
movzx eax, cl
mov ecx, dword [esp + 0x18]
cmp edi, dword [ecx]
jae 0x5345cf
mov ebx, edx
cmp dword [esi + 0x58], 0
movzx edx, word [edi]
je 0x53482a
mov cl, 1
cmp edx, 0x5f
je 0x534845
mov ecx, edx
shr ecx, 7
movzx ecx, byte [ecx + 0xa60c94]
shl ecx, 7
and edx, 0x7f
or edx, ecx
movzx ecx, word [edx + edx + 0xa62e94]
movzx ecx, byte [ecx*8 + 0xa5f615]
mov ecx, dword [ecx*4 + 0xa5eb28]
or ecx, 2
cmp ecx, 3
sete cl
jmp 0x534845
cmp edx, 0xff
ja 0x534843
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov cl, byte [ecx + edx]
and cl, 0x10
shr cl, 4
jmp 0x534845
xor ecx, ecx
mov edx, ebx
movzx ecx, cl
add ebp, 2
movzx edx, dx
cmp edx, 5
jne 0x53486e
mov dword [esp + 4], 0
cmp eax, ecx
mov dword [esp + 0x14], ebp
jne 0x5365c0
jmp case.0x53dfa4.6
mov dword [esp + 4], 0
cmp eax, ecx
mov dword [esp + 0x14], ebp
je 0x5365c0
jmp case.0x53dfa4.6
mov dword [esp + 0x10], 1
xor ebp, ebp
mov dword [esp + 4], 0
mov ebx, 1
xor esi, esi
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x53bbe0
lea ecx, [edx + 2]
movzx eax, word [edx]
cmp dword [esp + 0x34], 0
je 0x5348f3
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5348f3
shl eax, 0xa
and eax, 0xffc00
mov edx, dword [esp + 8]
movzx ecx, word [edx + 2]
add edx, 4
mov dword [esp + 8], edx
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x5348f7
mov dword [esp + 8], ecx
sub esp, 4
push dword [esp + 0x38]
push edi
push eax
call fcn.00541470
add esp, 0x10
test eax, eax
je 0x53eeed
inc esi
cmp esi, ebx
jl 0x5348a0
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
cmp ebx, dword [esp + 0x10]
je 0x5365c0
test ebp, ebp
jne 0x53de29
cmp ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
jge 0x5349d7
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
cmp ecx, dword [eax]
jae 0x5349ab
mov ebp, ecx
movzx eax, word [ecx]
cmp dword [esp + 0x34], 0
mov esi, 1
je 0x534988
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x534988
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ebp + 2]
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
mov esi, 2
sub esp, 4
push dword [esp + 0x38]
push edi
push eax
call fcn.00541470
add esp, 0x10
mov ecx, ebp
test eax, eax
je 0x5349d7
lea ecx, [ecx + esi*2]
inc ebx
cmp ebx, dword [esp + 0x10]
jl 0x534941
jmp 0x5349d7
mov edx, ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5349d5
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x5349d5
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov ecx, edx
jle 0x5349d7
jmp 0x53bc58
mov ecx, edx
mov dword [esp + 8], ecx
cmp byte [esp + 4], 0
jne 0x5365c0
jmp 0x53e3c7
mov ecx, edx
mov dword [esp + 8], ecx
cmp dword [esp + 0x4c], 0
jne 0x5365c0
jmp 0x53b02d
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53656c
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x53656c
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jle 0x53656c
jmp 0x53e3ba
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x534546
mov edx, dword [esp + 0x24]
cmp eax, dword [edx]
jbe 0x534546
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp ecx, 1
jle 0x534546
jmp 0x53bc58
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53d7b1
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x53eeed
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
je 0x53eeed
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x534a75
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x53ceb1
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x534adc
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
jne 0x53eeed
lea edx, [edi + 2]
mov esi, edx
cmp edx, eax
jae 0x534af7
movzx edx, word [edi + 2]
and edx, 0xfc00
cmp edx, 0xdc00
je 0x534afb
mov edx, esi
jmp 0x534b00
add edi, 4
mov edx, edi
inc ecx
cmp ecx, dword [esp + 0x10]
mov dword [esp + 0xc], edx
mov edi, edx
jl 0x534abc
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53d7ef
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x53eeed
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
je 0x53eeed
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x534b22
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x53ceeb
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x534b89
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
jne 0x53eeed
lea edx, [edi + 2]
mov esi, edx
cmp edx, eax
jae 0x534ba4
movzx edx, word [edi + 2]
and edx, 0xfc00
cmp edx, 0xdc00
je 0x534ba8
mov edx, esi
jmp 0x534bad
add edi, 4
mov edx, edi
inc ecx
cmp ecx, dword [esp + 0x10]
mov dword [esp + 0xc], edx
mov edi, edx
jl 0x534b69
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53d82d
movzx edx, word [edi]
cmp edx, 0x7f
ja 0x53eeed
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
je 0x53eeed
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x534bcf
jmp 0x53731f
xor esi, esi
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp ebx, eax
jae 0x53cf9c
mov edi, dword [esp + 0x158]
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x534c4f
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push ebx
call fcn.00541090
add esp, 0x20
test eax, eax
mov edx, dword [esp + 0x10]
je 0x534c82
jmp 0x53eeed
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp ebx, eax
mov edx, dword [esp + 0x10]
ja 0x534c82
movzx eax, word [ebx]
cmp ax, word [edi + 0x34]
jne 0x534c82
cmp ecx, 1
je 0x53eeed
movzx eax, word [ebx + 2]
cmp ax, word [edi + 0x36]
je 0x53eeed
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
test ecx, ecx
je 0x534ca7
lea edx, [ebx + 2]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp edx, eax
jae 0x534cb6
mov ecx, ebp
mov edx, dword [esp + 0x10]
cmp ecx, eax
jb 0x534cc6
jmp 0x534cdb
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
lea ecx, [ebx + 2]
cmp ecx, eax
jb 0x534cc6
jmp 0x534cdb
cmp dword [edi + 0x18], 0
mov edx, dword [esp + 0x10]
je 0x534cef
mov ecx, ebp
cmp ecx, eax
jae 0x534cdb
movzx eax, word [ebx + 2]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x534cdb
add ebx, 4
mov ecx, ebx
inc esi
cmp esi, edx
mov dword [esp + 0xc], ecx
mov ebx, ecx
jl 0x534c10
jmp 0x53731f
mov edx, dword [esp + 0x48]
cmp dword [edx], 2
jne 0x534c9b
movzx edx, word [ebx]
cmp dx, word [edi + 0x34]
jne 0x534c9b
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp ecx, 1
mov ecx, ebp
mov edx, dword [esp + 0x10]
jle 0x534cc2
jmp 0x53bc58
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov esi, dword [esp + 8]
cmp esi, eax
jae 0x53ca6f
lea edi, [esi + 2]
cmp edi, eax
jae 0x534d4d
movzx edx, word [esi + 2]
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x534d4d
add esi, 4
mov edi, esi
mov edx, dword [esp + 0x10]
inc ecx
cmp ecx, edx
mov dword [esp + 0xc], edi
mov esi, edi
jl 0x534d27
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53d68a
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x534daf
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x534db2
add edi, 2
mov ebx, dword [esp + 0x158]
mov dword [esp + 0xc], edi
cmp edx, 0xc
jle 0x534dff
lea edi, [edx - 0x2028]
cmp edi, 2
jb 0x534e07
cmp edx, 0x85
je 0x534e07
cmp edx, 0xd
mov dword [esp + 4], 0
jne case.0x53dfa4.6
mov esi, dword [esp + 0xc]
cmp esi, eax
jae 0x534e11
movzx edx, word [esi]
cmp edx, 0xa
jne 0x534e11
add esi, 2
mov dword [esp + 0xc], esi
jmp 0x534e11
lea edi, [edx - 0xb]
cmp edi, 2
jae 0x534e21
cmp dword [ebx + 0x6c], 0
jne 0x53eeed
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x534d71
jmp 0x53731f
cmp edx, 0xa
mov dword [esp + 4], 0
je 0x534e11
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53d451
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x534eb4
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
cmp edx, 0x1fff
jg 0x534ebf
cmp edx, 0x9f
jle 0x534efc
cmp edx, 0xa0
je 0x53f76f
cmp edx, 0x1680
je 0x53f76f
cmp edx, 0x180e
jne 0x534f0e
jmp 0x53f76f
add edi, 2
cmp edx, 0x1fff
jle 0x534e87
cmp edx, 0x202e
jg 0x534ed7
add edx, 0xffffe000
cmp edx, 0xb
jae 0x534f0e
jmp 0x53f76f
cmp edx, 0x202f
je 0x53f76f
cmp edx, 0x205f
je 0x53f76f
cmp edx, 0x3000
jne 0x534f0e
jmp 0x53f76f
cmp edx, 9
je 0x53f76f
cmp edx, 0x20
je 0x53f76f
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x534e43
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53d48f
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x534f9b
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
cmp edx, 0x1fff
jg 0x534fa6
cmp edx, 0x9f
jle 0x534fee
cmp edx, 0xa0
je 0x534fbd
cmp edx, 0x1680
je 0x534fbd
cmp edx, 0x180e
je 0x534fbd
jmp 0x53f76f
add edi, 2
cmp edx, 0x1fff
jle 0x534f76
cmp edx, 0x202e
jg 0x534fd1
add edx, 0xffffe000
cmp edx, 0xb
jae 0x53f76f
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x534f32
jmp 0x53731f
cmp edx, 0x202f
je 0x534fbd
cmp edx, 0x3000
je 0x534fbd
cmp edx, 0x205f
je 0x534fbd
jmp 0x53f76f
cmp edx, 9
je 0x534fbd
cmp edx, 0x20
je 0x534fbd
jmp 0x53f76f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53d4cd
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x53504b
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x53504e
add edi, 2
lea esi, [edx - 0xa]
cmp esi, 4
jb 0x53f76f
lea esi, [edx - 0x2028]
cmp esi, 2
jb 0x53f76f
cmp edx, 0x85
je 0x53f76f
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x53500d
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53d50b
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5350d3
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x5350d6
add edi, 2
lea esi, [edx - 0xa]
cmp esi, 4
jb 0x5350f5
lea esi, [edx - 0x2028]
cmp esi, 2
jb 0x5350f5
cmp edx, 0x85
jne 0x53f76f
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x535095
jmp 0x53731f
mov al, 1
movzx esi, al
test esi, esi
jne 0x53ad84
mov ecx, dword [esp + 4]
lea eax, [edi + ecx*2]
mov dword [esp + 0x14], eax
movzx eax, word [edi + ecx*2 - 4]
cmp eax, 0x77
mov eax, dword [esp + 0x28]
jne 0x5365c0
jmp 0x53ad9b
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5365a6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
cmp ebp, 0x14
sete cl
mov edx, dword [esp + 0xc]
mov dword [esp + 8], edx
mov ebx, dword [esp + 8]
cmp ebx, eax
jae 0x535ca6
movzx esi, word [ebx]
mov edi, esi
and edi, 0xfc00
mov edx, 1
cmp edi, 0xd800
jne 0x53519f
shl esi, 0xa
and esi, 0xffc00
movzx edx, word [ebx + 2]
and edx, 0x3ff
lea esi, [esi + edx + 0x10000]
mov edx, 2
mov ebx, 1
lea edi, [esi - 0xa]
cmp edi, 4
jb 0x5351c1
lea edi, [esi - 0x2028]
cmp edi, 2
jb 0x5351c1
cmp esi, 0x85
je 0x5351c1
xor ebx, ebx
cmp ebx, ecx
je 0x5365a6
mov edi, dword [esp + 0x10]
inc edi
mov esi, dword [esp + 8]
lea esi, [esi + edx*2]
mov dword [esp + 8], esi
mov dword [esp + 0x10], edi
cmp edi, dword [esp + 0x28]
jl 0x53515c
jmp 0x5365a6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53dd28
movzx edx, word [edi]
cmp edx, 0xff
ja 0x53eeed
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
je 0x53eeed
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5351fc
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53d86b
movzx edx, word [edi]
cmp edx, 0xff
ja 0x535271
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
jne 0x53eeed
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x53524a
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53dd66
movzx edx, word [edi]
cmp edx, 0xff
ja 0x53eeed
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 1
je 0x53eeed
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x535294
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53d8a9
movzx edx, word [edi]
cmp edx, 0xff
ja 0x535309
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
jne 0x53eeed
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5352e2
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53dda4
movzx edx, word [edi]
cmp edx, 0xff
ja 0x53eeed
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 0x10
je 0x53eeed
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x53532c
jmp 0x53731f
xor esi, esi
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp ebx, eax
jae 0x53da88
mov edi, dword [esp + 0x158]
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x5353a9
sub esp, 0xc
push 0
push dword [esp + 0x58]
push eax
push ecx
push ebx
call fcn.00541090
add esp, 0x20
test eax, eax
je 0x5353d8
jmp 0x53eeed
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp ebx, eax
ja 0x5353d8
movzx eax, word [ebx]
cmp ax, word [edi + 0x34]
jne 0x5353d8
cmp ecx, 1
je 0x53eeed
movzx eax, word [ebx + 2]
cmp ax, word [edi + 0x36]
je 0x53eeed
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
lea edx, [ebx + 2]
test eax, eax
je 0x535418
mov ecx, dword [esp + 0x18]
cmp edx, dword [ecx]
jb 0x535418
cmp dword [edi + 0x18], 0
jne 0x535418
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne 0x535418
movzx ecx, word [ebx]
cmp cx, word [edi + 0x34]
jne 0x535418
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x53bc58
inc esi
cmp esi, dword [esp + 0x10]
mov dword [esp + 0xc], edx
mov ebx, edx
jl 0x535370
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, dword [esp + 0x10]
lea ecx, [edx + edx]
sub eax, ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
ja 0x53f2c9
lea eax, [ecx + edx*2]
mov dword [esp + 0xc], eax
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov ebp, dword [esp + 8]
cmp ebp, eax
jae 0x53dc62
lea edx, [ebp + 2]
mov dword [esp + 0xc], edx
movsx edx, word [ebp]
cmp edx, 0xc
mov ebx, dword [esp + 0x158]
jle 0x5354c2
lea edi, [edx - 0x2028]
movzx edi, di
cmp edi, 2
jb 0x5354cd
movzx edx, dx
cmp edx, 0x85
je 0x5354cd
cmp edx, 0xd
mov dword [esp + 4], 0
jne case.0x53dfa4.6
cmp dword [esp + 0xc], eax
jae 0x5354d7
movzx edx, word [ebp + 2]
cmp edx, 0xa
jne 0x5354d7
add ebp, 4
mov dword [esp + 0xc], ebp
jmp 0x5354d7
lea edi, [edx - 0xb]
movzx edi, di
cmp edi, 2
jae 0x5354eb
cmp dword [ebx + 0x6c], 0
jne 0x53eeed
inc ecx
cmp ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0xc]
jl 0x535461
jmp 0x53731f
movzx edx, dx
cmp edx, 0xa
mov dword [esp + 4], 0
je 0x5354d7
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53db1f
movsx edx, word [edi]
movsx esi, dx
cmp edx, 0x1fff
jle 0x535545
cmp esi, 0x202e
jg 0x535575
lea edx, [edx - 0x2000]
movzx edx, dx
cmp edx, 0xb
jae 0x5355af
jmp 0x53f76f
movzx edx, dx
cmp esi, 0x9f
jle 0x53559d
cmp edx, 0xa0
je 0x53f76f
cmp edx, 0x1680
je 0x53f76f
cmp edx, 0x180e
jne 0x5355af
jmp 0x53f76f
movzx edx, dx
cmp edx, 0x202f
je 0x53f76f
cmp edx, 0x205f
je 0x53f76f
cmp edx, 0x3000
jne 0x5355af
jmp 0x53f76f
cmp edx, 9
je 0x53f76f
cmp edx, 0x20
je 0x53f76f
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x535510
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53db5d
movsx edx, word [edi]
movsx esi, dx
cmp edx, 0x1fff
jle 0x53561d
cmp esi, 0x202e
jg 0x535645
lea edx, [edx - 0x2000]
movzx edx, dx
cmp edx, 0xb
jae 0x53f76f
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5355d6
jmp 0x53731f
movzx edx, dx
cmp esi, 0x9f
jle 0x535665
cmp edx, 0xa0
je 0x53560a
cmp edx, 0x1680
je 0x53560a
cmp edx, 0x180e
je 0x53560a
jmp 0x53f76f
movzx edx, dx
cmp edx, 0x202f
je 0x53560a
cmp edx, 0x3000
je 0x53560a
cmp edx, 0x205f
je 0x53560a
jmp 0x53f76f
cmp edx, 9
je 0x53560a
cmp edx, 0x20
je 0x53560a
jmp 0x53f76f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53db9b
movzx edx, word [edi]
lea esi, [edx - 0xa]
movzx esi, si
cmp esi, 4
jb 0x53f76f
lea esi, [edx - 0x2028]
movzx esi, si
cmp esi, 2
jb 0x53f76f
movzx edx, dx
cmp edx, 0x85
je 0x53f76f
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x535684
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53dbd9
movzx edx, word [edi]
lea esi, [edx - 0xa]
movzx esi, si
cmp esi, 4
jb 0x53571d
lea esi, [edx - 0x2028]
movzx esi, si
cmp esi, 2
jb 0x53571d
movzx edx, dx
cmp edx, 0x85
jne 0x53f76f
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5356e6
jmp 0x53731f
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5365a6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x535ca6
movzx ecx, word [ecx]
mov esi, ecx
and esi, 0xfc00
mov edx, 2
cmp esi, 0xd800
je 0x535796
mov edx, 1
cmp ecx, 0xff
ja 0x535796
mov edx, dword [esp + 0x3c]
mov esi, dword [edx]
mov edx, 1
test byte [esi + ecx], 4
jne 0x5365a6
mov ecx, dword [esp + 8]
lea ecx, [ecx + edx*2]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x535750
jmp 0x5365a6
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5365a6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x535ca6
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x5365a6
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
je 0x5365a6
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 4
je 0x5365a6
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x5357d5
jmp 0x5365a6
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5365a6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x535ca6
movzx ecx, word [ecx]
mov esi, ecx
and esi, 0xfc00
mov edx, 2
cmp esi, 0xd800
je 0x535893
mov edx, 1
cmp ecx, 0xff
ja 0x535893
mov edx, dword [esp + 0x3c]
mov esi, dword [edx]
mov edx, 1
test byte [esi + ecx], 1
jne 0x5365a6
mov ecx, dword [esp + 8]
lea ecx, [ecx + edx*2]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x53584d
jmp 0x5365a6
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5365a6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x535ca6
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x5365a6
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
je 0x5365a6
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 1
je 0x5365a6
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x5358d2
jmp 0x5365a6
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5365a6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x535ca6
movzx ecx, word [ecx]
mov esi, ecx
and esi, 0xfc00
mov edx, 2
cmp esi, 0xd800
je 0x535990
mov edx, 1
cmp ecx, 0xff
ja 0x535990
mov edx, dword [esp + 0x3c]
mov esi, dword [edx]
mov edx, 1
test byte [esi + ecx], 0x10
jne 0x5365a6
mov ecx, dword [esp + 8]
lea ecx, [ecx + edx*2]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x53594a
jmp 0x5365a6
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5365a6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x535ca6
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x5365a6
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
je 0x5365a6
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 0x10
je 0x5365a6
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x5359cf
jmp 0x5365a6
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5365a6
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp esi, eax
jae 0x535b54
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x535a78
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push esi
call fcn.00541090
add esp, 0x20
test eax, eax
je 0x535ab5
jmp 0x535b82
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp esi, eax
ja 0x535ab5
movzx eax, word [esi]
mov edx, dword [esp + 0x158]
cmp ax, word [edx + 0x34]
jne 0x535ab5
cmp ecx, 1
je 0x535bbe
movzx eax, word [esi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x535bd2
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
test ecx, ecx
je 0x535b0e
lea edx, [esi + 2]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebx, edx
cmp edx, eax
jb 0x535b0a
mov edx, dword [esp + 0x158]
cmp dword [edx + 0x18], 0
jne 0x535b0a
mov edx, dword [esp + 0x48]
cmp dword [edx], 2
jne 0x535b0a
movzx edx, word [esi]
mov edi, dword [esp + 0x158]
cmp dx, word [edi + 0x34]
jne 0x535b0a
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp ecx, 1
mov ecx, ebx
jle 0x535b17
jmp 0x53e3ba
mov ecx, ebx
jmp 0x535b17
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
lea ecx, [esi + 2]
mov dword [esp + 8], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
jae 0x535b3e
movzx eax, word [esi + 2]
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x535b3e
add esi, 4
mov dword [esp + 8], esi
inc edx
mov dword [esp + 0x10], edx
cmp edx, ecx
mov esi, dword [esp + 8]
jl 0x535a3d
jmp 0x5365a6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x535b96
mov ecx, dword [esp + 0x24]
cmp esi, dword [ecx]
jbe 0x535baa
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov dword [esp + 8], esi
jle 0x5365a6
jmp 0x53e3ba
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x5365c0
jmp 0x53b352
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x5365c0
jmp 0x53b352
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x5365c0
jmp 0x53b352
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x5365c0
jmp 0x53b352
mov dword [esp + 8], esi
jmp 0x5365a6
cmp edx, 0x7fffffff
jne 0x535bf2
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 8], eax
jmp 0x535ca6
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5365a6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
cmp ecx, eax
jae 0x535c50
lea edx, [ecx + 2]
mov dword [esp + 8], edx
cmp edx, eax
jae 0x535c36
movzx edx, word [ecx + 2]
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x535c36
add ecx, 4
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
inc edx
mov dword [esp + 0x10], edx
cmp edx, ecx
mov ecx, dword [esp + 8]
jl 0x535c0e
jmp 0x5365a6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x535c7e
mov edx, dword [esp + 0x24]
cmp ecx, dword [edx]
jbe 0x535c92
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp eax, 1
mov dword [esp + 8], ecx
jle 0x5365a6
jmp 0x53e3ba
mov dword [esp + 8], ecx
cmp dword [esp + 0x58], 0
jne 0x5365c0
jmp 0x53b352
mov dword [esp + 8], ecx
cmp dword [esp + 0x58], 0
jne 0x5365c0
jmp 0x53b352
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5365a6
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x5365a6
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jle 0x5365a6
jmp 0x53e3ba
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0xc]
sub ecx, edx
sar ecx, 1
cmp eax, ecx
ja 0x535ca6
lea eax, [edx + eax*2]
mov dword [esp + 8], eax
cmp dword [esp + 0x58], 0
jne 0x5365c0
jmp 0x53b352
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5365a6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x535ca6
movzx ecx, word [edi]
mov esi, ecx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x535d6c
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [edi + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
cmp ecx, 0xa
je 0x535dc3
cmp ecx, 0xd
jne 0x535d93
mov esi, dword [esp + 8]
lea ecx, [esi + 2]
cmp ecx, eax
jae 0x535de8
movzx edx, word [esi + 2]
cmp edx, 0xa
jne 0x535dca
add esi, 4
mov dword [esp + 8], esi
jmp 0x535dce
mov esi, dword [esp + 0x158]
cmp dword [esi + 0x6c], 0
jne 0x5365a6
lea esi, [ecx - 0xb]
cmp esi, 2
jb 0x535dc3
lea esi, [ecx - 0x2028]
cmp esi, 2
jb 0x535dc3
cmp ecx, 0x85
jne 0x5365a6
mov ecx, dword [esp + 8]
lea ecx, [ecx + edx*2]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
inc edx
mov dword [esp + 0x10], edx
cmp edx, ecx
jl 0x535d29
jmp 0x5365a6
mov dword [esp + 8], ecx
cmp dword [esp + 0x58], 0
jne 0x5365c0
jmp 0x53b352
cmp eax, 0x3000
je case.0x538e07.0
cmp eax, 0x180e
je case.0x538e07.0
movzx eax, byte [ecx*8 + 0xa5f615]
cmp dword [eax*4 + 0xa5eb28], 6
jmp 0x53aba0
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x53655e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x53657c
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x535e6e
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 4
jne 0x53655e
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x535e47
jmp 0x53655e
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x53655e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x53657c
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x53655e
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 4
je 0x53655e
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x535ea7
jmp 0x53655e
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x53655e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x53657c
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x535f32
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 1
jne 0x53655e
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x535f0b
jmp 0x53655e
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x53655e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x53657c
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x53655e
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 1
je 0x53655e
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x535f6b
jmp 0x53655e
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x53655e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x53657c
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x535ff6
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 0x10
jne 0x53655e
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x535fcf
jmp 0x53655e
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x53655e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x53657c
movzx ecx, word [ecx]
cmp ecx, 0xff
ja 0x53655e
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test byte [edx + ecx], 0x10
je 0x53655e
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x53602f
jmp 0x53655e
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x53655e
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp esi, eax
jae 0x53616b
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x5360c2
sub esp, 0xc
push 0
push dword [esp + 0x58]
push eax
push ecx
push esi
call fcn.00541090
add esp, 0x20
test eax, eax
je 0x5360ff
jmp 0x536199
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp esi, eax
ja 0x5360ff
movzx eax, word [esi]
mov edx, dword [esp + 0x158]
cmp ax, word [edx + 0x34]
jne 0x5360ff
cmp ecx, 1
je 0x5361d5
movzx eax, word [esi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x5361e9
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
lea edi, [esi + 2]
test eax, eax
je 0x53614d
mov ecx, dword [esp + 0x18]
cmp edi, dword [ecx]
jb 0x53614d
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne 0x53614d
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne 0x53614d
movzx ecx, word [esi]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x53614d
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x53e3ba
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x28]
mov dword [esp + 8], edi
mov esi, edi
jl 0x536089
jmp 0x53655e
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5361ad
mov ecx, dword [esp + 0x24]
cmp esi, dword [ecx]
jbe 0x5361c1
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov dword [esp + 8], esi
jle 0x53655e
jmp 0x53e3ba
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x5365c0
jmp 0x53b484
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x5365c0
jmp 0x53b484
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x5365c0
jmp 0x53b484
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x5365c0
jmp 0x53b484
mov dword [esp + 8], esi
cmp dword [esp + 0x58], 0
jne 0x5365c0
jmp 0x53b484
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x53655e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
jmp 0x536228
add esi, 4
mov dword [esp + 8], esi
jmp 0x536299
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x53657c
movzx ecx, word [ecx]
cmp ecx, 0xa
je 0x536294
movzx edx, cx
cmp edx, 0xd
jne 0x53625e
mov esi, dword [esp + 8]
lea ecx, [esi + 2]
cmp ecx, eax
jae 0x5362b3
movzx edx, word [esi + 2]
cmp edx, 0xa
je 0x53621f
mov dword [esp + 8], ecx
jmp 0x536299
mov esi, dword [esp + 0x158]
cmp dword [esi + 0x6c], 0
jne 0x53655e
lea esi, [ecx - 0xb]
movzx esi, si
cmp esi, 2
jb 0x536294
add ecx, 0xffffdfd8
movzx ecx, cx
cmp ecx, 2
jb 0x536294
cmp edx, 0x85
jne 0x53655e
add dword [esp + 8], 2
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
inc edx
mov dword [esp + 0x10], edx
cmp edx, ecx
jl 0x536228
jmp 0x53655e
mov dword [esp + 8], ecx
cmp dword [esp + 0x58], 0
jne 0x5365c0
jmp 0x53b484
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x53655e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x53657c
movsx ecx, word [ecx]
movsx edx, cx
cmp ecx, 0x1fff
jle 0x536320
cmp edx, 0x202e
jg 0x536354
lea ecx, [ecx - 0x2000]
movzx ecx, cx
cmp ecx, 0xb
mov edx, dword [esp + 0x28]
jae 0x536396
jmp 0x53655e
movzx ecx, cx
cmp edx, 0x9f
jle 0x536380
cmp ecx, 0xa0
mov edx, dword [esp + 0x28]
je 0x53655e
cmp ecx, 0x1680
je 0x53655e
cmp ecx, 0x180e
jne 0x536396
jmp 0x53655e
movzx ecx, cx
cmp ecx, 0x202f
je 0x53655e
cmp ecx, 0x205f
mov edx, dword [esp + 0x28]
je 0x53655e
cmp ecx, 0x3000
jne 0x536396
jmp 0x53655e
cmp ecx, 9
mov edx, dword [esp + 0x28]
je 0x53655e
cmp ecx, 0x20
je 0x53655e
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, edx
jl 0x5362e7
jmp 0x53655e
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x53655e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x53657c
movsx ecx, word [ecx]
movsx edx, cx
cmp ecx, 0x1fff
jle 0x536420
cmp edx, 0x202e
jg 0x53644c
lea ecx, [ecx - 0x2000]
movzx ecx, cx
cmp ecx, 0xb
mov edx, dword [esp + 0x28]
jae 0x53655e
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, edx
jl 0x5363d1
jmp 0x53655e
movzx ecx, cx
cmp edx, 0x9f
jle 0x536470
cmp ecx, 0xa0
mov edx, dword [esp + 0x28]
je 0x536409
cmp ecx, 0x1680
je 0x536409
cmp ecx, 0x180e
je 0x536409
jmp 0x53655e
movzx ecx, cx
cmp ecx, 0x202f
mov edx, dword [esp + 0x28]
je 0x536409
cmp ecx, 0x3000
je 0x536409
cmp ecx, 0x205f
je 0x536409
jmp 0x53655e
cmp ecx, 9
mov edx, dword [esp + 0x28]
je 0x536409
cmp ecx, 0x20
je 0x536409
jmp 0x53655e
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x53655e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x53657c
movzx ecx, word [ecx]
lea edx, [ecx - 0xa]
movzx edx, dx
cmp edx, 4
jb 0x53655e
lea edx, [ecx - 0x2028]
movzx edx, dx
cmp edx, 2
jb 0x53655e
movzx ecx, cx
cmp ecx, 0x85
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
je 0x53655e
add dword [esp + 8], 2
inc edx
mov dword [esp + 0x10], edx
cmp edx, ecx
jl 0x5364a3
jmp 0x53655e
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x53655e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, eax
jae 0x53657c
movzx ecx, word [ecx]
lea edx, [ecx - 0xa]
movzx edx, dx
cmp edx, 4
jb 0x536541
lea edx, [ecx - 0x2028]
movzx edx, dx
cmp edx, 2
jb 0x536541
movzx ecx, cx
cmp ecx, 0x85
jne 0x53655e
add dword [esp + 8], 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x536512
jmp 0x53655e
lea eax, [edx + eax*2]
mov dword [esp + 8], eax
cmp dword [esp + 0x58], 0
jne 0x5365c0
jmp 0x53b484
mov ebp, ecx
mov dword [esp + 8], ebp
cmp dword [esp + 0x58], 0
jne 0x5365c0
jmp 0x53adb6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53655e
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53655e
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jle 0x53655e
jmp 0x53e3ba
cmp dword [esp + 0x58], 0
je 0x53b352
nop word cs:[eax + eax]
mov ebp, dword [esp + 0x14]
movzx edx, word [ebp]
cmp edx, 0xa1
ja case.0x5365de.98
xor eax, eax
mov dword [esp + 4], 0
jmp dword [edx*4 + 0x53f790]
add ebp, 2
movzx eax, dx
cmp eax, 0x2e
mov eax, 0x21
mov ecx, 0x2e
cmovb ecx, eax
mov eax, edx
sub eax, ecx
mov edi, eax
and edi, 1
movsx ecx, byte [eax + 0xa5e9d0]
mov dword [esp + 0x10], ecx
movsx ecx, byte [eax + 0xa5e9db]
mov esi, edx
mov edx, 0x3cf
bt edx, eax
mov edx, esi
mov eax, 0x7fffffff
cmovae eax, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], 0
jmp 0x53697d
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
cmp edx, 0x77
je case.0x5365de.119
mov dword [esp + 0x14], ebp
jmp 0x5365c0
add ebp, 2
movzx eax, dx
cmp eax, 0x47
mov eax, 0x48
mov ecx, 0x3b
cmova ecx, eax
mov eax, edx
sub eax, ecx
mov ecx, eax
and ecx, 1
mov dword [esp + 0x50], ecx
movsx edi, byte [eax + 0xa5e9d0]
movsx ecx, byte [eax + 0xa5e9db]
mov esi, edx
mov edx, 0x3cf
bt edx, eax
mov edx, esi
mov eax, 0x7fffffff
cmovae eax, ecx
mov dword [esp + 0x40], eax
jmp 0x536703
add ebp, 2
lea eax, [edx - 0x55]
mov ecx, edx
not ecx
and ecx, 1
mov dword [esp + 0x4c], ecx
movsx ecx, byte [edx + 0xa5e97b]
mov dword [esp + 0x10], ecx
movsx ecx, byte [edx + 0xa5e986]
mov edx, 0x3cf
bt edx, eax
mov edx, 0x7fffffff
cmovae edx, ecx
jmp 0x53717e
movzx eax, word [ebp + 2]
mov dword [esp + 0x40], eax
movzx eax, dx
cmp eax, 0x42
sete cl
cmp eax, 0x4f
sete al
or al, cl
movzx eax, al
mov dword [esp + 0x50], eax
add ebp, 4
xor edi, edi
mov dword [esp + 0x4c], 0
jmp 0x536db2
movzx eax, word [ebp + 2]
add eax, eax
mov ecx, eax
neg ecx
mov dword [esp + 0xc], ebp
movzx esi, word [ebp + ecx]
cmp esi, 0x87
ja 0x537a36
movzx ecx, si
cmp ecx, 0x81
je 0x537a36
mov dword [esp + 4], 0
jmp 0x537a47
cmp dword [esp + 0x34], 0
mov esi, dword [esp + 0x158]
mov eax, dword [esi + 0x78]
je 0x538e2f
mov edi, dword [esp + 8]
cmp edi, eax
je 0x5393a8
mov ebx, edx
lea eax, [edi - 2]
movzx edx, word [edi - 2]
and edx, 0xfc00
lea ecx, [edi - 4]
cmp edx, 0xdc00
cmovne ecx, eax
mov eax, dword [esp + 0x24]
cmp ecx, dword [eax]
jae 0x536795
mov eax, dword [esp + 0x24]
mov dword [eax], ecx
movzx eax, word [ecx]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5367c1
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ecx + 2]
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
mov edx, ebx
cmp dword [esi + 0x58], 0
je 0x539fd1
mov cl, 1
cmp eax, 0x5f
je 0x534558
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0xa60c94]
shl ecx, 7
sub eax, edx
mov edx, ebx
add eax, ecx
movzx eax, word [eax + eax + 0xa62e94]
movzx eax, byte [eax*8 + 0xa5f615]
mov eax, dword [eax*4 + 0xa5eb28]
or eax, 2
cmp eax, 3
sete cl
jmp 0x534558
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 8]
cmp ebx, dword [eax]
jae 0x53c5c8
mov dword [esp + 0x28], edx
lea ecx, [ebx + 2]
movzx eax, word [ebx]
cmp dword [esp + 0x34], 0
je 0x538dcb
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x538dcb
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ebx + 2]
add ebx, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x538dcd
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 8]
cmp ebx, dword [eax]
jae 0x53c606
cmp dword [esp + 0x34], 0
je 0x538ea6
movzx eax, word [ebp + 2]
mov ecx, eax
and ecx, 0xfc00
mov esi, edx
cmp ecx, 0xd800
jne 0x538f3d
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ebp + 4]
add ebp, 6
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x538f40
movzx eax, word [ebp + 2]
add ebp, 4
mov dword [esp + 0x50], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x40], eax
xor edi, edi
jmp 0x53697d
add ebp, 2
mov dword [esp + 0x50], 1
mov dword [esp + 0x40], 0x7fffffff
mov dword [esp + 0x10], 0
xor edi, edi
jmp 0x53697d
add ebp, 2
xor edi, edi
mov dword [esp + 0x40], 0x7fffffff
mov dword [esp + 0x10], 1
mov dword [esp + 0x50], 1
jmp 0x53697d
add ebp, 2
mov dword [esp + 0x40], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x50], 1
xor edi, edi
jmp 0x53697d
mov eax, 1
mov dword [esp + 0x50], eax
movzx eax, word [ebp + 2]
mov dword [esp + 0x40], eax
movzx eax, dx
cmp eax, 0x28
sete cl
cmp eax, 0x35
sete al
or al, cl
movzx edi, al
add ebp, 4
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ebp
movzx ebx, word [ebp]
cmp dword [esp + 0x34], 0
mov ecx, dword [esp + 0x158]
mov ebp, dword [esp + 8]
je 0x536a1e
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x536a1e
movzx eax, dx
xor edx, edx
cmp eax, 0x2e
jb 0x536be4
shl ebx, 0xa
and ebx, 0xffc00
mov eax, dword [esp + 0xc]
movzx eax, word [eax + 2]
and eax, 0x3ff
lea eax, [ebx + eax + 0x10000]
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0xa60c94]
shl ecx, 7
mov edx, eax
and edx, 0x7f
or edx, ecx
movzx ecx, word [edx + edx + 0xa62e94]
mov ecx, dword [ecx*8 + 0xa5f618]
test ecx, ecx
je 0x536be2
add ecx, eax
sub esp, 8
lea eax, [esp + 0xc0]
push eax
push ecx
call fcn.00541210
add esp, 0x10
mov edx, eax
jmp 0x536be4
mov eax, dword [esp + 0xc]
add eax, 2
mov dword [esp + 0x14], eax
movzx eax, dx
cmp eax, 0x2e
jb 0x536a87
mov dword [esp + 0x4c], edi
cmp dword [esp + 0x34], 0
je 0x536b1c
movzx eax, bx
cmp eax, 0x80
jb 0x536b1c
mov eax, ebx
shr eax, 7
movzx eax, byte [eax + 0xa60c94]
shl eax, 7
mov ecx, ebx
and ecx, 0x7f
or ecx, eax
movzx eax, word [ecx + ecx + 0xa62e94]
mov edi, dword [eax*8 + 0xa5f618]
add edi, ebx
cmp dword [esp + 0x10], 0
jg 0x536b38
mov edx, ebp
jmp 0x536b76
cmp dword [esp + 0x10], 0
jle 0x536abc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
nop word cs:[eax + eax]
cmp ebp, eax
jae 0x53b613
cmp bx, word [ebp]
jne 0x53eeed
add ebp, 2
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x536aa0
mov ecx, edi
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov edi, ebp
mov dword [esp + 8], ebp
je 0x5365c0
test ecx, ecx
jne 0x53c691
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov ecx, edi
mov edx, ecx
jge 0x539ecf
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, ecx
cmp edx, eax
jae 0x539eaa
cmp bx, word [edx]
jne 0x539ecf
add edx, 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x40]
jl 0x536af4
jmp 0x539ecf
cmp ebx, 0xff
mov edi, ebx
ja 0x536b2d
mov eax, dword [ecx + 0x40]
movzx edi, byte [eax + ebx]
cmp dword [esp + 0x10], 0
jle 0x536a80
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, ebp
nop word cs:[eax + eax]
cmp edx, eax
jae 0x53b64d
mov esi, edx
movzx edx, word [edx]
cmp bx, dx
je 0x536b6a
cmp edi, edx
jne 0x53eeed
mov edx, esi
add edx, 2
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x536b50
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov dword [esp + 0xc], edx
mov dword [esp + 8], edx
je 0x5365c0
cmp dword [esp + 0x4c], 0
jne 0x53c71f
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov edx, dword [esp + 0xc]
jge 0x539f08
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, dword [esp + 0xc]
cmp edx, eax
jae 0x539ee3
movzx ecx, word [edx]
cmp bx, cx
je 0x536bcb
cmp edi, ecx
jne 0x539f08
add edx, 2
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x40]
jl 0x536bb3
jmp 0x539f08
xor edx, edx
mov dword [esp + 0x4c], edi
cmp dword [esp + 0x10], 0
mov dword [esp + 0x28], edx
jle 0x536c70
mov eax, dword [esp + 0x18]
mov edi, dword [eax]
lea esi, [edi - 4]
lea eax, [edx + edx]
mov dword [esp + 0x14], edi
mov dword [esp + 4], eax
sub edi, eax
mov ebx, ebp
xor ebp, ebp
jmp 0x536c20
mov eax, 2
jmp 0x536c64
cmp ebx, esi
ja 0x536c2e
mov eax, dword [ebx]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx]
je 0x536c0f
test edx, edx
jle 0x53b55b
cmp ebx, edi
ja 0x53b55b
sub esp, 4
lea eax, [esp + 0xbc]
push dword [esp + 8]
push eax
push ebx
call sub.msvcrt.dll_memcmp
mov edx, dword [esp + 0x38]
add esp, 0x10
test eax, eax
mov eax, edx
jne 0x53b55b
lea ebx, [ebx + eax*2]
inc ebp
cmp ebp, dword [esp + 0x10]
jl 0x536c20
jmp 0x536c72
mov ebx, ebp
mov ebp, dword [esp + 0xc]
lea eax, [ebp + 4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov dword [esp + 8], ebx
je 0x5365c0
cmp dword [esp + 0x4c], 0
jne 0x53bf74
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
mov edi, ebx
jge 0x539fbd
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
lea ebp, [eax - 4]
lea ecx, [edx + edx]
mov dword [esp + 0x4c], eax
mov dword [esp + 8], ecx
sub eax, ecx
mov dword [esp + 4], eax
mov edi, ebx
jmp 0x536cd1
mov eax, 2
mov edi, esi
jmp 0x536d1b
mov esi, edi
cmp edi, ebp
ja 0x536ce1
mov eax, dword [esi]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx]
je 0x536cc8
test edx, edx
mov edi, esi
jle 0x537e5a
cmp edi, dword [esp + 4]
ja 0x537e5a
sub esp, 4
lea eax, [esp + 0xbc]
push dword [esp + 0xc]
push eax
push edi
call sub.msvcrt.dll_memcmp
mov edx, dword [esp + 0x38]
add esp, 0x10
test eax, eax
mov eax, edx
jne 0x537e5a
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x40]
jl 0x536cd1
jmp 0x539fbd
movzx edi, word [ebp + 2]
add ebp, 4
mov dword [esp + 0x4c], 0
mov dword [esp + 0x40], edi
jmp 0x536daa
add ebp, 2
mov dword [esp + 0x4c], 1
mov dword [esp + 0x40], 0x7fffffff
jmp 0x536da8
add ebp, 2
mov dword [esp + 0x50], 0
mov dword [esp + 0x40], 0x7fffffff
mov edi, 1
mov dword [esp + 0x4c], 1
jmp 0x536db2
add ebp, 2
mov dword [esp + 0x40], 1
xor edi, edi
mov dword [esp + 0x4c], 1
jmp 0x536daa
movzx eax, word [ebp + 2]
mov dword [esp + 0x40], eax
add ebp, 4
mov dword [esp + 0x4c], 1
xor edi, edi
mov dword [esp + 0x50], 0
lea ecx, [ebp + 2]
movzx ebx, word [ebp]
cmp dword [esp + 0x34], 0
mov esi, dword [esp + 8]
je 0x536df0
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x536df0
shl ebx, 0xa
and ebx, 0xffc00
movzx eax, word [ebp + 2]
add ebp, 4
and eax, 0x3ff
lea ebx, [ebx + eax + 0x10000]
mov ecx, ebp
mov dword [esp + 0x14], ecx
movzx eax, dx
cmp eax, 0x48
mov dword [esp + 0x28], ebx
jb 0x536e52
cmp dword [esp + 0x34], 0
je 0x536ec7
cmp ebx, 0x80
jb 0x536ec7
mov eax, ebx
sar eax, 0x1f
shr eax, 0x19
add eax, ebx
mov ecx, eax
and ecx, 0x7fffff80
sar eax, 7
movzx eax, byte [eax + 0xa60c94]
shl eax, 7
mov edx, ebx
sub edx, ecx
add edx, eax
movzx eax, word [edx + edx + 0xa62e94]
mov eax, dword [eax*8 + 0xa5f618]
add eax, ebx
jmp 0x536ee1
cmp dword [esp + 0x34], 0
je 0x536f76
test edi, edi
jle 0x537009
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor edx, edx
mov ebp, esi
nop
cmp ebp, eax
jae 0x53b59f
movzx ecx, word [ebp]
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x536eb2
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [ebp + 2]
add ebp, 4
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
cmp ebx, ecx
jne 0x536ebd
jmp 0x53eeed
add ebp, 2
cmp ebx, ecx
je 0x53eeed
inc edx
cmp edx, edi
jl 0x536e70
jmp 0x53700b
cmp ebx, 0xff
mov dword [esp + 0x10], ebx
ja 0x536ee5
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x40]
movzx eax, byte [eax + ebx]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x34], 0
je 0x536fae
test edi, edi
jle 0x5370a7
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
xor eax, eax
mov ebp, dword [esp + 8]
nop word cs:[eax + eax]
cmp ebp, edx
jae 0x53b5d9
movzx ecx, word [ebp]
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x536f4b
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [ebp + 2]
add ebp, 4
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
jmp 0x536f4e
add ebp, 2
mov ebx, dword [esp + 0x28]
cmp ebx, ecx
je 0x53f018
cmp dword [esp + 0x10], ecx
mov dword [esp + 4], 0
je case.0x53dfa4.6
inc eax
cmp eax, edi
jl 0x536f10
jmp 0x5370ab
test edi, edi
jle 0x537009
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov ebp, esi
nop dword [eax + eax]
cmp ebp, eax
jae 0x53b694
movzx edx, word [ebp]
cmp ebx, edx
je 0x53eeed
add ebp, 2
inc ecx
cmp ecx, edi
jl 0x536f90
jmp 0x53700b
test edi, edi
jle 0x5370a7
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov ebp, dword [esp + 8]
nop word cs:[eax + eax]
cmp ebp, eax
jae 0x53b6ce
mov ebx, ebp
movzx edx, word [ebp]
cmp dword [esp + 0x28], edx
je 0x53f018
cmp dword [esp + 0x10], edx
mov dword [esp + 4], 0
je case.0x53dfa4.6
mov ebp, ebx
add ebp, 2
inc ecx
cmp ecx, edi
jl 0x536fd0
jmp 0x5370ab
mov ebp, esi
cmp edi, dword [esp + 0x40]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], ebp
je 0x5365c0
cmp dword [esp + 0x50], 0
jne 0x53c23d
cmp dword [esp + 0x34], 0
je 0x537dd0
cmp edi, dword [esp + 0x40]
mov ebp, dword [esp + 0xc]
mov ebx, dword [esp + 0x28]
jge 0x539aea
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, dword [esp + 0xc]
cmp ebp, eax
jae 0x539ac5
movzx ecx, word [ebp]
mov esi, ecx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x53708f
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
cmp ebx, ecx
je 0x539aea
lea ebp, [ebp + edx*2]
inc edi
cmp edi, dword [esp + 0x40]
jl 0x53704f
jmp 0x539aea
mov ebp, dword [esp + 8]
cmp edi, dword [esp + 0x40]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], ebp
je 0x5365c0
cmp dword [esp + 0x50], 0
jne 0x53c392
cmp dword [esp + 0x34], 0
je 0x537e0e
cmp edi, dword [esp + 0x40]
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x28]
jge 0x534673
mov eax, dword [esp + 0x18]
mov ebp, dword [eax]
mov eax, dword [esp + 0xc]
cmp eax, ebp
jae 0x539afe
movzx ecx, word [eax]
mov esi, ecx
and esi, 0xfc00
mov edx, 1
cmp esi, 0xd800
jne 0x537139
shl ecx, 0xa
and ecx, 0xffc00
mov esi, eax
movzx edx, word [eax + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
cmp ebx, ecx
jne 0x537143
jmp 0x539b34
mov esi, eax
cmp ebx, ecx
je 0x539b34
cmp dword [esp + 0x10], ecx
je 0x539b34
mov eax, esi
lea eax, [eax + edx*2]
inc edi
cmp edi, dword [esp + 0x40]
jl 0x5370ef
jmp 0x534673
mov eax, edx
movzx edx, word [ebp + 2]
movzx eax, ax
xor ecx, ecx
cmp eax, 0x5c
sete cl
mov dword [esp + 0x4c], ecx
add ebp, 4
mov dword [esp + 0x10], 0
xor edi, edi
movzx ebx, word [ebp]
mov eax, ebx
add eax, 0xfffffff1
movzx eax, ax
cmp eax, 1
mov esi, dword [esp + 8]
ja 0x5371b5
movzx eax, bx
xor ecx, ecx
cmp eax, 0xf
sete cl
mov dword [esp + 0x44], ecx
movzx ecx, word [ebp + 2]
movzx eax, word [ebp + 4]
mov dword [esp + 0x54], eax
add ebp, 6
jmp 0x5371bd
add ebp, 2
mov ecx, 0xffffffff
mov dword [esp + 0x14], ebp
cmp dword [esp + 0x10], 0
mov dword [esp + 0x28], edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x50], ecx
jle 0x53731b
test ecx, ecx
js 0x537499
cmp ecx, 0xa
ja case.default.0x538e07
jmp dword [ecx*4 + 0x53fa98]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53b7c5
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x53726a
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x53726a
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
cmp edx, 0x180d
jg 0x537274
cmp edx, 0x84
jg 0x5372a2
lea esi, [edx - 9]
cmp esi, 0x17
ja case.0x53727f.8203
mov ebx, 0x80001f
bt ebx, esi
jb case.0x53727f.8192
jmp case.0x53727f.8203
mov edi, esi
cmp edx, 0x180d
jle 0x53724e
lea esi, [edx - 0x2000]
cmp esi, 0x5f
ja case.default.0x53727f
jmp dword [esi*4 + 0x53fac4]
cmp dword [esp + 0x44], 0
jne 0x53eeed
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x537200
jmp 0x53731f
cmp edx, 0x85
je case.0x53727f.8192
cmp edx, 0xa0
je case.0x53727f.8192
cmp edx, 0x1680
je case.0x53727f.8192
jmp case.0x53727f.8203
cmp edx, 0x3000
je case.0x53727f.8192
cmp edx, 0x180e
je case.0x53727f.8192
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0xa60c94]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0xa62e94]
movzx edx, byte [edx*8 + 0xa5f615]
xor ebx, ebx
cmp dword [edx*4 + 0xa5eb28], 6
sete bl
cmp dword [esp + 0x44], ebx
jne 0x537291
jmp 0x53eeed
mov dword [esp + 0xc], esi
mov edx, dword [esp + 0x28]
mov eax, edx
sub eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
je 0x5365c0
cmp dword [esp + 0x4c], 0
jne 0x53c073
mov ecx, dword [esp + 0x50]
test ecx, ecx
mov edi, dword [esp + 0x40]
js 0x537c2f
cmp ecx, 0xa
mov edx, dword [esp + 0xc]
ja case.default.0x53dfa4
jmp dword [ecx*4 + 0x53fef0]
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x53656c
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x534a01
movzx edx, word [ebp]
cmp dword [esp + 0x34], 0
mov ecx, 1
je 0x5373c5
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x5373c5
shl edx, 0xa
and edx, 0xffc00
movzx ecx, word [ebp + 2]
and ecx, 0x3ff
lea edx, [edx + ecx + 0x10000]
mov ecx, 2
cmp edx, 0x180d
jle 0x5373df
lea esi, [edx - 0x2000]
cmp esi, 0x5f
ja case.default.0x5373d8
jmp dword [esi*4 + 0x53ff1c]
cmp edx, 0x84
jg 0x537420
lea esi, [edx - 9]
cmp esi, 0x17
ja case.0x5373d8.8203
mov edi, 0x80001f
bt edi, esi
jae case.0x5373d8.8203
cmp dword [esp + 0x44], 0
jne 0x53656c
lea ebp, [ebp + ecx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x53737e
jmp 0x53656c
cmp edx, 0x85
je case.0x5373d8.8192
cmp edx, 0xa0
je case.0x5373d8.8192
cmp edx, 0x1680
je case.0x5373d8.8192
jmp case.0x5373d8.8203
cmp edx, 0x3000
je case.0x5373d8.8192
cmp edx, 0x180e
je case.0x5373d8.8192
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0xa60c94]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0xa62e94]
movzx edx, byte [edx*8 + 0xa5f615]
xor ebx, ebx
cmp dword [edx*4 + 0xa5eb28], 6
sete bl
cmp dword [esp + 0x44], ebx
jne 0x537404
jmp 0x53656c
movzx eax, bx
cmp eax, 0x16
jne 0x537b50
mov eax, 1
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov edi, dword [esp + 0xc]
cmp edi, edx
jae 0x53b75e
lea esi, [edi + 2]
movzx ecx, word [edi]
cmp dword [esp + 0x34], 0
je 0x5374fc
mov ebx, ecx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x5374fc
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
jmp 0x5374fe
mov edi, esi
mov dword [esp + 4], eax
cmp edi, edx
jae 0x5375f0
mov esi, ecx
sar esi, 0x1f
shr esi, 0x19
add esi, ecx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0xa60c94]
shl esi, 7
sub ecx, ebx
add ecx, esi
movzx ecx, word [ecx + ecx + 0xa62e94]
movzx esi, byte [ecx*8 + 0xa5f616]
nop dword [eax]
movzx ecx, word [edi]
cmp dword [esp + 0x34], 0
mov ebx, 1
je 0x537590
mov ebp, ecx
and ebp, 0xfc00
cmp ebp, 0xd800
jne 0x537590
shl ecx, 0xa
and ecx, 0xffc00
mov eax, edi
movzx ebx, word [edi + 2]
and ebx, 0x3ff
lea ecx, [ecx + ebx + 0x10000]
mov ebx, 2
jmp 0x537592
mov eax, edi
mov ebp, ecx
sar ebp, 0x1f
shr ebp, 0x19
add ebp, ecx
mov edi, ebp
and edi, 0x7fffff80
sar ebp, 7
movzx ebp, byte [ebp + 0xa60c94]
shl ebp, 7
sub ecx, edi
add ecx, ebp
movzx ecx, word [ecx + ecx + 0xa62e94]
movzx ecx, byte [ecx*8 + 0xa5f616]
mov ebp, 1
shl ebp, cl
and ebp, dword [esi*4 + 0xa5eba0]
je 0x5375e0
mov edi, eax
lea edi, [edi + ebx*2]
cmp edi, edx
jb 0x5375e6
jmp 0x5375f0
mov edi, eax
cmp edi, edx
jae 0x5375f0
test ebp, ebp
mov esi, ecx
jne 0x537540
cmp edi, edx
jb 0x537619
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x537619
mov edx, dword [esp + 0x24]
cmp edi, dword [edx]
jbe 0x537619
mov edx, dword [esp + 0x20]
mov dword [edx], 1
cmp ecx, 1
jg 0x53bc58
mov dword [esp + 0xc], edi
mov eax, dword [esp + 4]
cmp eax, dword [esp + 0x10]
lea eax, [eax + 1]
jl 0x5374ae
jmp 0x53731f
mov dword [esp + 0x28], edx
movzx edx, word [ebp + 0x22]
lea esi, [edx - 0x62]
movzx eax, si
cmp eax, 0xb
ja 0x534266
mov eax, 0x73f
bt eax, esi
jae 0x534304
cmp esi, 7
seta al
mov dword [esp + 0xc], eax
mov eax, edx
and eax, 1
xor ecx, ecx
cmp esi, 8
cmovb ecx, eax
mov dword [esp + 4], ecx
mov eax, 0x3cf
bt eax, esi
movsx eax, byte [edx + 0xa5e979]
mov ecx, 0x7fffffff
cmovae ecx, eax
mov dword [esp + 0x10], ecx
lea eax, [ebp + 0x24]
mov dword [esp + 0x14], eax
movsx ebx, byte [edx + 0xa5e96e]
cmp dword [esp + 0x34], 0
jne 0x534295
jmp 0x534342
movzx eax, dx
xor ecx, ecx
cmp eax, 0x72
sete cl
mov dword [esp + 0xc], ecx
movzx ebx, word [ebp + 2]
add ebx, ebx
add ebp, 4
cmp ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x158]
jge 0x537dc1
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + ebx*4]
test eax, eax
js 0x537dc1
mov edx, ebx
or edx, 1
mov ecx, dword [ecx + edx*4]
sub ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x5399c1
movzx eax, dx
xor ecx, ecx
cmp eax, 0x74
sete cl
mov dword [esp + 0xc], ecx
movzx ecx, word [ebp + 4]
lea eax, [ebp + 6]
mov edi, dword [esp + 0x158]
cmp dword [edi + 0x54], 1
sbb edx, edx
mov dword [esp + 0x10], edx
test ecx, ecx
je 0x538e9d
mov edx, dword [edi + 0x24]
movzx esi, word [ebp + 2]
imul esi, edx
add esi, esi
add esi, dword [edi + 0x30]
inc ecx
add edx, edx
movzx ebx, word [esi]
add ebx, ebx
cmp ebx, dword [esp + 0x2c]
jge 0x537758
mov edi, dword [esp + 0x158]
mov ebp, dword [edi + 0xc]
mov edi, dword [ebp + ebx*4]
test edi, edi
jns 0x5399a9
dec ecx
add esi, edx
cmp ecx, 1
jg 0x537737
jmp 0x5399b8
mov eax, ebp
mov ebp, dword [esp + 0x158]
mov ebx, dword [ebp + 0xb0]
xor esi, esi
cmp dword [ebp + 0x9c], 1
jne 0x53778e
mov dword [ebp + 0x9c], 0
mov esi, 1
mov ecx, eax
mov eax, ecx
mov edi, eax
lea edx, [eax + 4]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push 0
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
cmp eax, 1
je 0x5390e8
cmp eax, 0xfffffc19
je 0x5390e8
mov dword [ebp + 0xb0], ebx
cmp eax, 0xfffffc20
je 0x5377e9
test eax, eax
jne 0x53b552
mov ax, word [edi + 2]
jmp 0x537812
mov edx, edi
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x53da7b
movzx edx, word [edx]
cmp edx, 0x77
je 0x537812
movzx ecx, word [ecx]
cmp ecx, 0x77
jne 0x53da7b
movzx eax, ax
lea ecx, [edi + eax*2]
movzx eax, word [edi + eax*2]
cmp eax, 0x77
je 0x537790
jmp 0x5390f7
mov eax, ebp
mov ebp, dword [esp + 0x158]
mov ebx, dword [ebp + 0xb0]
xor esi, esi
cmp dword [ebp + 0x9c], 1
jne 0x537853
mov dword [ebp + 0x9c], 0
mov esi, 1
mov edi, eax
lea edx, [eax + 4]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push 0
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [ebp + 0xb0], ebx
test eax, eax
jns 0x5378b1
cmp eax, 0xfffffc20
jne 0x538fef
mov edx, edi
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x539000
movzx edx, word [edx]
cmp edx, 0x77
jne 0x5378bf
mov edx, edi
jmp 0x5378cd
jne 0x53bd19
mov edx, edi
mov ax, word [edx + 2]
jmp 0x5378cd
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edx, edi
jne 0x539000
movzx eax, ax
lea ecx, [edx + eax*2]
movzx eax, word [edx + eax*2]
cmp eax, 0x77
mov eax, ecx
je 0x537853
jmp 0x539012
movzx ebx, word [ebp + 2]
lea edi, [ebp + 4]
mov ecx, ebp
movzx ebp, word [ebp + 4]
cmp ebp, 0x76
mov dword [esp + 0x28], edx
jne 0x5379f3
mov eax, dword [0xa5d330]
test eax, eax
je 0x5379e3
mov dword [esp + 4], ebx
mov dword [esp + 0x74], 2
mov ebx, ecx
movzx ecx, word [ebx + 6]
mov dword [esp + 0x78], ecx
mov esi, dword [esp + 0x158]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esi + 0x78]
mov dword [esp + 0x80], ecx
mov edx, dword [esi + 0x7c]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x30]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x88], edx
mov edx, dword [esp + 8]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x8c], edx
movzx ecx, word [ebx + 8]
mov dword [esp + 0x9c], ecx
movzx ecx, word [ebx + 0xa]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0x2c]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sar ecx, 1
mov dword [esp + 0x90], ecx
movzx ecx, word [esi + 0x94]
cmp ecx, 1
sbb edx, edx
or edx, ecx
mov dword [esp + 0x94], edx
mov ecx, dword [esi + 0xac]
mov dword [esp + 0x98], ecx
mov ecx, dword [esi + 0xb4]
mov dword [esp + 0xa4], ecx
sub esp, 0xc
lea ecx, [esp + 0x80]
push ecx
call eax
add esp, 0x10
test eax, eax
jg 0x53bd36
mov ebx, dword [esp + 4]
jne 0x53b552
movzx eax, byte [0xa5ea8a]
mov bp, word [edi + eax*2]
lea edi, [edi + eax*2]
sub ebx, eax
mov dword [esp + 4], ebx
lea eax, [ebp - 0x8d]
movzx eax, ax
cmp eax, 0x10
ja case.0x537a09.5
jmp dword [eax*4 + 0x540248]
movzx eax, word [edi + 2]
add eax, eax
cmp eax, dword [esp + 0x2c]
jge 0x534606
mov ecx, dword [esp + 0x158]
mov ecx, dword [ecx + 0xc]
cmp dword [ecx + eax*4], 0
setns al
jmp 0x534608
mov ecx, dword [esp + 0x38]
mov edi, dword [ecx + 4]
mov dword [esp + 4], edi
mov ecx, dword [ecx]
mov dword [esp + 0x38], ecx
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
lea ecx, [esi - 0x7d]
movzx ecx, cx
cmp ecx, 4
jb 0x53b88e
mov ebx, dword [esp + 0xc]
sub ebx, eax
lea eax, [esi - 0x82]
movzx ecx, ax
cmp ecx, 9
ja 0x537bee
mov ecx, 0x318
bt ecx, eax
jae 0x539178
mov dword [esp + 0x14], ebx
movzx ebx, word [ebx + 4]
mov eax, dword [ebp + 0xa8]
test eax, eax
je 0x537aa2
cmp dword [eax + 4], ebx
je 0x53c682
mov ecx, ebp
lea ebp, [ebx + ebx]
mov eax, 0xffff0000
and eax, dword [ecx + 0x94]
or eax, ebx
mov dword [ecx + 0x94], eax
cmp ebp, dword [ecx + 0x14]
jge 0x537bd9
mov dword [esp + 0x28], edx
mov edi, dword [esp + 0x2c]
cmp ebp, edi
jle 0x537b13
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xc]
lea ecx, [eax + ebp*4]
lea edx, [eax + edi*4]
mov dword [esp + 0x10], edx
lea edx, [eax + edi*4 + 4]
cmp edx, ecx
cmova ecx, edx
neg eax
lea edx, [edi*4]
sub eax, edx
lea eax, [ecx + eax + 3]
and eax, 0xfffffffc
sub esp, 4
push eax
push 0xff
push dword [esp + 0x1c]
call sub.msvcrt.dll_memset
add esp, 0x10
mov eax, dword [esp + 0x158]
mov edx, eax
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
sub ecx, ebx
mov ecx, dword [eax + ecx*4]
mov dword [eax + ebp*4], ecx
mov ecx, dword [esp + 8]
sub ecx, dword [edx + 0x78]
mov ebx, edx
sar ecx, 1
mov edx, ebp
or edx, 1
mov dword [eax + edx*4], ecx
cmp edi, ebp
lea eax, [ebp + 2]
mov ebp, ebx
cmovle edi, eax
mov edx, dword [esp + 0x28]
jmp 0x537bea
cmp dword [esp + 0x34], 0
je 0x539080
lea eax, [ebx - 6]
movzx eax, ax
cmp eax, 0xf
ja case.default.0x53dfa4
mov dword [esp + 4], 0xfffffff2
jmp dword [eax*4 + 0x53fa18]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53ce73
movzx edx, word [edi]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x537bb1
add edi, 4
mov dword [esp + 0xc], edi
jmp 0x537bcd
add edi, 2
cmp edx, 0x7f
mov dword [esp + 0xc], edi
ja 0x537bcd
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
jne 0x53eeed
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x537b89
jmp 0x53731f
or eax, 0x10000
mov dword [ecx + 0x94], eax
mov ebp, ecx
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
movzx eax, dx
cmp eax, 0x78
mov dword [esp + 0x2c], edi
je 0x537c11
cmp eax, 0x7b
je 0x53c514
mov ecx, dword [esp + 4]
cmp dword [esp + 8], ecx
jne 0x53afcc
movzx eax, si
mov edx, dword [esp + 0xc]
add edx, 4
cmp eax, 0x81
mov dword [esp + 0x14], edx
jne 0x5365c0
jmp 0x53c53b
movzx ebp, di
cmp ebp, 0x16
mov ecx, dword [esp + 0xc]
jne 0x538ee7
mov eax, dword [esp + 0x10]
cmp edx, eax
mov edx, eax
mov ebp, ecx
jle 0x534224
mov ebp, ecx
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
cmp ebp, eax
jae 0x5341ff
mov dword [esp + 0x10], edx
lea edx, [ebp + 2]
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
je 0x537ca7
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x537ca7
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
add ebp, 4
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
cmp ebp, eax
jb 0x537cb1
jmp 0x537d84
mov ebp, edx
cmp ebp, eax
jae 0x537d84
mov edx, ecx
sar edx, 0x1f
shr edx, 0x19
add edx, ecx
mov esi, edx
and esi, 0x7fffff80
sar edx, 7
movzx edx, byte [edx + 0xa60c94]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0xa62e94]
movzx edx, byte [ecx*8 + 0xa5f616]
nop word cs:[eax + eax]
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov esi, 1
je 0x537d2f
mov edi, ecx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x537d2f
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [ebp + 2]
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
mov esi, 2
mov edi, ecx
sar edi, 0x1f
shr edi, 0x19
add edi, ecx
mov ebx, edi
and ebx, 0x7fffff80
sar edi, 7
movzx edi, byte [edi + 0xa60c94]
shl edi, 7
sub ecx, ebx
add ecx, edi
movzx ecx, word [ecx + ecx + 0xa62e94]
movzx ecx, byte [ecx*8 + 0xa5f616]
mov ebx, 1
shl ebx, cl
and ebx, dword [edx*4 + 0xa5eba0]
je 0x537d76
lea ebp, [ebp + esi*2]
cmp ebp, eax
jae 0x537d84
test ebx, ebx
mov edx, ecx
jne 0x537cf0
cmp ebp, eax
jb 0x537dad
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x537dad
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x537dad
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x53e3ba
mov edx, dword [esp + 0x10]
inc edx
cmp edx, dword [esp + 0x28]
jl 0x537c51
jmp 0x534224
cmp dword [edi + 0x54], 1
sbb eax, eax
mov dword [esp + 0x10], eax
jmp 0x5399c1
cmp edi, dword [esp + 0x40]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
jge 0x53a295
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edx, dword [esp + 0xc]
cmp edx, eax
jae 0x53a270
movzx ecx, word [edx]
cmp esi, ecx
je 0x53a295
add edx, 2
inc edi
cmp edi, dword [esp + 0x40]
jl 0x537dec
jmp 0x53a295
cmp edi, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
jge 0x5349ed
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
cmp ecx, eax
jae 0x53a2a9
mov edx, ecx
movzx ecx, word [ecx]
cmp esi, ecx
je 0x5349eb
cmp dword [esp + 0x10], ecx
je 0x5349eb
mov ecx, edx
add ecx, 2
inc edi
cmp edi, dword [esp + 0x40]
jl 0x537e2a
jmp 0x5349ed
cmp edi, dword [esp + 0x4c]
jb 0x539fbd
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x539fbd
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x539fbb
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov edi, esi
jle 0x539fbd
jmp 0x53bc58
mov eax, dword [esp + 0x158]
mov ecx, eax
mov eax, dword [ecx + 0x98]
add eax, eax
add eax, dword [ecx + 0x78]
cmp dword [esp + 8], eax
je 0x5341a4
jmp 0x53bd36
add ebp, 2
mov eax, dword [esp + 8]
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], ebp
jmp 0x5365c0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x53cab6
movzx eax, word [edx]
cmp dword [esp + 0x34], 0
je 0x537efd
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
je 0x538063
add edx, 2
cmp eax, 0xff
mov dword [esp + 8], edx
ja 0x5341a4
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
je 0x5341a4
jmp 0x53eeed
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x53caf4
cmp dword [esp + 0x34], 0
setne cl
movzx eax, word [edx]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
sete dl
cmp eax, 0xff
ja 0x53f018
and cl, dl
mov dword [esp + 4], 0
jne case.0x53dfa4.6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
jne 0x5380c6
jmp 0x53eeed
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x53cb32
movzx eax, word [edx]
cmp dword [esp + 0x34], 0
je 0x537fae
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
je 0x538063
add edx, 2
cmp eax, 0xff
mov dword [esp + 8], edx
ja 0x5341a4
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
je 0x5341a4
jmp 0x53eeed
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x53cb70
cmp dword [esp + 0x34], 0
setne cl
movzx eax, word [edx]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
sete dl
cmp eax, 0xff
ja 0x53f018
and cl, dl
mov dword [esp + 4], 0
jne case.0x53dfa4.6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
jne 0x5380c6
jmp 0x53eeed
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x53cbae
movzx eax, word [edx]
cmp dword [esp + 0x34], 0
je 0x539186
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x539186
add edx, 4
mov dword [esp + 8], edx
jmp 0x5341a4
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jae 0x53cbec
cmp dword [esp + 0x34], 0
setne cl
movzx eax, word [edx]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
sete dl
cmp eax, 0xff
ja 0x53f018
and cl, dl
mov dword [esp + 4], 0
jne case.0x53dfa4.6
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je 0x53eeed
add dword [esp + 8], 2
jmp 0x5341a4
mov esi, dword [esp + 0x158]
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x7c]
test ecx, ecx
je 0x539bb3
mov edx, dword [esp + 8]
cmp edx, eax
jae 0x539be6
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push edx
call fcn.00541090
add esp, 0x20
test eax, eax
je 0x539be6
jmp 0x53eeed
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax]
jae 0x53cc2a
add ecx, 2
mov dword [esp + 8], ecx
jmp 0x5341a4
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edi, dword [esp + 8]
cmp edi, ecx
jae 0x53cc68
lea eax, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x53a1db
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
mov ebx, dword [esp + 0x158]
jne 0x53a1e2
shl edx, 0xa
and edx, 0xffc00
movzx eax, word [edi + 2]
add edi, 4
and eax, 0x3ff
lea edx, [edx + eax + 0x10000]
mov eax, edi
cmp edx, 0xc
jg 0x53a1eb
lea ecx, [edx - 0xb]
cmp ecx, 2
jb 0x53a225
jmp 0x534535
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 8]
cmp edi, dword [eax]
jae 0x53cca6
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x34], 0
je 0x5391ad
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5391ad
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x5391af
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 8]
cmp edi, dword [eax]
jae 0x53cce4
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x34], 0
je 0x5391e4
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5391e4
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x5391e6
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 8]
cmp edi, dword [eax]
jae 0x53cd22
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x34], 0
je 0x53921b
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x53921b
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x53921d
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 8]
cmp esi, dword [eax]
jae 0x53cd60
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x539246
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x539246
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x539248
mov dword [esp + 0xc], ebp
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, dword [esp + 8]
cmp ebp, eax
jae 0x53cd9e
lea edx, [ebp + 2]
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
je 0x53926f
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x53926f
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
add ebp, 4
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
cmp ebp, eax
jb 0x539279
jmp 0x539340
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x4c], 0
jne 0x53bd36
cmp dword [eax + 0x5c], 0
je case.0x5365de.23
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [eax]
jb 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5341a4
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
ja 0x5346bb
jmp 0x5341a4
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebx, dword [esp + 8]
cmp ebx, eax
mov edi, dword [esp + 0x158]
jae 0x5346a1
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x53a1a6
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push ebx
call fcn.00541090
add esp, 0x20
test eax, eax
je 0x53c7be
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
jmp 0x534695
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edi, dword [esp + 8]
cmp edi, eax
jae 0x539138
mov esi, dword [esp + 0x158]
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x53aaa4
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push edi
call fcn.00541090
add esp, 0x20
test eax, eax
jne 0x5341a4
jmp 0x53cf25
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x48], 0
je case.0x5365de.1
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax + 0x78]
je 0x53bd36
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax + 0x78]
je 0x5341a4
jmp 0x53bd36
mov esi, dword [esp + 0x158]
cmp dword [esi + 0x48], 0
mov eax, dword [esi + 0x78]
mov edi, dword [esp + 8]
je 0x53849a
cmp edi, eax
je 0x53bd36
cmp edi, eax
je 0x5341a4
mov ecx, dword [esp + 0x18]
cmp edi, dword [ecx]
je 0x53bd36
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x53a381
cmp edi, eax
jbe 0x53bd36
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push edi
call fcn.00541140
add esp, 0x20
test eax, eax
jne 0x5341a4
jmp 0x53bd36
cmp dword [esp + 0x34], 0
je 0x539c7f
movzx ecx, word [ebp + 2]
mov edx, ecx
and edx, 0xfc00
xor eax, eax
cmp edx, 0xd800
sete al
inc eax
mov edx, dword [esp + 0x18]
mov edx, dword [edx]
mov esi, edx
mov edi, dword [esp + 8]
sub esi, edi
sar esi, 1
cmp eax, esi
jg 0x53d58b
cmp cx, word [edi]
jne 0x53eeed
add ebp, 4
add edi, 2
mov dword [esp + 8], edi
mov dword [esp + 0x14], ebp
cmp eax, 2
jl 0x5365c0
dec eax
mov edx, dword [esp + 0x14]
movzx ecx, word [edx]
add edx, 2
mov dword [esp + 0x14], edx
mov dword [esp + 4], 0
mov edx, dword [esp + 8]
cmp cx, word [edx]
lea edx, [edx + 2]
mov dword [esp + 8], edx
je 0x538536
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 8]
cmp edi, dword [eax]
jae 0x53cddc
cmp dword [esp + 0x34], 0
movzx eax, word [ebp + 2]
je 0x539e51
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
mov esi, dword [esp + 0x158]
jne 0x539f1c
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [ebp + 4]
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
mov edx, 2
jmp 0x539f57
movzx edx, word [ebp + 2]
add ebp, 4
mov dword [esp + 0x4c], 1
xor edi, edi
mov dword [esp + 0x10], edx
jmp 0x537180
add ebp, 2
mov edi, 1
mov edx, 0x7fffffff
jmp 0x53861f
add ebp, 2
mov edx, 1
mov dword [esp + 0x10], 0
mov edi, 1
mov dword [esp + 0x4c], 0
jmp 0x537180
movzx edx, word [ebp + 2]
add ebp, 4
mov edi, 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x4c], 0
jmp 0x537180
lea edi, [ebp + 4]
movzx eax, word [ebp + 2]
lea ecx, [ebp + eax*2]
mov dword [esp + 0x14], ecx
movzx eax, word [ebp + eax*2]
lea ecx, [eax - 0x62]
movzx edx, cx
cmp edx, 0xb
ja 0x534887
mov edx, 0x73f
bt edx, ecx
jae 0x53a2df
add dword [esp + 0x14], 2
cmp ecx, 7
seta dl
mov dword [esp + 4], edx
mov edx, eax
and edx, 1
xor ebp, ebp
cmp ecx, 8
cmovb ebp, edx
movsx ebx, byte [eax + 0xa5e96e]
movsx eax, byte [eax + 0xa5e979]
mov edx, 0x3cf
bt edx, ecx
mov ecx, 0x7fffffff
cmovae ecx, eax
mov dword [esp + 0x10], ecx
test ebx, ebx
jg 0x53489e
jmp 0x534915
movzx eax, word [ebp + 2]
lea edi, [eax + eax]
mov esi, dword [esp + 0x158]
add edi, dword [esi + 0x74]
test eax, eax
je 0x539cad
movzx eax, word [edi + 4]
jmp 0x539caf
cmp dword [esp + 0x34], 0
movzx eax, word [ebp + 2]
je 0x539e29
test ax, ax
mov ecx, dword [esp + 0x158]
mov edi, dword [esp + 8]
je 0x539e41
mov ecx, dword [ecx + 0x78]
inc eax
mov edx, edi
lea edi, [edx - 2]
cmp edi, ecx
jb 0x53bd36
movzx esi, word [edx - 2]
and esi, 0xfc00
cmp esi, 0xdc00
je 0x53871c
mov edx, edi
jmp 0x538721
add edx, 0xfffffffc
mov edi, edx
dec eax
cmp eax, 1
jg 0x5386fb
jmp 0x539e41
mov eax, ebp
mov ebp, dword [esp + 0x158]
mov esi, dword [ebp + 0xb0]
mov dword [esp + 0xc], eax
mov ecx, eax
mov ebx, dword [esp + 0x2c]
mov edi, ecx
lea edx, [edi + 4]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebp
push ebx
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
cmp eax, 0xfffffc20
je 0x538781
test eax, eax
jne 0x539b3b
mov ax, word [edi + 2]
jmp 0x5387ca
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x53da7b
mov ebp, ebx
mov ebx, esi
mov esi, edi
movzx edx, word [edi]
cmp edx, 0x77
jne 0x5387b1
mov edi, esi
mov esi, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x158]
jmp 0x5387ca
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edi, esi
mov esi, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x158]
jne 0x53da7b
movzx eax, ax
lea ecx, [edi + eax*2]
mov dword [ebp + 0xb0], esi
movzx eax, word [edi + eax*2]
cmp eax, 0x77
je 0x538745
jmp 0x539b5e
add ebp, 2
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, ebp
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
test eax, eax
jne 0x53b552
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
cmp edx, 0x77
je 0x538820
jmp 0x539e87
add ebp, 2
mov dword [esp + 0x14], ebp
mov edx, ebp
movzx eax, word [edx + 2]
movzx ecx, word [edx + eax*2]
lea edx, [edx + eax*2]
cmp ecx, 0x77
je 0x538840
add edx, 4
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x5365c0
jmp case.0x53dfa4.6
movzx ecx, word [ebp + 2]
lea esi, [ecx + ecx]
mov eax, 0xffff0000
mov edi, dword [esp + 0x158]
and eax, dword [edi + 0x94]
or eax, ecx
mov dword [edi + 0x94], eax
cmp esi, dword [edi + 0x14]
jge 0x539168
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
sub edx, ecx
mov ecx, dword [eax + edx*4]
mov dword [eax + esi*4], ecx
mov ecx, dword [esp + 8]
sub ecx, dword [edi + 0x78]
sar ecx, 1
mov edx, esi
or edx, 1
mov dword [eax + edx*4], ecx
mov ebx, dword [esp + 0x2c]
cmp esi, ebx
jl 0x539e87
cmp ebx, esi
jge 0x538917
lea ecx, [eax + esi*4]
lea edx, [eax + ebx*4]
lea edi, [eax + ebx*4 + 4]
cmp edi, ecx
cmova ecx, edi
neg eax
shl ebx, 2
sub eax, ebx
lea eax, [ecx + eax + 3]
and eax, 0xfffffffc
sub esp, 4
push eax
push 0xff
push edx
call sub.msvcrt.dll_memset
add esp, 0x10
add esi, 2
mov dword [esp + 0x2c], esi
jmp 0x539e87
add ebp, 2
nop word cs:[eax + eax]
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
cmp edx, 0x77
je 0x538930
jmp 0x539e87
add ebp, 2
mov dword [esp + 0x4c], 0
mov edx, 0x7fffffff
mov dword [esp + 0x10], 1
mov edi, 1
jmp 0x537180
mov eax, dword [0xa5d330]
test eax, eax
je 0x538a41
mov dword [esp + 0x74], 2
movzx ecx, word [ebp + 2]
mov dword [esp + 0x78], ecx
mov esi, dword [esp + 0x158]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esi + 0x78]
mov dword [esp + 0x80], ecx
mov edx, dword [esi + 0x7c]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x30]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x88], edx
mov edx, dword [esp + 8]
sub edx, ecx
sar edx, 1
mov dword [esp + 0x8c], edx
movzx ecx, word [ebp + 4]
mov dword [esp + 0x9c], ecx
movzx ecx, word [ebp + 6]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0x2c]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sar ecx, 1
mov dword [esp + 0x90], ecx
movzx ecx, word [esi + 0x94]
cmp ecx, 1
sbb edx, edx
or edx, ecx
mov dword [esp + 0x94], edx
mov ecx, dword [esi + 0xac]
mov dword [esp + 0x98], ecx
mov ecx, dword [esi + 0xb4]
mov dword [esp + 0xa4], ecx
sub esp, 0xc
lea ecx, [esp + 0x80]
push ecx
call eax
add esp, 0x10
test eax, eax
jg 0x53bd36
jne 0x53b552
add ebp, 8
mov dword [esp + 0x14], ebp
jmp 0x5365c0
movzx edx, word [ebp + 2]
add ebp, 2
mov eax, 1
cmp edx, 0x86
je case.0x5365de.134
movzx eax, dx
cmp eax, 0x8b
mov eax, 1
jne case.0x5365de.132
mov dword [esp + 0x28], edx
movzx ebx, word [ebp + 4]
lea esi, [ebx + ebx]
mov edx, dword [esp + 0x158]
cmp esi, dword [edx + 0x14]
jge 0x538c29
mov dword [esp + 0x50], eax
mov eax, ebp
sub eax, dword [edx + 0x74]
sar eax, 1
mov dword [esp + 0xc], eax
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
mov edi, dword [eax + esi*4]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x40], esi
or esi, 1
mov dword [esp + 0x58], esi
mov esi, dword [eax + esi*4]
mov dword [esp + 0xa8], esi
sub ecx, ebx
mov eax, dword [eax + ecx*4]
mov dword [esp + 0xac], eax
mov dword [esp + 0x10], 0
mov edi, dword [esp + 8]
mov dword [esp + 0x14], ebx
mov esi, ebp
mov ebp, edx
mov eax, dword [ebp + 0x94]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
sub edi, dword [ebp + 0x78]
sar edi, 1
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
sub edx, ebx
mov dword [ecx + edx*4], edi
mov ebx, esi
cmp dword [esp + 0x28], 0x88
jb 0x538b14
mov dword [ebp + 0x9c], 2
movzx eax, word [ebx]
movzx eax, byte [eax + 0xa5ea14]
lea edx, [ebx + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
cmp eax, 0xfffffc20
je 0x538b57
test eax, eax
jne 0x538baf
mov ax, word [ebx + 2]
jmp 0x538b7e
movzx eax, word [ebx + 2]
lea ecx, [ebx + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x53da7b
movzx edx, word [ebx]
cmp edx, 0x77
je 0x538b7e
movzx ecx, word [ecx]
cmp ecx, 0x77
jne 0x53da7b
mov ebp, dword [esp + 0x158]
mov ecx, dword [esp + 4]
mov dword [ebp + 0x94], ecx
movzx eax, ax
lea esi, [ebx + eax*2]
movzx eax, word [ebx + eax*2]
cmp eax, 0x77
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 8]
je 0x538aee
jmp 0x539026
cmp eax, 0xfffffc1a
mov dword [esp + 4], eax
jne case.0x53dfa4.6
mov edx, dword [esp + 0x158]
mov eax, dword [edx + 0x90]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xc]
lea ebp, [eax + eax]
add ebp, dword [edx + 0x74]
mov eax, dword [edx + 0x80]
mov dword [esp + 0x30], eax
mov edi, dword [edx + 0x84]
mov dword [esp + 0x10], 1
cmp dword [esp + 8], edi
mov ebx, dword [esp + 0x14]
jne 0x538adc
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
mov eax, 1
cmp edx, 0x77
je 0x538bff
mov edi, dword [esp + 8]
or eax, dword [esp + 0x50]
jne 0x539070
jmp 0x53bd36
mov edx, dword [esp + 0x28]
mov dword [esp + 0x50], eax
mov ecx, ebp
mov eax, dword [esp + 0x158]
sub ecx, dword [eax + 0x74]
sar ecx, 1
mov dword [esp + 0x10], ecx
mov eax, dword [eax + 0x94]
mov dword [esp + 0x14], eax
xor edi, edi
mov eax, dword [esp + 8]
mov dword [esp + 4], edi
mov ecx, eax
jmp 0x538c75
mov eax, dword [esp + 0x158]
mov edx, dword [esp + 0x14]
mov dword [eax + 0x94], edx
mov edx, ebx
mov ecx, esi
mov ebx, edx
cmp edx, 0x88
jb 0x538c90
mov eax, dword [esp + 0x158]
mov dword [eax + 0x9c], 2
movzx eax, word [ebp]
movzx eax, byte [eax + 0xa5ea14]
lea edx, [ebp + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov esi, ecx
push eax
push dword [esp + 0x48]
mov edi, ebp
mov ebp, dword [esp + 0x16c]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
cmp eax, 0xfffffc20
je 0x538cdc
test eax, eax
jne 0x538d18
mov ax, word [edi + 2]
jmp 0x538d03
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x53da7b
movzx edx, word [edi]
cmp edx, 0x77
je 0x538d03
movzx ecx, word [ecx]
cmp ecx, 0x77
jne 0x53da7b
movzx eax, ax
lea ebp, [edi + eax*2]
movzx eax, word [edi + eax*2]
cmp eax, 0x77
je 0x538c60
jmp 0x538d7c
cmp eax, 0xfffffc1a
mov dword [esp + 4], eax
mov edx, ebx
jne case.0x53dfa4.6
mov eax, dword [esp + 0x158]
mov ecx, dword [eax + 0x90]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x10]
lea ebp, [ecx + ecx]
add ebp, dword [eax + 0x74]
mov ecx, dword [eax + 0x80]
mov dword [esp + 0x30], ecx
mov eax, dword [eax + 0x84]
mov edi, 1
mov ecx, esi
cmp ecx, eax
jne 0x538c53
movzx ecx, word [ebp + 2]
movzx edx, word [ebp + ecx*2]
lea ebp, [ebp + ecx*2]
mov eax, 1
cmp edx, 0x77
je 0x538d63
jmp 0x538d80
mov eax, dword [esp + 4]
or eax, dword [esp + 0x50]
je 0x53bd36
add ebp, 4
mov dword [esp + 0x14], ebp
mov dword [esp + 8], esi
jmp 0x5365c0
mov esi, dword [esp + 0x158]
mov eax, dword [esi + 0x28]
inc eax
mov dword [esi + 0x28], eax
cmp eax, dword [esi + 0x2c]
movzx eax, byte [edx + 0xa5ea14]
ja 0x53ce1a
movzx ecx, word [ebp + 2]
add ecx, eax
lea eax, [ebp + ecx*2]
mov dword [esp + 0x14], eax
jmp 0x5365c0
mov ebx, ecx
movzx edx, word [ebp + 2]
cmp edx, 0xa
ja case.default.0x538e07
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov esi, ecx
and esi, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0xa60c94]
shl ecx, 7
mov edi, eax
sub edi, esi
add edi, ecx
movzx ecx, word [edi + edi + 0xa62e94]
jmp dword [edx*4 + 0x54009c]
cmp eax, 0x180d
jle 0x534618
lea edx, [eax - 0x2000]
cmp edx, 0x5f
ja case.default.0x538e28
jmp dword [edx*4 + 0x5400c8]
mov edi, dword [esp + 8]
cmp edi, eax
je 0x5347d1
lea eax, [edi - 2]
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
ja 0x538e4c
mov ecx, dword [esp + 0x24]
mov dword [ecx], eax
cmp dword [esi + 0x58], 0
movzx eax, word [eax]
je 0x53aae0
mov cl, 1
cmp eax, 0x5f
je 0x5347d3
mov ecx, eax
shr ecx, 7
movzx ecx, byte [ecx + 0xa60c94]
shl ecx, 7
and eax, 0x7f
or eax, ecx
movzx eax, word [eax + eax + 0xa62e94]
movzx eax, byte [eax*8 + 0xa5f615]
mov eax, dword [eax*4 + 0xa5eb28]
or eax, 2
cmp eax, 3
sete cl
jmp 0x5347d3
xor ebx, ebx
mov ebp, eax
jmp 0x5399c1
movzx eax, word [ebp + 2]
movzx ecx, word [ebx]
cmp ax, cx
je 0x53eeed
movzx edx, dx
cmp edx, 0x20
jne 0x538edb
cmp eax, 0xff
mov edx, dword [esp + 0x158]
ja 0x538ed3
mov edx, dword [edx + 0x40]
movzx eax, byte [edx + eax]
cmp eax, ecx
je 0x53eeed
add ebx, 2
mov dword [esp + 8], ebx
jmp 0x539e87
cmp dword [esp + 0x34], 0
je 0x53a130
lea ecx, [edi - 6]
movzx ecx, cx
cmp ecx, 0xf
ja case.default.0x53dfa4
mov dword [esp + 4], 0xfffffff2
jmp dword [ecx*4 + 0x53fe70]
cmp edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], eax
jle 0x5365a6
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
cmp ebp, 0x12
sete cl
mov edx, dword [esp + 0xc]
mov dword [esp + 8], edx
jmp 0x5346f2
add ebp, 4
mov dword [esp + 0x14], ebp
movzx ecx, word [ebx]
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
jne 0x538f76
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebx + 2]
add ebx, 4
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
jmp 0x538f79
add ebx, 2
movzx edx, si
cmp edx, 0x1f
mov dword [esp + 8], ebx
jne 0x538f9a
mov dword [esp + 4], 0
cmp eax, ecx
jne 0x5365c0
jmp case.0x53dfa4.6
cmp eax, 0x80
mov edx, dword [esp + 0x158]
jb 0x539f97
mov edx, eax
sar edx, 0x1f
shr edx, 0x19
add edx, eax
mov esi, edx
and esi, 0x7fffff80
sar edx, 7
movzx edx, byte [edx + 0xa60c94]
shl edx, 7
mov edi, eax
sub edi, esi
add edi, edx
movzx edx, word [edi + edi + 0xa62e94]
mov edx, dword [edx*8 + 0xa5f618]
add edx, eax
cmp eax, ecx
jne 0x539fa6
jmp 0x53f018
lea ecx, [eax + 0x3e4]
cmp ecx, 4
mov edx, edi
jae 0x53bd27
movzx eax, word [edx + 2]
lea ecx, [edx + eax*2]
movzx eax, word [edx + eax*2]
cmp eax, 0x77
mov edx, ecx
je 0x539000
test esi, esi
jne 0x53c5bb
add ecx, 4
mov dword [esp + 0x14], ecx
jmp 0x5365c0
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x539064
mov eax, dword [esp + 0x158]
mov ecx, eax
mov eax, dword [ecx + 0xc]
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x4c]
mov dword [eax + edx*4], ebp
mov edx, dword [esp + 0x58]
mov ebp, dword [esp + 0xa8]
mov dword [eax + edx*4], ebp
mov ecx, dword [ecx + 0x10]
sub ecx, ebx
mov edx, dword [esp + 0xac]
mov dword [eax + ecx*4], edx
xor eax, eax
mov ebp, esi
or eax, dword [esp + 0x50]
je 0x53bd36
add ebp, 4
mov dword [esp + 0x14], ebp
mov dword [esp + 8], edi
jmp 0x5365c0
lea eax, [ebx - 6]
movzx eax, ax
cmp eax, 0xf
ja case.default.0x53dfa4
mov dword [esp + 4], 0xfffffff2
jmp dword [eax*4 + 0x53fa58]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53d8e7
movzx edx, word [edi]
cmp edx, 0xff
ja 0x5390d5
mov esi, dword [esp + 0x3c]
mov esi, dword [esi]
test byte [esi + edx], 4
jne 0x53eeed
add edi, 2
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5390ae
jmp 0x53731f
mov eax, dword [ebp + 0x80]
mov dword [esp + 0x30], eax
mov ecx, edi
mov ax, word [ecx]
movzx eax, ax
cmp eax, 0x78
je 0x53bd36
test esi, esi
jne 0x53c5bb
nop dword [eax + eax]
mov eax, ecx
movzx ecx, word [eax + 2]
movzx edx, word [eax + ecx*2]
lea ecx, [eax + ecx*2]
cmp edx, 0x77
je 0x539110
add ecx, 4
mov dword [esp + 0x14], ecx
mov eax, dword [ebp + 0x90]
mov dword [esp + 0x2c], eax
jmp 0x5365c0
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x4c], 0
jne 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5341a4
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
ja 0x5346bb
jmp 0x5341a4
or eax, 0x10000
mov dword [edi + 0x94], eax
jmp 0x539e87
test ax, ax
jne 0x537bee
jmp 0x53b88e
add edx, 2
cmp eax, 0xff
mov dword [esp + 8], edx
ja 0x5341a4
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je 0x5341a4
jmp 0x53eeed
mov edi, ecx
cmp eax, 0x1fff
mov dword [esp + 8], edi
jle 0x53937d
cmp eax, 0x202e
jg 0x53a234
add eax, 0xffffe000
cmp eax, 0xb
mov dword [esp + 4], 0
jae 0x5341a4
jmp case.0x53dfa4.6
mov edi, ecx
cmp eax, 0x1fff
mov dword [esp + 8], edi
jle 0x53a16d
cmp eax, 0x202e
jg 0x534238
add eax, 0xffffe000
cmp eax, 0xb
mov dword [esp + 4], 0
jb 0x5341a4
jmp case.0x53dfa4.6
mov edi, ecx
lea ecx, [eax - 0xa]
cmp ecx, 4
jb 0x53f018
mov dword [esp + 8], edi
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb 0x53f018
cmp eax, 0x85
jmp 0x53a25d
mov esi, ecx
lea ecx, [eax - 0xa]
cmp ecx, 4
jb 0x539266
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb 0x539266
cmp eax, 0x85
jne 0x53eeed
mov dword [esp + 8], esi
jmp 0x5341a4
mov ebp, edx
cmp ebp, eax
jae 0x539340
mov edx, ecx
sar edx, 0x1f
shr edx, 0x19
add edx, ecx
mov esi, edx
and esi, 0x7fffff80
sar edx, 7
movzx edx, byte [edx + 0xa60c94]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0xa62e94]
movzx edx, byte [ecx*8 + 0xa5f616]
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov esi, 1
je 0x5392eb
mov edi, ecx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x5392eb
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [ebp + 2]
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
mov esi, 2
mov edi, ecx
sar edi, 0x1f
shr edi, 0x19
add edi, ecx
mov ebx, edi
and ebx, 0x7fffff80
sar edi, 7
movzx edi, byte [edi + 0xa60c94]
shl edi, 7
sub ecx, ebx
add ecx, edi
movzx ecx, word [ecx + ecx + 0xa62e94]
movzx ecx, byte [ecx*8 + 0xa5f616]
mov edi, 1
shl edi, cl
and edi, dword [edx*4 + 0xa5eba0]
je 0x539332
lea ebp, [ebp + esi*2]
cmp ebp, eax
jae 0x539340
test edi, edi
mov edx, ecx
jne 0x5392ac
cmp ebp, eax
jb 0x539369
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x539369
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x539369
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x53bc58
mov dword [esp + 8], ebp
mov eax, dword [esp + 0xc]
add eax, 2
mov dword [esp + 0x14], eax
jmp 0x5365c0
cmp eax, 0x9f
jle 0x53a251
cmp eax, 0xa0
je 0x53f018
cmp eax, 0x1680
je 0x53f018
cmp eax, 0x180e
jmp 0x53a25d
xor eax, eax
jmp 0x53455b
cmp dword [esp + 0x44], 0
jne 0x53eeed
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
cmp esi, eax
jae 0x53bc1e
lea edi, [esi + 2]
cmp dword [esp + 0x34], 0
je 0x5393ea
movzx edx, word [esi]
and edx, 0xfc00
cmp edx, 0xd800
jne 0x5393ea
add esi, 4
mov edi, esi
mov edx, dword [esp + 0x10]
inc ecx
cmp ecx, edx
mov dword [esp + 0xc], edi
mov esi, edi
jl 0x5393c2
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53bd43
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x539452
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x539452
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x539454
mov edi, esi
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0xa60c94]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0xa62e94]
movzx edx, byte [edx*8 + 0xa5f615]
add dl, 0xfb
xor esi, esi
cmp dl, 4
ja 0x53949b
movsx edx, dl
mov esi, dword [edx*4 + 0xa5e9f0]
cmp dword [esp + 0x44], esi
je 0x53eeed
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x53940a
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53bd81
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x53950d
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x53950d
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x53950f
mov edi, esi
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0xa60c94]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0xa62e94]
movzx edx, byte [edx*8 + 0xa5f615]
xor ebx, ebx
mov esi, dword [esp + 0x54]
cmp dword [edx*4 + 0xa5eb28], esi
sete bl
cmp dword [esp + 0x44], ebx
je 0x53eeed
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5394c5
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53bdbf
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x5395c4
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x5395c4
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x5395c6
mov edi, esi
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0xa60c94]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0xa62e94]
movzx edx, byte [edx*8 + 0xa5f615]
xor ebx, ebx
cmp dword [esp + 0x54], edx
sete bl
cmp dword [esp + 0x44], ebx
je 0x53eeed
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x53957c
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53bdfd
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x539674
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x539674
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x539676
mov edi, esi
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0xa60c94]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0xa62e94]
movzx edx, byte [edx*8 + 0xa5f614]
xor ebx, ebx
cmp dword [esp + 0x54], edx
sete bl
cmp dword [esp + 0x44], ebx
je 0x53eeed
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x53962c
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53be3b
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x539724
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x539724
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x539726
mov edi, esi
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0xa60c94]
shl esi, 7
sub edx, ebx
add edx, esi
movzx edx, word [edx + edx + 0xa62e94]
movzx edx, byte [edx*8 + 0xa5f615]
mov edx, dword [edx*4 + 0xa5eb28]
or edx, 2
xor ebx, ebx
cmp edx, 3
sete bl
cmp dword [esp + 0x44], ebx
je 0x53eeed
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x5396dc
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53be79
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x5397dd
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x5397dd
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x5397df
mov edi, esi
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov ebx, esi
and ebx, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0xa60c94]
shl esi, 7
mov ebp, edx
sub ebp, ebx
add ebp, esi
movzx esi, word [ebp + ebp + 0xa62e94]
movzx esi, byte [esi*8 + 0xa5f615]
mov esi, dword [esi*4 + 0xa5eb28]
or esi, 2
cmp esi, 3
sete bl
cmp edx, 0x5f
sete dl
or dl, bl
movzx edx, dl
cmp dword [esp + 0x44], edx
je 0x53eeed
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x539795
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0x54]
lea ecx, [ecx*4 + 0xa5f4dc]
mov edx, 1
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53beb7
lea ebx, [edi + 2]
movzx esi, word [edi]
cmp dword [esp + 0x34], 0
je 0x5398b3
mov ebp, esi
and ebp, 0xfc00
cmp ebp, 0xd800
jne 0x5398b3
shl esi, 0xa
and esi, 0xffc00
movzx ebx, word [edi + 2]
add edi, 4
mov dword [esp + 0xc], edi
and ebx, 0x3ff
lea esi, [esi + ebx + 0x10000]
jmp 0x5398b7
mov dword [esp + 0xc], ebx
mov edi, dword [esp + 0x54]
mov ebx, dword [edi*4 + 0xa5f4d8]
cmp esi, ebx
jb 0x5398de
mov ebp, ecx
nop dword [eax + eax]
cmp esi, ebx
je 0x5398ea
mov ebx, dword [ebp]
add ebp, 4
cmp esi, ebx
jae 0x5398d0
cmp dword [esp + 0x44], 0
jne 0x5398f5
jmp 0x53eeed
cmp dword [esp + 0x44], 0
jne 0x53eeed
cmp edx, dword [esp + 0x10]
lea edx, [edx + 1]
jl 0x539867
jmp 0x53731f
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0xc]
cmp edi, eax
jae 0x53bef5
lea esi, [edi + 2]
movzx edx, word [edi]
cmp dword [esp + 0x34], 0
je 0x53995b
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x53995b
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
jmp 0x53995d
mov edi, esi
mov bl, 1
cmp edx, 0x24
je 0x539988
cmp edx, 0x40
je 0x539988
cmp edx, 0x60
je 0x539988
lea esi, [edx - 0xa0]
cmp esi, 0xd760
setb bh
cmp edx, 0xdfff
seta bl
or bl, bh
movzx edx, bl
cmp dword [esp + 0x44], edx
je 0x53eeed
mov dword [esp + 0xc], edi
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x539913
jmp 0x53731f
mov ecx, ebx
or ecx, 1
mov ecx, dword [ebp + ecx*4]
sub ecx, edi
mov dword [esp + 0x10], ecx
mov ebp, eax
mov edi, dword [esp + 0x158]
movzx ecx, word [ebp]
movzx eax, cx
mov edx, ecx
add edx, 0xffffff9e
movzx edx, dx
cmp edx, 6
jae 0x539a08
add ebp, 2
lea ecx, [eax - 0x62]
mov edx, eax
and edx, 1
mov dword [esp + 4], edx
movsx edi, byte [eax + 0xa5e96e]
movsx eax, byte [eax + 0xa5e979]
mov edx, 0x3cf
bt edx, ecx
mov ecx, 0x7fffffff
cmovae ecx, eax
mov dword [esp + 0x28], ecx
jmp 0x539a36
lea ecx, [ecx - 0x68]
movzx ecx, cx
cmp ecx, 2
jae 0x539a91
cmp eax, 0x69
sete al
mov dword [esp + 4], eax
movzx edi, word [ebp + 2]
movzx eax, word [ebp + 4]
test eax, eax
mov ecx, 0x7fffffff
cmovne ecx, eax
mov dword [esp + 0x28], ecx
add ebp, 6
mov dword [esp + 0x14], ebp
cmp dword [esp + 0x10], 0
je 0x5365c0
jns 0x539a4f
test edi, edi
je 0x5365c0
test edi, edi
jle 0x539e93
xor esi, esi
mov ebp, dword [esp + 8]
sub esp, 4
mov ecx, ebx
mov edx, ebp
push dword [esp + 0x10]
push dword [esp + 0x160]
push dword [esp + 0x1c]
call fcn.00540290
add esp, 0x10
test eax, eax
js 0x53b803
lea ebp, [ebp + eax*2]
inc esi
cmp esi, edi
jl 0x539a5d
jmp 0x539e97
sub esp, 4
mov ecx, ebx
mov esi, dword [esp + 0xc]
mov edx, esi
push dword [esp + 0x10]
push edi
push dword [esp + 0x1c]
call fcn.00540290
add esp, 0x10
test eax, eax
js 0x53dac2
lea esi, [esi + eax*2]
mov dword [esp + 8], esi
mov dword [esp + 0x14], ebp
jmp 0x5365c0
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x539aea
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x539aea
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x53bc58
mov dword [esp + 8], ebp
cmp dword [esp + 0x4c], 0
jne 0x5365c0
jmp 0x53aea1
mov edx, eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x534671
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x534671
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov eax, edx
jle 0x534673
jmp 0x53bc58
mov eax, esi
jmp 0x534673
cmp eax, 1
mov dword [esp + 4], eax
jne case.0x53dfa4.6
mov ebp, dword [esp + 0x158]
mov eax, dword [ebp + 0x80]
mov dword [esp + 0x30], eax
mov ecx, edi
mov ax, word [ecx]
movzx eax, ax
cmp eax, 0x82
je 0x539b71
cmp eax, 0x77
jne 0x53bd36
movzx edx, word [ecx + 2]
movzx eax, word [ecx + edx*2]
lea ecx, [ecx + edx*2]
cmp eax, 0x77
je 0x539b71
mov ebx, dword [ebp + 0x84]
mov esi, dword [ebp + 0x90]
movzx eax, ax
cmp eax, 0x78
mov dword [esp + 0x2c], esi
je 0x539ba3
cmp ebx, dword [esp + 8]
jne 0x53b313
add ecx, 4
mov dword [esp + 0x14], ecx
mov dword [esp + 8], ebx
jmp 0x5365c0
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
mov edx, dword [esp + 8]
cmp edx, eax
ja 0x539be6
movzx eax, word [edx]
cmp ax, word [esi + 0x34]
jne 0x539be6
cmp ecx, 1
je 0x53eeed
movzx eax, word [edx + 2]
cmp ax, word [esi + 0x36]
je 0x53eeed
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je case.0x5365de.13
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
add ecx, 0xfffffffe
cmp dword [esp + 8], ecx
jne case.0x5365de.13
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne case.0x5365de.13
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne case.0x5365de.13
mov ecx, dword [esp + 8]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne case.0x5365de.13
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x53bc58
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [esp + 8]
cmp edx, ecx
jae 0x53c644
lea eax, [edx + 2]
cmp dword [esp + 0x34], 0
je 0x534546
cmp eax, ecx
jae 0x534546
movzx ecx, word [edx + 2]
and ecx, 0xfc00
add edx, 4
cmp ecx, 0xdc00
cmove eax, edx
jmp 0x534546
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
sub eax, ecx
cmp eax, 1
jle 0x53dc24
movzx eax, word [ebp + 2]
cmp ax, word [ecx]
jne 0x53eeed
add ecx, 2
mov dword [esp + 8], ecx
jmp 0x539e87
xor eax, eax
mov ebx, dword [esp + 8]
mov ecx, dword [esi + 0xa8]
test ecx, ecx
je 0x539cd3
mov edx, ecx
cmp eax, dword [edx + 4]
jne 0x539ccd
cmp ebx, dword [edx + 0x14]
je 0x53bc65
mov edx, dword [edx]
test edx, edx
jne 0x539cbf
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0x94]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x5c], ecx
lea eax, [esp + 0x5c]
mov dword [esi + 0xa8], eax
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x68], ecx
cmp ecx, 0x1e
jg 0x539d0c
lea eax, [esp + 0xc4]
mov dword [esp + 0x64], eax
jmp 0x539d2c
shl ecx, 2
sub esp, 0xc
push ecx
call dword [0xa5d328]
add esp, 0x10
mov dword [esp + 0x64], eax
test eax, eax
je 0x53dc17
mov ecx, dword [esp + 0x68]
add ebp, 4
mov dword [esp + 0xc], ebp
shl ecx, 2
sub esp, 4
push ecx
push dword [esi + 0xc]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0x10
movzx ebp, word [edi]
mov ecx, ebp
movzx eax, bp
cmp eax, 0x88
jb 0x539d66
mov eax, dword [esp + 0x158]
mov dword [eax + 0x9c], 2
movzx eax, cx
movzx eax, byte [eax + 0xa5ea14]
lea edx, [edi + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
mov ebx, dword [esp + 0x16c]
push ebx
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov esi, eax
mov eax, dword [esp + 0x68]
shl eax, 2
sub esp, 4
push eax
push dword [esp + 0x6c]
push dword [ebx + 0xc]
call sub.msvcrt.dll_memcpy
add esp, 0x10
mov eax, dword [esp + 0x6c]
mov dword [ebx + 0x94], eax
mov eax, dword [esp + 0x5c]
mov dword [ebx + 0xa8], eax
cmp esi, 1
je 0x53aa60
cmp esi, 0xfffffc19
je 0x53aa60
lea ecx, [esi + 0x3e4]
cmp ecx, 4
jbe 0x53bc72
test esi, esi
jne 0x53bc8b
mov ecx, dword [esp + 0x158]
lea edx, [esp + 0x5c]
mov dword [ecx + 0xa8], edx
movzx ecx, word [edi + 2]
movzx edx, word [edi + ecx*2]
lea edi, [edi + ecx*2]
mov cx, 0x77
cmp edx, 0x77
je 0x539d4b
jmp 0x53bcb4
add eax, eax
mov edi, dword [esp + 8]
sub edi, eax
mov eax, dword [esp + 0x158]
cmp edi, dword [eax + 0x78]
jb 0x53bd36
mov eax, dword [esp + 0x24]
cmp edi, dword [eax]
jae 0x539e83
mov eax, dword [esp + 0x24]
mov dword [eax], edi
jmp 0x539e83
cmp eax, 0xff
mov edx, dword [esp + 0x158]
ja 0x539e66
mov ecx, dword [edx + 0x3c]
movzx eax, byte [ecx + eax]
movzx ecx, word [edi]
cmp ecx, 0xff
ja 0x539e78
mov edx, dword [edx + 0x3c]
movzx ecx, byte [edx + ecx]
cmp eax, ecx
jne 0x53eeed
add edi, 2
mov dword [esp + 8], edi
add ebp, 4
mov dword [esp + 0x14], ebp
jmp 0x5365c0
mov ebp, dword [esp + 8]
mov dword [esp + 8], ebp
cmp edi, dword [esp + 0x28]
je 0x5365c0
jmp 0x53d5d1
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x539ecf
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x539ecf
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x53bc58
mov dword [esp + 8], edx
cmp dword [esp + 0x50], 0
jne 0x5365c0
jmp 0x53af18
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x539f08
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x539f08
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x53bc58
mov dword [esp + 8], edx
cmp dword [esp + 0x50], 0
jne 0x5365c0
jmp 0x53af71
mov edx, 1
cmp eax, 0x7f
ja 0x539f57
movzx ecx, word [edi]
cmp ecx, 0xff
mov edx, dword [esi + 0x3c]
movzx eax, byte [edx + eax]
ja 0x539f3c
movzx ecx, byte [edx + ecx]
cmp ecx, eax
jne 0x53eeed
add ebp, 4
add edi, 2
mov dword [esp + 8], edi
mov dword [esp + 0x14], ebp
jmp 0x5365c0
add ebp, 2
movzx ecx, word [edi]
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x53a321
shl ecx, 0xa
and ecx, 0xffc00
movzx esi, word [edi + 2]
add edi, 4
mov dword [esp + 8], edi
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
jmp 0x53a328
mov edx, dword [edx + 0x40]
movzx edx, byte [edx + eax]
cmp eax, ecx
je 0x53f018
cmp edx, ecx
mov dword [esp + 4], 0
jne 0x5365c0
jmp case.0x53dfa4.6
mov edi, esi
mov dword [esp + 8], edi
cmp dword [esp + 0x50], 0
jne 0x5365c0
jmp 0x53ad09
cmp eax, 0xff
ja 0x534556
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov cl, byte [ecx + eax]
and cl, 0x10
shr cl, 4
jmp 0x534558
movzx eax, word [edi + 4]
test eax, eax
je case.0x537a09.4
mov ecx, dword [esp + 0x158]
mov esi, ecx
mov ecx, dword [esi + 0x24]
movzx edx, word [edi + 2]
imul edx, ecx
add edx, edx
add edx, dword [esi + 0x30]
inc eax
add ecx, ecx
movzx ebx, word [edx]
add ebx, ebx
xor esi, esi
cmp ebx, dword [esp + 0x2c]
jge 0x53a041
mov esi, dword [esp + 0x158]
mov esi, dword [esi + 0xc]
mov ebx, dword [esi + ebx*4]
mov esi, ebx
shr esi, 0x1f
xor esi, 1
test ebx, ebx
jns 0x53510a
dec eax
add edx, ecx
cmp eax, 1
jg 0x53a017
jmp 0x53510a
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xa8]
test eax, eax
je case.0x537a09.4
movzx ecx, word [edi + 2]
cmp ecx, 0xffff
je 0x535105
cmp dword [eax + 4], ecx
sete al
movzx esi, al
test esi, esi
je case.0x537a09.4
jmp 0x53ad84
mov eax, dword [esp + 0x158]
mov esi, dword [eax + 0xa8]
test esi, esi
je case.0x537a09.4
movzx eax, word [edi + 4]
test eax, eax
je case.0x537a09.4
mov ecx, dword [esp + 0x158]
mov ebx, ecx
mov ecx, dword [ebx + 0x24]
movzx edx, word [edi + 2]
imul edx, ecx
add edx, edx
add edx, dword [ebx + 0x30]
mov esi, dword [esi + 4]
inc eax
add ecx, ecx
movzx ebx, word [edx]
cmp esi, ebx
je 0x53ad84
dec eax
add edx, ecx
cmp eax, 1
jg 0x53a0c8
jmp case.0x537a09.4
mov eax, dword [esp + 0x158]
mov esi, eax
mov dword [esi + 0x9c], 1
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, edi
push eax
push 0
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
cmp eax, 0xfffffc20
je case.0x537a09.4
test eax, eax
je case.0x537a09.4
jmp 0x53b3ed
lea ecx, [edi - 6]
movzx ecx, cx
cmp ecx, 0xf
ja case.default.0x53dfa4
mov dword [esp + 4], 0xfffffff2
jmp dword [ecx*4 + 0x53feb0]
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0xc]
sub ecx, edx
sar ecx, 1
cmp eax, ecx
jbe 0x536557
jmp 0x53657c
cmp eax, 0x9f
jle 0x5346d3
cmp eax, 0xa0
mov dword [esp + 4], 0
je 0x5341a4
cmp eax, 0x1680
je 0x5341a4
cmp eax, 0x180e
je 0x5341a4
jmp case.0x53dfa4.6
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
mov esi, eax
sub esi, edx
cmp ebx, esi
ja 0x53c7be
movzx edx, word [ebx]
cmp dx, word [edi + 0x34]
jne 0x53c7be
cmp ecx, 1
jne 0x534687
mov ecx, 1
jmp 0x534695
mov ebx, dword [esp + 0x158]
cmp edx, 0xc
jle 0x538195
lea edi, [edx - 0x2028]
cmp edi, 2
jb 0x53a225
cmp edx, 0x85
je 0x53a225
cmp edx, 0xd
mov dword [esp + 4], 0
jne case.0x53dfa4.6
cmp eax, ecx
jae 0x534a33
movzx ecx, word [eax]
lea edx, [eax + 2]
cmp ecx, 0xa
jmp 0x539c77
cmp dword [ebx + 0x6c], 0
je 0x534546
jmp 0x53eeed
cmp eax, 0x202f
je 0x53f018
cmp eax, 0x205f
je 0x53f018
cmp eax, 0x3000
jmp 0x53a25d
cmp eax, 9
je 0x53f018
cmp eax, 0x20
mov dword [esp + 4], 0
jne 0x5341a4
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53a295
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x53a295
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x53bc58
mov dword [esp + 8], edx
cmp dword [esp + 0x4c], 0
jne 0x5365c0
jmp 0x53b085
mov edx, ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x5349eb
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x5349eb
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
mov ecx, edx
jle 0x5349ed
jmp 0x53bc58
xor ecx, ecx
cmp eax, 0x69
sete cl
mov ebp, ecx
cmp eax, 0x6d
sete al
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x14]
movzx ebx, word [ecx + 2]
movzx eax, word [ecx + 4]
test eax, eax
mov edx, 0x7fffffff
cmovne edx, eax
mov dword [esp + 0x10], edx
add ecx, 6
mov dword [esp + 0x14], ecx
test ebx, ebx
jg 0x53489e
jmp 0x534915
add edi, 2
mov dword [esp + 8], edi
lea edx, [ebp + edx*2]
mov dword [esp + 0x14], edx
cmp eax, ecx
je 0x5365c0
mov edx, eax
sar edx, 0x1f
shr edx, 0x19
add edx, eax
mov esi, edx
and esi, 0x7fffff80
sar edx, 7
movzx edx, byte [edx + 0xa60c94]
shl edx, 7
mov edi, eax
sub edi, esi
add edi, edx
movzx edx, word [edi + edi + 0xa62e94]
add eax, dword [edx*8 + 0xa5f618]
mov dword [esp + 4], 0
cmp ecx, eax
je 0x5365c0
jmp case.0x53dfa4.6
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea eax, [eax + ecx*2]
cmp edi, eax
jb 0x53bd36
lea eax, [ecx + ecx]
mov edx, edi
sub edx, eax
movzx eax, word [edx]
cmp ax, word [esi + 0x34]
jne 0x53bd36
cmp ecx, 1
je 0x5341a4
neg ecx
movzx eax, word [edi + ecx*2 + 2]
cmp ax, word [esi + 0x36]
je 0x5341a4
jmp 0x53bd36
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x53656c
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x534a01
cmp dword [esp + 0x34], 0
je 0x53a404
movzx edx, word [ebp]
and edx, 0xfc00
xor ecx, ecx
cmp edx, 0xd800
sete cl
inc ecx
jmp 0x53a409
mov ecx, 1
mov edx, dword [esp + 0x28]
cmp dword [esp + 0x44], 0
jne 0x53656c
lea ebp, [ebp + ecx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, edx
jl 0x53a3dd
jmp 0x53656c
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x53656c
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x534a01
movzx edx, word [ebp]
cmp dword [esp + 0x34], 0
mov ecx, 1
je 0x53a48d
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x53a48d
shl edx, 0xa
and edx, 0xffc00
movzx ecx, word [ebp + 2]
and ecx, 0x3ff
lea edx, [edx + ecx + 0x10000]
mov ecx, 2
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0xa60c94]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0xa62e94]
movzx edx, byte [edx*8 + 0xa5f615]
add dl, 0xfb
xor esi, esi
cmp dl, 4
ja 0x53a4d4
movsx edx, dl
mov esi, dword [edx*4 + 0xa5e9f0]
cmp dword [esp + 0x44], esi
je 0x53656c
mov edx, dword [esp + 0x10]
inc edx
lea ebp, [ebp + ecx*2]
mov dword [esp + 0x10], edx
cmp edx, dword [esp + 0x28]
jl 0x53a446
jmp 0x53656c
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x53656c
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x534a01
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov edx, 1
je 0x53a559
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x53a559
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
mov esi, ecx
sar esi, 0x1f
shr esi, 0x19
add esi, ecx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0xa60c94]
shl esi, 7
sub ecx, edi
add ecx, esi
movzx ecx, word [ecx + ecx + 0xa62e94]
movzx ecx, byte [ecx*8 + 0xa5f615]
xor ebx, ebx
mov esi, dword [esp + 0x54]
cmp dword [ecx*4 + 0xa5eb28], esi
sete bl
cmp dword [esp + 0x44], ebx
je 0x53656c
lea ebp, [ebp + edx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x53a512
jmp 0x53656c
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x53656c
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x534a01
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov edx, 1
je 0x53a621
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x53a621
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
mov esi, ecx
sar esi, 0x1f
shr esi, 0x19
add esi, ecx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0xa60c94]
shl esi, 7
sub ecx, edi
add ecx, esi
movzx ecx, word [ecx + ecx + 0xa62e94]
movzx ecx, byte [ecx*8 + 0xa5f615]
xor ebx, ebx
cmp dword [esp + 0x54], ecx
sete bl
cmp dword [esp + 0x44], ebx
je 0x53656c
lea ebp, [ebp + edx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x53a5da
jmp 0x53656c
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x53656c
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x534a01
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov edx, 1
je 0x53a6e2
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x53a6e2
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
mov esi, ecx
sar esi, 0x1f
shr esi, 0x19
add esi, ecx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0xa60c94]
shl esi, 7
sub ecx, edi
add ecx, esi
movzx ecx, word [ecx + ecx + 0xa62e94]
movzx ecx, byte [ecx*8 + 0xa5f614]
xor ebx, ebx
cmp dword [esp + 0x54], ecx
sete bl
cmp dword [esp + 0x44], ebx
je 0x53656c
lea ebp, [ebp + edx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x53a69b
jmp 0x53656c
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x53656c
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x534a01
movzx edx, word [ebp]
cmp dword [esp + 0x34], 0
mov ecx, 1
je 0x53a7a3
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x53a7a3
shl edx, 0xa
and edx, 0xffc00
movzx ecx, word [ebp + 2]
and ecx, 0x3ff
lea edx, [edx + ecx + 0x10000]
mov ecx, 2
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0xa60c94]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0xa62e94]
movzx edx, byte [edx*8 + 0xa5f615]
mov edx, dword [edx*4 + 0xa5eb28]
or edx, 2
xor ebx, ebx
cmp edx, 3
sete bl
cmp dword [esp + 0x44], ebx
je 0x53656c
lea ebp, [ebp + ecx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x53a75c
jmp 0x53656c
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x53656c
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x534a01
movzx ecx, word [ebp]
cmp dword [esp + 0x34], 0
mov edx, 1
je 0x53a86d
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x53a86d
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebp + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, 2
mov esi, ecx
sar esi, 0x1f
shr esi, 0x19
add esi, ecx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0xa60c94]
shl esi, 7
mov ebx, ecx
sub ebx, edi
add ebx, esi
movzx esi, word [ebx + ebx + 0xa62e94]
movzx esi, byte [esi*8 + 0xa5f615]
mov esi, dword [esi*4 + 0xa5eb28]
or esi, 2
cmp esi, 3
sete bl
cmp ecx, 0x5f
sete cl
or cl, bl
movzx ecx, cl
cmp dword [esp + 0x44], ecx
je 0x53656c
lea ebp, [ebp + edx*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x53a826
jmp 0x53656c
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x53656c
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0x54]
lea ecx, [ecx*4 + 0xa5f4dc]
mov dword [esp + 4], ecx
mov ebp, edx
cmp ebp, eax
jae 0x534a01
movzx edx, word [ebp]
cmp dword [esp + 0x34], 0
mov esi, 1
je 0x53a955
mov edi, edx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x53a955
shl edx, 0xa
and edx, 0xffc00
mov ecx, ebp
movzx esi, word [ebp + 2]
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
mov esi, 2
jmp 0x53a957
mov ecx, ebp
mov edi, dword [esp + 0x54]
mov ebx, dword [edi*4 + 0xa5f4d8]
cmp edx, ebx
jb 0x53a978
mov ebp, dword [esp + 4]
cmp edx, ebx
je 0x53a984
mov ebx, dword [ebp]
add ebp, 4
cmp edx, ebx
jae 0x53a96a
cmp dword [esp + 0x44], 0
jne 0x53a98f
jmp 0x53656a
cmp dword [esp + 0x44], 0
jne 0x53656a
mov ebp, ecx
lea ebp, [ebp + esi*2]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x28]
jl 0x53a90a
jmp 0x53656c
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x28], eax
mov ebp, edx
jle 0x53656c
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ebp, edx
cmp ebp, eax
jae 0x534a01
movzx edx, word [ebp]
cmp dword [esp + 0x34], 0
mov ecx, 1
je 0x53aa0c
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x53aa0c
shl edx, 0xa
and edx, 0xffc00
movzx ecx, word [ebp + 2]
and ecx, 0x3ff
lea edx, [edx + ecx + 0x10000]
mov ecx, 2
mov bl, 1
cmp edx, 0x24
je 0x53aa37
cmp edx, 0x40
je 0x53aa37
cmp edx, 0x60
je 0x53aa37
lea esi, [edx - 0xa0]
cmp esi, 0xd760
setb bh
cmp edx, 0xdfff
seta bl
or bl, bh
movzx edx, bl
cmp dword [esp + 0x44], edx
je 0x53656c
mov edx, dword [esp + 0x10]
inc edx
lea ebp, [ebp + ecx*2]
mov dword [esp + 0x10], edx
cmp edx, dword [esp + 0x28]
jl 0x53a9c5
jmp 0x53656c
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0xc4]
cmp eax, ecx
je 0x53aa7c
sub esp, 0xc
push eax
call dword [0xa5d32c]
add esp, 0x10
mov eax, dword [esp + 0x158]
mov ecx, dword [eax + 0x80]
mov dword [esp + 0x30], ecx
mov eax, dword [eax + 0x84]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
jmp 0x5365c0
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp edi, eax
ja 0x53cf25
movzx eax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x53cf25
cmp ecx, 1
je 0x5341a4
movzx eax, word [edi + 2]
cmp ax, word [esi + 0x36]
je 0x5341a4
jmp 0x53cf25
cmp eax, 0xff
ja 0x5347d1
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov cl, byte [ecx + eax]
and cl, 0x10
shr cl, 4
jmp 0x5347d3
movzx eax, byte [ecx*8 + 0xa5f615]
cmp eax, 9
ja 0x53ab1a
mov ecx, 0x320
bt ecx, eax
jb case.0x538e07.0
movzx eax, word [esp + 0x28]
cmp eax, 0xf
je 0x534661
jmp 0x53eeed
movzx eax, word [ebp + 4]
movzx ecx, byte [ecx*8 + 0xa5f615]
cmp dword [ecx*4 + 0xa5eb28], eax
jmp 0x53ab5e
movzx eax, word [ebp + 4]
movzx ecx, byte [ecx*8 + 0xa5f615]
jmp 0x53ab5c
movzx eax, word [ebp + 4]
movzx ecx, byte [ecx*8 + 0xa5f614]
cmp eax, ecx
setne al
movzx ecx, word [esp + 0x28]
cmp ecx, 0x10
jmp 0x53abab
movzx eax, byte [ecx*8 + 0xa5f615]
mov eax, dword [eax*4 + 0xa5eb28]
or eax, 2
cmp eax, 3
jmp 0x53aba0
movzx ecx, byte [ecx*8 + 0xa5f615]
mov ecx, dword [ecx*4 + 0xa5eb28]
or ecx, 2
cmp ecx, 3
je case.0x538e07.0
cmp eax, 0x5f
sete al
movzx ecx, word [esp + 0x28]
cmp ecx, 0xf
sete cl
xor cl, al
jne 0x534661
jmp 0x53eeed
movzx edx, word [ebp + 4]
mov ecx, dword [edx*4 + 0xa5f4d8]
cmp eax, ecx
jb 0x53413e
lea edx, [edx*4 + 0xa5f4dc]
cmp eax, ecx
je 0x534171
mov ecx, dword [edx]
add edx, 4
cmp eax, ecx
jae 0x53abd5
jmp 0x53413e
movzx edi, word [ebp + 4]
lea ebx, [edi + edi]
mov eax, dword [esp + 0x158]
cmp ebx, dword [eax + 0x14]
jl 0x53d925
mov ebx, ebp
movzx eax, dx
cmp eax, 0x87
seta cl
cmp eax, 0x81
sete al
or al, cl
mov byte [esp + 4], al
mov ebp, dword [esp + 0x158]
cmp byte [esp + 4], 0
jne 0x53ac59
cmp dword [ebp + 0x70], 0
jne 0x53ac63
mov ecx, ebx
movzx eax, word [ecx + 2]
movzx eax, word [ecx + eax*2]
cmp eax, 0x77
je 0x53ac63
jmp 0x53ad70
lea ebx, [ebx + eax*2]
mov dword [ebp + 0x94], esi
mov dx, 0x77
cmp byte [esp + 4], 0
je 0x53ac2b
mov dword [ebp + 0x9c], 2
mov esi, dword [ebp + 0x94]
mov eax, dword [ebp + 0xb0]
mov dword [esp + 0x34], eax
movzx eax, dx
movzx eax, byte [eax + 0xa5ea14]
mov edi, ebx
lea edx, [edi + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
cmp eax, 0xfffffc20
je 0x53acbc
test eax, eax
jne 0x53b79c
mov ax, word [ebx + 2]
jmp 0x53ace3
movzx eax, word [edi + 2]
lea ecx, [edi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x53da7b
movzx edx, word [edi]
cmp edx, 0x77
je 0x53ace3
movzx ecx, word [ecx]
cmp ecx, 0x77
jne 0x53da7b
movzx eax, ax
mov ebp, dword [esp + 0x158]
mov edx, dword [esp + 0x34]
mov dword [ebp + 0xb0], edx
movzx ecx, word [ebx + eax*2]
cmp ecx, 0x77
je 0x53ac45
jmp 0x53bd36
mov edi, dword [esp + 8]
cmp edi, ebx
jbe 0x53af0d
mov ebp, dword [esp + 0x158]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
push eax
push dword [esp + 0x48]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
test eax, eax
jne 0x53f279
movzx eax, word [edi - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x53ad60
add edi, 0xfffffffe
jmp 0x53ad63
add edi, 0xfffffffc
mov edx, dword [esp + 0x14]
cmp edi, ebx
ja 0x53ad20
jmp 0x53af6a
movzx eax, dx
movzx eax, byte [eax + 0xa5ea14]
mov edx, ebx
lea edx, [edx + eax*2]
jmp 0x53b024
movzx eax, bp
mov cl, byte [eax + 0xa5ea14]
movzx eax, cl
lea eax, [edi + eax*2]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
movzx eax, ax
cmp eax, 0x8c
je 0x53f0e4
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
jmp 0x53b2de
mov ebx, dword [esp + 8]
cmp ebx, dword [esp + 0xc]
jbe 0x53b2da
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
test eax, eax
jne 0x53b552
lea eax, [ebx - 2]
cmp dword [esp + 0x34], 0
je 0x53ae1f
movzx ecx, word [ebx - 2]
and ecx, 0xfc00
cmp ecx, 0xdc00
mov edx, dword [esp + 0x14]
je 0x53ae27
mov ebx, eax
jmp 0x53ae2a
mov ebx, eax
mov edx, dword [esp + 0x14]
jmp 0x53ae2a
add ebx, 0xfffffffc
cmp ebx, dword [esp + 0xc]
ja 0x53add3
jmp 0x53b2e5
mov ebx, dword [esp + 8]
cmp ebx, dword [esp + 0xc]
jbe 0x53b2da
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
test eax, eax
jne 0x53f279
movzx eax, word [ebx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x53ae8f
add ebx, 0xfffffffe
jmp 0x53ae92
add ebx, 0xfffffffc
mov edx, dword [esp + 0x14]
cmp ebx, dword [esp + 0xc]
ja 0x53ae52
jmp 0x53b2e5
mov ebx, dword [esp + 8]
cmp ebx, dword [esp + 0xc]
jbe 0x53b2da
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
test eax, eax
jne 0x53f279
movzx eax, word [ebx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x53aefb
add ebx, 0xfffffffe
jmp 0x53aefe
add ebx, 0xfffffffc
mov edx, dword [esp + 0x14]
cmp ebx, dword [esp + 0xc]
ja 0x53aebe
jmp 0x53b2e5
mov edx, dword [esp + 0x14]
mov ebx, edi
jmp 0x53b2de
mov eax, dword [esp + 8]
mov ebx, edi
cmp eax, ebx
je 0x53b2da
mov ebx, eax
mov ebp, dword [esp + 0x158]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push esi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
test eax, eax
jne 0x53f279
add ebx, 0xfffffffe
cmp edi, ebx
mov edx, dword [esp + 0x14]
jne 0x53af37
mov ebx, edi
jmp 0x53b2e5
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0xc]
cmp eax, ebx
je 0x53b2da
mov ebx, eax
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
test eax, eax
jne 0x53f279
add ebx, 0xfffffffe
cmp dword [esp + 0xc], ebx
mov edx, dword [esp + 0x14]
jne 0x53af92
jmp 0x53b0db
cmp eax, 0x7a
jne 0x53b0e4
mov edx, dword [esp + 0xc]
add edx, 4
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
test eax, eax
jne 0x53b552
movzx eax, word [ebx]
cmp eax, 0x81
je 0x53f41a
movzx eax, ax
cmp eax, 0x88
jae 0x53f4d0
mov edx, ebx
mov ebx, dword [esp + 8]
jmp 0x53b2e5
mov ebx, dword [esp + 0xc]
cmp dword [esp + 8], ebx
je 0x53b2da
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
test eax, eax
jne 0x53f279
add ebx, 0xfffffffe
cmp dword [esp + 0xc], ebx
mov edx, dword [esp + 0x14]
jne 0x53b04e
jmp 0x53b0db
mov ebx, dword [esp + 0xc]
cmp dword [esp + 8], ebx
je 0x53b2da
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
test eax, eax
jne 0x53f279
add ebx, 0xfffffffe
cmp dword [esp + 0xc], ebx
mov edx, dword [esp + 0x14]
jne 0x53b0a6
mov ebx, dword [esp + 0xc]
jmp 0x53b2e5
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
test eax, eax
je 0x53b125
mov ecx, eax
cmp eax, 0xfffffc1b
jne 0x53f282
cmp dword [ebp + 0xb8], ebx
jne 0x53f786
movzx eax, word [ebx]
add dword [esp + 0xc], 4
cmp eax, 0x81
je 0x53f46c
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0xc]
jmp 0x53b2e5
mov ebx, dword [esp + 8]
cmp ebx, dword [esp + 0xc]
jbe 0x53b2da
mov ebp, dword [esp + 0x158]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov edi, dword [esp + 0x14]
mov ecx, edi
push eax
push dword [esp + 0x48]
push ebp
push esi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
test eax, eax
jne 0x53b552
lea ebx, [edi - 2]
cmp dword [esp + 0x34], 0
movzx ecx, word [edi - 2]
je 0x53b1db
and ecx, 0xfc00
add edi, 0xfffffffc
cmp ecx, 0xdc00
cmove ebx, edi
movzx ecx, word [ebx]
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
jne 0x53b1db
shl ecx, 0xa
and ecx, 0xffc00
movzx edx, word [ebx + 2]
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
mov edx, dword [esp + 0xc]
cmp ebx, edx
jbe 0x53b2da
mov edx, ecx
sar edx, 0x1f
shr edx, 0x19
add edx, ecx
mov esi, edx
and esi, 0x7fffff80
sar edx, 7
movzx edx, byte [edx + 0xa60c94]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0xa62e94]
movzx ecx, byte [ecx*8 + 0xa5f616]
lea eax, [ebx - 2]
cmp dword [esp + 0x34], 0
movzx edx, word [ebx - 2]
je 0x53b266
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x53b239
lea eax, [ebx - 4]
movzx edx, word [eax]
mov esi, edx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x53b266
shl edx, 0xa
and edx, 0xffc00
movzx esi, word [eax + 2]
and esi, 0x3ff
lea edx, [edx + esi + 0x10000]
mov esi, edx
sar esi, 0x1f
shr esi, 0x19
add esi, edx
mov edi, esi
and edi, 0x7fffff80
sar esi, 7
movzx esi, byte [esi + 0xa60c94]
shl esi, 7
sub edx, edi
add edx, esi
movzx edx, word [edx + edx + 0xa62e94]
movzx edx, byte [edx*8 + 0xa5f616]
mov esi, dword [edx*4 + 0xa5eba0]
bt esi, ecx
jae 0x53b2b8
cmp eax, dword [esp + 0xc]
mov ecx, edx
mov ebx, eax
ja 0x53b21a
jmp 0x53b3e2
mov dword [esp + 8], ebx
cmp ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x158]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
ja 0x53b162
jmp 0x53b024
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x158]
mov eax, dword [ebp]
mov ecx, dword [ebp + 0x50]
mov dword [esp + 0x34], ecx
lea ecx, [eax + 1]
mov dword [ebp], ecx
mov dword [esp + 4], 0xfffffff8
cmp eax, dword [ebp + 4]
mov dword [esp + 8], ebx
mov dword [esp + 0x14], edx
jb 0x5340ea
jmp case.0x53dfa4.6
mov edi, ecx
cmp eax, 0x7a
jne 0x53b44c
mov edx, edi
add edx, 4
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push ebp
push esi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov ecx, eax
test eax, eax
mov edx, dword [esp + 0xc]
je 0x53b2e5
jmp 0x53f282
mov eax, dword [esp + 0xc]
cmp dword [esp + 8], eax
jbe 0x53ada9
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
test eax, eax
jne 0x53b552
movzx eax, word [ebx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
je 0x53b3af
add ebx, 0xfffffffe
jmp 0x53b3b2
add ebx, 0xfffffffc
mov edx, dword [esp + 0x14]
cmp ebp, 0x11
jne 0x53b3d7
mov ecx, ebx
cmp ecx, dword [esp + 0xc]
jbe 0x53b3d7
movzx eax, word [ecx]
cmp eax, 0xa
jne 0x53b3d7
movzx eax, word [ecx - 2]
cmp eax, 0xd
jne 0x53b3d7
add ebx, 0xfffffffe
cmp ebx, dword [esp + 0xc]
ja 0x53b36c
jmp 0x53b2de
mov edx, dword [esp + 0x14]
mov ebx, eax
jmp 0x53b2de
cmp eax, 1
mov dword [esp + 4], eax
jne case.0x53dfa4.6
mov eax, dword [esp + 0x158]
mov ecx, dword [eax + 0x90]
movzx edx, word [edi]
lea eax, [edi + 2]
cmp edx, 0x92
cmovne eax, edi
movzx edx, word [eax + 2]
movzx esi, word [eax + edx*2]
lea eax, [eax + edx*2]
cmp esi, 0x77
je 0x53b416
mov esi, dword [esp + 0x2c]
cmp ecx, esi
movzx edx, bp
cmovge esi, ecx
mov dword [esp + 0x2c], esi
movzx ecx, byte [edx + 0xa5ea14]
mov edx, 2
sub edx, ecx
lea edi, [eax + edx*2]
jmp 0x53ad8d
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
mov edx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push ebp
push esi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov ecx, eax
test eax, eax
jne 0x53f282
add edi, 4
mov edx, edi
jmp 0x53b2de
mov eax, dword [esp + 0xc]
cmp dword [esp + 8], eax
je 0x53b4fa
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
test eax, eax
jne 0x53b552
mov esi, ebx
lea ebx, [ebx - 2]
cmp ebp, 0x11
mov edx, dword [esp + 0x14]
jne 0x53b4f2
cmp ebx, dword [esp + 0xc]
jbe 0x53b4f2
movzx ecx, word [ebx]
cmp ecx, 0xa
jne 0x53b4f2
movzx ecx, word [esi - 4]
cmp ecx, 0xd
jne 0x53b4f2
add esi, 0xfffffffc
mov ebx, esi
cmp ebx, dword [esp + 0xc]
jne 0x53b49a
jmp 0x53b4fe
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x158]
mov ebx, dword [esp + 0xc]
jmp 0x53b2e5
mov eax, dword [esp + 0x160]
test eax, eax
je 0x53b534
lea eax, [esp + 0x160]
sub eax, ecx
mov ecx, eax
neg ecx
test eax, eax
cmovle ecx, eax
mov dword [esp + 4], ecx
jmp case.0x53dfa4.6
sub esp, 0xc
lea ecx, [esp + 0x16c]
xor edx, edx
push 1
push 0
push 0
push 0
push 0
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
jmp case.0x53dfa4.6
cmp ebx, dword [esp + 0x14]
jb 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
cmp ebx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov dword [esp + 4], 0xffffffeb
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov edi, edx
mov edx, dword [esp + 8]
cmp edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x158]
jne 0x53b732
movzx eax, di
cmp eax, 0x9f
je 0x53b732
cmp dword [ecx + 0xa8], 0
je 0x53bf33
mov dword [ecx + 0x84], edx
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x90], eax
mov eax, dword [esp + 0x30]
mov dword [ecx + 0x80], eax
test di, di
mov eax, 1
mov ecx, 0xfffffc19
jmp 0x53c84a
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
cmp eax, 0xfffffc1b
mov dword [esp + 4], eax
jne case.0x53dfa4.6
movzx eax, word [ebx]
cmp eax, 0x81
jne 0x53c58c
mov esi, dword [esp + 0x158]
jmp 0x53c83d
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
cmp eax, 0xfffffffe
jne 0x53b80e
mov eax, dword [esp + 0x18]
mov ebp, dword [eax]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x18]
cmp ebp, dword [ecx]
jb 0x53bd36
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 8]
mov dword [ebp + 0x84], eax
mov dword [ebp + 0x90], edi
mov eax, dword [esp + 0x30]
mov dword [ebp + 0x80], eax
mov dword [esp + 4], 1
jmp case.0x53dfa4.6
lea edi, [ebp + 4]
mov ebx, dword [esp + 0x158]
mov dword [ebx + 0xb4], edi
mov dword [ebx + 0xb0], 0
movzx eax, byte [edx + 0xa5ea14]
lea eax, [ebp + eax*2]
movzx ecx, word [ebp + 2]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebx
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
cmp eax, 1
je 0x53b924
cmp eax, 0xfffffc1f
je 0x53b940
cmp eax, 0xfffffc19
mov ebx, dword [esp + 0x158]
jne 0x53b552
cmp dword [ebx + 0xb0], 0
mov dword [esp + 4], eax
je 0x53c856
cmp eax, 0xfffffc1f
jne case.0x53dfa4.6
sub esp, 8
mov eax, dword [esp + 0x160]
push dword [eax + 0x80]
push edi
call fcn.00541260
add esp, 0x10
mov dword [esp + 4], 0xfffffc1f
test eax, eax
jne case.0x53dfa4.6
jmp 0x53b9ad
movzx eax, byte [edx + 0xa5ea14]
lea edx, [ebp + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x53dfa4.6
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 8]
mov dword [eax + 0x80], ecx
mov dword [esp + 4], 0xfffffc1e
jmp case.0x53dfa4.6
lea edi, [ebp + 4]
mov ebx, dword [esp + 0x158]
mov dword [ebx + 0xb4], edi
mov dword [ebx + 0xb0], 0
movzx eax, byte [edx + 0xa5ea14]
lea eax, [ebp + eax*2]
movzx ecx, word [ebp + 2]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebx
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
cmp eax, 1
je 0x53ba3b
test eax, eax
je 0x53bbc6
cmp eax, 0xfffffc19
mov ebx, dword [esp + 0x158]
jne 0x53b552
cmp dword [ebx + 0xb0], 0
jne 0x53ba4a
mov dword [ebx + 0xb0], edi
test eax, eax
mov dword [esp + 4], eax
jne case.0x53dfa4.6
jmp 0x53bbc6
movzx eax, byte [edx + 0xa5ea14]
lea edx, [ebp + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
test eax, eax
mov ecx, 0xfffffc1c
jmp 0x53bae4
mov dword [esp + 4], 0xfffffffb
jmp case.0x53dfa4.6
movzx eax, byte [edx + 0xa5ea14]
lea edx, [ebp + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
test eax, eax
mov ecx, 0xfffffc1d
cmovne ecx, eax
mov dword [esp + 4], ecx
jmp case.0x53dfa4.6
lea edi, [ebp + 4]
mov ebx, dword [esp + 0x158]
mov dword [ebx + 0xb4], edi
mov dword [ebx + 0xb0], 0
movzx eax, byte [edx + 0xa5ea14]
lea eax, [ebp + eax*2]
movzx ecx, word [ebp + 2]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push ebx
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
cmp eax, 1
je 0x53bb5c
test eax, eax
je 0x53bb77
cmp eax, 0xfffffc19
mov ebx, dword [esp + 0x158]
jne 0x53b552
cmp dword [ebx + 0xb0], 0
jne 0x53bb6b
mov dword [ebx + 0xb0], edi
test eax, eax
mov dword [esp + 4], eax
jne case.0x53dfa4.6
mov dword [esp + 4], 0xfffffc1d
jmp case.0x53dfa4.6
movzx eax, byte [edx + 0xa5ea14]
lea edx, [ebp + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x53dfa4.6
mov eax, dword [esp + 0x158]
mov dword [eax + 0x80], ebp
mov dword [esp + 4], 0xfffffc20
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
cmp esi, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov dword [esp + 4], 0xfffffff4
jmp case.0x53dfa4.6
mov dword [esp + 4], 0xffffffe6
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0xc4]
cmp eax, ecx
je 0x53bd36
sub esp, 0xc
push eax
jmp 0x53bcd4
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0xc4]
cmp eax, ecx
mov dword [esp + 4], esi
je case.0x53dfa4.6
sub esp, 0xc
push eax
call dword [0xa5d32c]
add esp, 0x10
jmp case.0x53dfa4.6
mov ecx, dword [esp + 0x158]
mov dword [ecx + 0xa8], eax
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0xc4]
cmp eax, ecx
je 0x53bd36
sub esp, 0xc
push eax
call dword [0xa5d32c]
add esp, 0x10
mov dword [esp + 4], 0
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
cmp eax, 1
mov dword [esp + 4], eax
je 0x53bd36
jmp case.0x53dfa4.6
cmp eax, 0xfffffc19
mov dword [esp + 4], eax
jne case.0x53dfa4.6
mov dword [esp + 4], 0
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov dword [esp + 4], 0
cmp dword [ecx + 0x60], 0
jne case.0x53dfa4.6
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x64], 0
mov edx, dword [esp + 8]
je 0x53b732
mov eax, dword [ecx + 0x98]
add eax, eax
add eax, dword [ecx + 0x78]
cmp dword [esp + 0x30], eax
jne 0x53b732
jmp 0x53bd36
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x53dfa4.6
mov eax, ecx
neg eax
mov dword [esp + 0x34], eax
lea eax, [ecx + ecx]
mov dword [esp + 8], eax
dec dword [esp + 0x10]
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x40]
jge 0x53eeed
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
lea eax, [esi - 4]
cmp ebx, eax
mov edi, dword [esp + 0x158]
ja 0x53bff2
mov eax, dword [ebx]
cmp eax, dword [ebp]
je 0x53c06c
test ecx, ecx
jle 0x53d549
mov eax, dword [esp + 0x34]
lea eax, [esi + eax*2]
cmp ebx, eax
ja 0x53d549
sub esp, 4
push dword [esp + 0xc]
lea eax, [esp + 0xc0]
push eax
push ebx
call sub.msvcrt.dll_memcmp
add esp, 0x10
test eax, eax
mov eax, dword [esp + 0x28]
jne 0x53d549
lea ebx, [ebx + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebx
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push edi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x53bfc4
jmp case.0x53dfa4.6
mov eax, 2
jmp 0x53c02d
mov eax, dword [esp + 0x50]
test eax, eax
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x40]
js 0x53c861
cmp eax, 0xa
mov edx, dword [esp + 0x14]
ja case.default.0x538e07
jmp dword [eax*4 + 0x53fcc4]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x53dfa4.6
dec dword [esp + 0x10]
mov ebp, 0x80001f
mov edx, dword [esp + 0x10]
inc edx
cmp edx, eax
jge 0x53eeed
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x53f307
mov dword [esp + 0x10], edx
lea edi, [ecx + 2]
movzx eax, word [ecx]
cmp dword [esp + 0x34], 0
je 0x53c140
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x53c140
shl eax, 0xa
and eax, 0xffc00
movzx edx, word [ecx + 2]
add ecx, 4
and edx, 0x3ff
lea eax, [eax + edx + 0x10000]
jmp 0x53c142
mov ecx, edi
mov edx, dword [esp + 0x14]
cmp eax, 0x180d
jle 0x53c15f
lea edi, [eax - 0x2000]
cmp edi, 0x5f
ja case.default.0x53c158
jmp dword [edi*4 + 0x53fcf0]
cmp eax, 0x84
jg 0x53c1b8
lea edi, [eax - 9]
cmp edi, 0x17
ja case.0x53c158.8203
bt ebp, edi
jae case.0x53c158.8203
cmp dword [esp + 0x44], 0
jne 0x53eeed
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x18], ecx
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x53c0dd
jmp case.0x53dfa4.6
cmp eax, 0x85
je case.0x53c158.8192
cmp eax, 0xa0
je case.0x53c158.8192
cmp eax, 0x1680
je case.0x53c158.8192
jmp case.0x53c158.8203
cmp eax, 0x3000
je case.0x53c158.8192
cmp eax, 0x180e
je case.0x53c158.8192
mov edi, eax
sar edi, 0x1f
shr edi, 0x19
add edi, eax
mov edx, edi
and edx, 0x7fffff80
sar edi, 7
movzx edi, byte [edi + 0xa60c94]
shl edi, 7
sub eax, edx
mov edx, dword [esp + 0x14]
add eax, edi
movzx eax, word [eax + eax + 0xa62e94]
movzx eax, byte [eax*8 + 0xa5f615]
xor ebx, ebx
cmp dword [eax*4 + 0xa5eb28], 6
sete bl
cmp dword [esp + 0x44], ebx
jne 0x53c17e
jmp 0x53eeed
mov dword [esp + 4], 0xfffffff2
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
cmp dword [esp + 0x34], 0
mov dword [esp + 4], eax
je 0x53c355
test eax, eax
jne case.0x53dfa4.6
dec edi
inc edi
cmp edi, dword [esp + 0x40]
jge 0x53eeed
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
cmp edx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x53e475
movzx eax, word [edx]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
mov ebx, dword [esp + 0x28]
jne 0x53c2df
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edx + 2]
add edx, 4
mov dword [esp + 0xc], edx
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x53c2e6
add edx, 2
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x14]
cmp ebx, eax
je 0x53eeed
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x53c284
jmp case.0x53dfa4.6
add ecx, 2
inc edi
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x18], ecx
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x53dfa4.6
cmp edi, dword [esp + 0x40]
jge 0x53eeed
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
mov edx, dword [esp + 0x28]
jae 0x53f125
movzx eax, word [ecx]
cmp edx, eax
mov edx, dword [esp + 0x14]
jne 0x53c328
jmp 0x53eeed
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
cmp dword [esp + 0x34], 0
mov dword [esp + 4], eax
je 0x53c4d0
test eax, eax
jne case.0x53dfa4.6
dec edi
inc edi
cmp edi, dword [esp + 0x40]
jge 0x53eeed
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
cmp edx, dword [eax]
jae 0x53e4b3
movzx eax, word [edx]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
mov ebx, dword [esp + 0x28]
jne 0x53c434
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edx + 2]
add edx, 4
mov dword [esp + 0xc], edx
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
cmp ebx, eax
jne 0x53c443
jmp 0x53f018
add edx, 2
mov dword [esp + 0xc], edx
cmp ebx, eax
je 0x53f018
cmp dword [esp + 0x10], eax
mov dword [esp + 4], 0
je case.0x53dfa4.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x53c3d9
jmp case.0x53dfa4.6
mov ecx, dword [esp + 0xc]
add ecx, 2
inc edi
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x53dfa4.6
cmp edi, dword [esp + 0x40]
jge 0x53eeed
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
mov edx, dword [esp + 0x28]
jae 0x53f163
movzx eax, word [ecx]
cmp edx, eax
je 0x53f018
cmp dword [esp + 0x10], eax
mov dword [esp + 4], 0
jne 0x53c495
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x30]
mov dword [ebp + 0x80], eax
mov eax, dword [esp + 8]
mov dword [ebp + 0x84], eax
mov dword [ebp + 0x90], edi
mov dword [esp + 4], 0xfffffc1a
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x53dfa4.6
mov eax, dword [esp + 0x158]
mov dword [eax + 0xb8], ebx
mov dword [esp + 4], 0xfffffc1b
jmp case.0x53dfa4.6
movzx eax, ax
cmp eax, 0x77
movzx eax, word [ebx + 2]
mov esi, dword [esp + 0x158]
jne 0x53c835
lea ecx, [ebx + eax*2]
movzx edx, word [ebx + eax*2]
cmp edx, 0x77
movzx eax, word [ebx + eax*2 + 2]
mov ebx, ecx
je 0x53c5a3
jmp 0x53c837
mov dword [esp + 4], 1
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 8]
mov dword [ebp + 0x84], eax
jmp 0x53b89e
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
jmp 0x53c6da
add ecx, 2
inc dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov edi, ecx
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x53dfa4.6
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
jge 0x53eeed
mov eax, dword [esp + 0x18]
mov ecx, edi
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x53f06c
cmp bx, word [ecx]
mov edx, dword [esp + 0x14]
je 0x53c6b8
jmp 0x53eeed
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
jmp 0x53c770
mov ecx, dword [esp + 0xc]
add ecx, 2
inc dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x18], ecx
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x53dfa4.6
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x40]
jge 0x53eeed
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
mov esi, dword [esp + 0x158]
jae 0x53f0a6
movzx eax, word [ecx]
cmp bx, ax
mov edx, dword [esp + 0x14]
je 0x53c748
cmp edi, eax
je 0x53c748
jmp 0x53eeed
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 8]
lea ecx, [ecx + 2]
mov edx, dword [esp + 0x18]
cmp ecx, dword [edx]
jb 0x53bd36
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne 0x53bd36
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne 0x53bd36
mov ecx, dword [esp + 8]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov ecx, ebx
add eax, eax
sub ecx, eax
mov ebx, ecx
xor eax, eax
cmp dword [esi + 0xb8], ebx
mov ecx, 0xfffffc1b
cmove ecx, eax
mov dword [esp + 4], ecx
jmp case.0x53dfa4.6
mov dword [ebx + 0xb0], edi
jmp case.0x53dfa4.6
movzx ebp, bx
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 8], ebp
cmp ebp, 0x16
mov dword [esp + 4], eax
jne 0x53cfd6
test eax, eax
mov ecx, dword [esp + 0x28]
jne case.0x53dfa4.6
cmp dword [esp + 0x10], ecx
jge 0x53f018
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
cmp ecx, eax
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
jae 0x53f1a1
lea edx, [ecx + 2]
movzx ecx, word [ecx]
cmp dword [esp + 0x34], 0
je 0x53c90e
mov esi, ecx
and esi, 0xfc00
cmp esi, 0xd800
jne 0x53c90e
shl ecx, 0xa
and ecx, 0xffc00
mov esi, dword [esp + 0xc]
movzx edx, word [esi + 2]
add esi, 4
and edx, 0x3ff
lea ecx, [ecx + edx + 0x10000]
jmp 0x53c910
mov esi, edx
mov dword [esp + 0xc], esi
cmp esi, eax
jae 0x53ca01
mov edx, ecx
sar edx, 0x1f
shr edx, 0x19
add edx, ecx
mov esi, edx
and esi, 0x7fffff80
sar edx, 7
movzx edx, byte [edx + 0xa60c94]
shl edx, 7
sub ecx, esi
add ecx, edx
movzx ecx, word [ecx + ecx + 0xa62e94]
movzx edx, byte [ecx*8 + 0xa5f616]
mov ecx, dword [esp + 0xc]
movzx ecx, word [ecx]
cmp dword [esp + 0x34], 0
mov esi, 1
je 0x53c995
mov edi, ecx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x53c995
shl ecx, 0xa
and ecx, 0xffc00
mov esi, dword [esp + 0xc]
movzx esi, word [esi + 2]
and esi, 0x3ff
lea ecx, [ecx + esi + 0x10000]
mov esi, 2
mov edi, ecx
sar edi, 0x1f
shr edi, 0x19
add edi, ecx
mov ebx, edi
and ebx, 0x7fffff80
sar edi, 7
movzx edi, byte [edi + 0xa60c94]
shl edi, 7
sub ecx, ebx
add ecx, edi
movzx ecx, word [ecx + ecx + 0xa62e94]
movzx ecx, byte [ecx*8 + 0xa5f616]
mov ebx, 1
shl ebx, cl
and ebx, dword [edx*4 + 0xa5eba0]
je 0x53c9e1
mov edx, dword [esp + 0xc]
lea edx, [edx + esi*2]
jmp 0x53c9e5
mov edx, dword [esp + 0xc]
mov dword [esp + 0xc], edx
cmp edx, eax
jae 0x53c9fd
test ebx, ebx
mov edx, ecx
mov edi, dword [esp + 0x2c]
jne 0x53c94f
jmp 0x53ca01
mov edi, dword [esp + 0x2c]
cmp dword [esp + 0xc], eax
jb 0x53ca30
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53ca30
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53ca30
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jg 0x53e3ba
inc dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov ecx, dword [esp + 0x28]
je 0x53c8a7
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
cmp esi, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov dword [esp + 4], 0xfffffff4
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
lea eax, [ebp + eax*2]
movzx ecx, word [ebp + 2]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x53dfa4.6
add ebp, 4
mov eax, dword [esp + 0x158]
mov dword [eax + 0x80], ebp
mov dword [esp + 4], 0xfffffc1f
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 8]
lea ecx, [ecx + 2]
mov edx, dword [esp + 0x18]
cmp ecx, dword [edx]
jb 0x53bd36
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne 0x53bd36
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne 0x53bd36
mov ecx, dword [esp + 8]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
cmp ebx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
cmp dword [esp + 0x34], 0
mov ecx, dword [esp + 0x28]
je 0x53df22
test eax, eax
jne case.0x53dfa4.6
dec dword [esp + 0x10]
lea eax, [ebx - 6]
movzx ebx, ax
mov edx, dword [esp + 0x10]
inc edx
cmp edx, ecx
jge 0x53f018
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov edi, dword [esp + 0xc]
cmp edi, eax
mov esi, dword [esp + 0x158]
jae 0x53f3dc
cmp dword [esp + 8], 0xc
mov dword [esp + 0x10], edx
jne 0x53d088
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x53d04e
sub esp, 0xc
push dword [esp + 0x40]
push dword [esp + 0x58]
push eax
push ecx
push edi
call fcn.00541090
add esp, 0x20
test eax, eax
je 0x53d088
jmp 0x53f018
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea edx, [ecx + ecx]
sub eax, edx
cmp edi, eax
ja 0x53d088
movzx eax, word [edi]
cmp ax, word [esi + 0x34]
jne 0x53d088
cmp ecx, 1
je 0x53f018
mov edi, dword [esp + 0xc]
movzx eax, word [edi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x53f018
movzx eax, word [edi]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x53d0b9
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x53d0bc
add edi, 2
mov dword [esp + 0xc], edi
cmp ebx, 0xf
ja case.default.0x53dfa4
mov dword [esp + 4], 0xfffffff2
jmp dword [ebx*4 + 0x53fc44]
cmp eax, 0xff
ja case.0x53d0d1.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
je case.0x53d0d1.7
jmp 0x53f018
cmp eax, 0xff
ja 0x53f018
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
jne case.0x53d0d1.7
jmp 0x53f018
cmp eax, 0xff
ja case.0x53d0d1.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
je case.0x53d0d1.7
jmp 0x53f018
cmp eax, 0xff
ja 0x53f018
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
jne case.0x53d0d1.7
jmp 0x53f018
cmp eax, 0xff
ja case.0x53d0d1.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je case.0x53d0d1.7
jmp 0x53f018
cmp eax, 0xff
ja 0x53f018
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
jne case.0x53d0d1.7
jmp 0x53f018
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x53d0d1.7
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [edx]
jb case.0x53d0d1.7
mov edx, dword [esp + 0x158]
cmp dword [edx + 0x18], 0
jne case.0x53d0d1.7
mov edx, dword [esp + 0x48]
cmp dword [edx], 2
jne case.0x53d0d1.7
mov edx, dword [esp + 0x158]
movzx edx, word [edx + 0x34]
cmp eax, edx
jne case.0x53d0d1.7
mov eax, dword [esp + 0x20]
mov dword [eax], 1
cmp ecx, 1
jle case.0x53d0d1.7
jmp 0x53e3ba
cmp eax, 0xc
jle 0x53d356
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb 0x53d362
cmp eax, 0x85
je 0x53d362
cmp eax, 0xd
mov dword [esp + 4], 0
jne case.0x53dfa4.6
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
jae case.0x53d0d1.7
mov eax, dword [esp + 0xc]
movzx eax, word [eax]
cmp eax, 0xa
jne case.0x53d0d1.7
add dword [esp + 0xc], 2
jmp case.0x53d0d1.7
cmp eax, 0x1fff
jle 0x53d31d
cmp eax, 0x202e
jg 0x53d398
add eax, 0xffffe000
cmp eax, 0xb
mov dword [esp + 4], 0
jae case.0x53d0d1.7
jmp case.0x53dfa4.6
cmp eax, 0x1fff
jle 0x53d378
cmp eax, 0x202e
jg 0x53d3dd
add eax, 0xffffe000
cmp eax, 0xb
mov dword [esp + 4], 0
jb case.0x53d0d1.7
jmp case.0x53dfa4.6
lea ecx, [eax - 0xa]
cmp ecx, 4
jb 0x53f018
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb 0x53f018
cmp eax, 0x85
mov dword [esp + 4], 0
jne case.0x53d0d1.7
jmp case.0x53dfa4.6
lea ecx, [eax - 0xa]
cmp ecx, 4
jb case.0x53d0d1.7
lea ecx, [eax - 0x2028]
cmp ecx, 2
jb case.0x53d0d1.7
cmp eax, 0x85
je case.0x53d0d1.7
jmp 0x53f018
cmp eax, 0x9f
jle 0x53d3c2
cmp eax, 0xa0
je 0x53f018
cmp eax, 0x1680
je 0x53f018
cmp eax, 0x180e
mov dword [esp + 4], 0
jne case.0x53d0d1.7
jmp case.0x53dfa4.6
lea ecx, [eax - 0xb]
cmp ecx, 2
jae 0x53d3f2
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x6c], 0
je case.0x53d0d1.7
jmp 0x53f018
cmp eax, 0x9f
jle 0x53d3f7
cmp eax, 0xa0
je case.0x53d0d1.7
cmp eax, 0x1680
je case.0x53d0d1.7
cmp eax, 0x180e
jmp 0x53d3ff
cmp eax, 0x202f
je 0x53f018
cmp eax, 0x205f
je 0x53f018
cmp eax, 0x3000
mov dword [esp + 4], 0
jne case.0x53d0d1.7
jmp case.0x53dfa4.6
cmp eax, 9
je 0x53f018
cmp eax, 0x20
mov dword [esp + 4], 0
jne case.0x53d0d1.7
jmp case.0x53dfa4.6
cmp eax, 0x202f
je case.0x53d0d1.7
cmp eax, 0x205f
je case.0x53d0d1.7
cmp eax, 0x3000
jmp 0x53d3ff
cmp eax, 0xa
jmp 0x53d3ff
cmp eax, 9
je case.0x53d0d1.7
cmp eax, 0x20
mov dword [esp + 4], 0
jne case.0x53dfa4.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x53cff7
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
cmp ebx, esi
jb 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
cmp ebx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
cmp edi, edx
jb 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
cmp byte [esp + 4], 0
je 0x53dde2
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x53dfa4.6
dec edi
inc edi
cmp edi, dword [esp + 0x28]
jge 0x53eeed
sub esp, 4
mov ecx, ebx
mov ebp, dword [esp + 0xc]
mov edx, ebp
push dword [esp + 0x10]
mov esi, dword [esp + 0x160]
push esi
push dword [esp + 0x1c]
call fcn.00540290
add esp, 0x10
test eax, eax
js 0x53f345
lea ebp, [ebp + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x14], ebp
mov ecx, ebp
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x53d618
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
cmp dword [esp + 0x34], 0
mov dword [esp + 4], eax
je 0x53e4f1
test eax, eax
mov ecx, dword [esp + 0x28]
jne case.0x53dfa4.6
dec ebx
movzx esi, cx
inc ebx
cmp ebx, dword [esp + 0x10]
jge 0x53eeed
mov eax, dword [esp + 0x18]
cmp edi, dword [eax]
jae 0x53f3a2
movzx eax, word [edi]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x53d743
add edi, 4
jmp 0x53d74d
add edi, 2
cmp eax, 0x100
jb 0x53d75b
mov edx, dword [esp + 0x14]
cmp esi, 0x6e
jne 0x53d777
jmp 0x53eeed
mov ecx, eax
shr ecx, 3
movzx ecx, byte [ebp + ecx + 2]
and al, 7
movzx eax, al
bt ecx, eax
mov edx, dword [esp + 0x14]
jae 0x53eeed
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x53d714
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov dword [esp + 0xc], ebp
mov eax, dword [esp + 0x158]
mov ecx, eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
mov ebp, dword [eax + ebx*4]
mov dword [esp + 0x10], ebp
mov ebp, ebx
or ebp, 1
mov dword [esp + 0x18], ebp
mov ebp, dword [eax + ebp*4]
mov dword [esp + 0x1c], ebp
sub ecx, edi
mov ebp, dword [eax + ecx*4]
mov dword [esp + 0x44], ebp
mov esi, dword [esp + 8]
mov dword [esp + 0x28], edx
mov edx, esi
mov ebp, dword [esp + 0x158]
sub edx, dword [ebp + 0x78]
sar edx, 1
mov ebp, dword [esp + 0x158]
mov ebp, dword [ebp + 0x94]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x158]
mov ebp, dword [ebp + 0xb0]
mov dword [esp + 4], ebp
mov dword [eax + ecx*4], edx
mov edx, dword [esp + 0x28]
movzx eax, dx
mov dword [esp + 0x34], eax
mov ecx, esi
cmp dword [esp + 0x34], 0x88
jb 0x53d9bb
mov eax, dword [esp + 0x158]
mov dword [eax + 0x9c], 2
movzx eax, byte [edx + 0xa5ea14]
mov edx, dword [esp + 0xc]
mov esi, edx
lea edx, [edx + eax*2]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
push eax
push dword [esp + 0x48]
mov ebp, dword [esp + 0x16c]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
cmp eax, 0xfffffc20
je 0x53da10
test eax, eax
jne 0x53f025
mov edx, dword [esp + 0xc]
mov ax, word [edx + 2]
mov esi, dword [esp + 8]
jmp 0x53da3d
movzx eax, word [esi + 2]
lea ecx, [esi + eax*2]
cmp dword [ebp + 0x80], ecx
jae 0x53da7b
movzx edx, word [esi]
cmp edx, 0x77
mov esi, dword [esp + 8]
jne 0x53da31
mov edx, dword [esp + 0xc]
jmp 0x53da3d
movzx ecx, word [ecx]
cmp ecx, 0x77
mov edx, dword [esp + 0xc]
jne 0x53da7b
mov ecx, dword [esp + 0x158]
mov ebp, dword [esp + 0x14]
mov dword [ecx + 0x94], ebp
movzx eax, ax
mov ebp, dword [esp + 4]
mov dword [ecx + 0xb0], ebp
movzx ecx, word [edx + eax*2]
lea eax, [edx + eax*2]
mov edx, 0x77
cmp ecx, 0x77
mov dword [esp + 0xc], eax
je 0x53d99e
xor esi, esi
jmp 0x53f039
mov dword [esp + 4], 0xfffffc20
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
cmp ebx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
cmp eax, 0xfffffffe
jne 0x53dad1
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jb 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov dword [esp + 4], 0xfffffffa
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
cmp ebp, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
jmp 0x53dce3
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x14], ecx
push eax
push dword [esp + 0x48]
push esi
push ebx
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x53dfa4.6
mov ecx, dword [esp + 8]
cmp ecx, edi
jbe 0x53eeed
movzx eax, word [ecx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
mov esi, dword [esp + 0x158]
mov ebx, dword [esp + 0x2c]
je 0x53dd23
add ecx, 0xfffffffe
jmp 0x53dcc5
add ecx, 0xfffffffc
jmp 0x53dcc5
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
cmp edi, dword [esp + 0x28]
mov esi, dword [esp + 8]
jge 0x53f229
mov esi, dword [esp + 8]
sub esp, 4
mov ecx, ebx
mov edx, esi
push dword [esp + 0x10]
push dword [esp + 0x160]
push dword [esp + 0x1c]
call fcn.00540290
add esp, 0x10
test eax, eax
js 0x53f1df
lea esi, [esi + eax*2]
inc edi
cmp edi, dword [esp + 0x28]
jl 0x53ddf4
jmp 0x53f217
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x53dfa4.6
dec ebx
inc ebx
cmp ebx, dword [esp + 0x10]
jge 0x53eeed
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp ecx, dword [eax]
mov eax, ecx
jae 0x53f492
lea ecx, [eax + 2]
movzx eax, word [eax]
cmp dword [esp + 0x34], 0
je 0x53dec5
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x53dec5
shl eax, 0xa
and eax, 0xffc00
mov edx, dword [esp + 0xc]
movzx ecx, word [edx + 2]
add edx, 4
mov dword [esp + 0xc], edx
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x53dec9
mov dword [esp + 0xc], ecx
sub esp, 4
push dword [esp + 0x38]
push edi
push eax
call fcn.00541470
add esp, 0x10
test eax, eax
je 0x53eeed
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x53de65
jmp case.0x53dfa4.6
test eax, eax
jne case.0x53dfa4.6
dec dword [esp + 0x10]
lea eax, [ebx - 6]
movzx ebx, ax
mov edx, dword [esp + 0x10]
inc edx
cmp edx, ecx
jge 0x53f018
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edi, dword [esp + 0xc]
cmp edi, ecx
jae 0x53f4f4
cmp dword [esp + 8], 0xc
mov dword [esp + 0x10], edx
jne 0x53df8d
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x53dfcb
sub esp, 0xc
push 0
push dword [esp + 0x58]
push ecx
push eax
push edi
call fcn.00541090
add esp, 0x20
test eax, eax
je 0x53e00c
jmp 0x53f018
cmp ebx, 0xf
ja case.default.0x53dfa4
lea ebp, [edi + 2]
movzx eax, word [edi]
mov dword [esp + 4], 0xfffffff2
jmp dword [ebx*4 + 0x53fc84]
cmp eax, 0xff
ja case.0x53dfa4.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
je case.0x53dfa4.7
jmp 0x53f018
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
lea edx, [eax + eax]
sub ecx, edx
cmp edi, ecx
ja 0x53e00c
movzx ecx, word [edi]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne 0x53e00c
cmp eax, 1
je 0x53f018
mov edi, dword [esp + 0xc]
movzx eax, word [edi + 2]
mov ecx, dword [esp + 0x158]
cmp ax, word [ecx + 0x36]
je 0x53f018
lea ebp, [edi + 2]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je case.0x53dfa4.7
mov ecx, dword [esp + 0x18]
cmp ebp, dword [ecx]
jb case.0x53dfa4.7
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x18], 0
jne case.0x53dfa4.7
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 2
jne case.0x53dfa4.7
mov ecx, dword [esp + 0xc]
movzx ecx, word [ecx]
mov edx, dword [esp + 0x158]
cmp cx, word [edx + 0x34]
jne case.0x53dfa4.7
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, 1
jle case.0x53dfa4.7
jmp 0x53e3ba
cmp eax, 0xff
ja 0x53f018
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 4
jne case.0x53dfa4.7
jmp 0x53f018
cmp eax, 0xff
ja case.0x53dfa4.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
je case.0x53dfa4.7
jmp 0x53f018
cmp eax, 0xff
ja 0x53f018
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 1
jne case.0x53dfa4.7
jmp 0x53f018
cmp eax, 0xff
ja case.0x53dfa4.7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
je case.0x53dfa4.7
jmp 0x53f018
cmp eax, 0xff
ja 0x53f018
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test byte [ecx + eax], 0x10
jne case.0x53dfa4.7
jmp 0x53f018
movsx edx, ax
cmp edx, 0xc
jle 0x53e298
lea edx, [eax - 0x2028]
movzx edx, dx
cmp edx, 2
jb 0x53e2a7
movzx eax, ax
cmp eax, 0x85
je 0x53e2a7
cmp eax, 0xd
mov dword [esp + 4], 0
jne case.0x53dfa4.6
cmp ebp, ecx
jae case.0x53dfa4.7
mov eax, dword [esp + 0xc]
movzx eax, word [eax + 2]
cmp eax, 0xa
jne case.0x53dfa4.7
mov ebp, dword [esp + 0xc]
add ebp, 4
jmp case.0x53dfa4.7
movsx ecx, ax
cmp ecx, 0x1fff
jle 0x53e25b
cmp ecx, 0x202e
jg 0x53e2e9
add eax, 0xffffe000
movzx eax, ax
cmp eax, 0xb
mov dword [esp + 4], 0
jae case.0x53dfa4.7
jmp case.0x53dfa4.6
movsx ecx, ax
cmp ecx, 0x1fff
jle 0x53e2bd
cmp ecx, 0x202e
jg 0x53e331
add eax, 0xffffe000
movzx eax, ax
cmp eax, 0xb
mov dword [esp + 4], 0
jb case.0x53dfa4.7
jmp case.0x53dfa4.6
lea ecx, [eax - 0xa]
movzx ecx, cx
cmp ecx, 4
jb 0x53f018
lea ecx, [eax - 0x2028]
movzx ecx, cx
cmp ecx, 2
jb 0x53f018
movzx eax, ax
cmp eax, 0x85
mov dword [esp + 4], 0
jne case.0x53dfa4.7
jmp case.0x53dfa4.6
lea ecx, [eax - 0xa]
movzx ecx, cx
cmp ecx, 4
jb case.0x53dfa4.7
lea ecx, [eax - 0x2028]
movzx ecx, cx
cmp ecx, 2
jb case.0x53dfa4.7
movzx eax, ax
cmp eax, 0x85
je case.0x53dfa4.7
jmp 0x53f018
movzx eax, ax
cmp ecx, 0x9f
jle 0x53e316
cmp eax, 0xa0
je 0x53f018
cmp eax, 0x1680
je 0x53f018
cmp eax, 0x180e
mov dword [esp + 4], 0
jne case.0x53dfa4.7
jmp case.0x53dfa4.6
lea ecx, [eax - 0xb]
movzx ecx, cx
cmp ecx, 2
jae 0x53e349
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x6c], 0
je case.0x53dfa4.7
jmp 0x53f018
movzx eax, ax
cmp ecx, 0x9f
jle 0x53e351
cmp eax, 0xa0
je case.0x53dfa4.7
cmp eax, 0x1680
je case.0x53dfa4.7
cmp eax, 0x180e
jmp 0x53e359
movzx eax, ax
cmp eax, 0x202f
je 0x53f018
cmp eax, 0x205f
je 0x53f018
cmp eax, 0x3000
mov dword [esp + 4], 0
jne case.0x53dfa4.7
jmp case.0x53dfa4.6
cmp eax, 9
je 0x53f018
cmp eax, 0x20
mov dword [esp + 4], 0
jne case.0x53dfa4.7
jmp case.0x53dfa4.6
movzx eax, ax
cmp eax, 0x202f
je case.0x53dfa4.7
cmp eax, 0x205f
je case.0x53dfa4.7
cmp eax, 0x3000
jmp 0x53e359
movzx eax, ax
cmp eax, 0xa
jmp 0x53e359
cmp eax, 9
je case.0x53dfa4.7
cmp eax, 0x20
mov dword [esp + 4], 0
jne case.0x53dfa4.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, ebp
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov dword [esp + 0xc], ebp
je 0x53df34
jmp case.0x53dfa4.6
mov dword [esp + 4], 0xfffffff2
jmp case.0x53dfa4.6
mov dword [esp + 4], 0xfffffff4
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x53dfa4.6
mov ecx, dword [esp + 8]
cmp ecx, dword [esp + 0xc]
jbe 0x53eeed
lea edi, [ecx - 2]
cmp dword [esp + 0x34], 0
mov esi, dword [esp + 0x158]
mov ebx, dword [esp + 0x2c]
je 0x53e440
movzx eax, word [ecx - 2]
and eax, 0xfc00
cmp eax, 0xdc00
mov edx, dword [esp + 0x14]
jne 0x53e444
add ecx, 0xfffffffc
mov edi, ecx
jmp 0x53e444
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
push eax
push dword [esp + 0x48]
push esi
push ebx
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov dword [esp + 8], edi
je 0x53e402
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
test eax, eax
mov ecx, dword [esp + 0x28]
jne case.0x53dfa4.6
movzx esi, cx
cmp ebx, dword [esp + 0x10]
jge 0x53eeed
mov eax, dword [esp + 0x18]
cmp edi, dword [eax]
jae 0x53f532
movzx eax, word [edi]
cmp eax, 0x100
mov edx, dword [esp + 0x14]
jb 0x53e52e
cmp esi, 0x6e
jne 0x53e54c
jmp 0x53eeed
mov ecx, eax
and ecx, 0xfff8
shr ecx, 3
movzx ecx, byte [ebp + ecx + 2]
and al, 7
movzx eax, al
bt ecx, eax
jae 0x53eeed
add edi, 2
inc ebx
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, edi
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
je 0x53e500
jmp case.0x53dfa4.6
mov dword [esp + 4], 0
cmp dword [esp + 8], edi
jb case.0x53dfa4.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ebx, dword [esp + 0x14]
mov ecx, ebx
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
test eax, eax
jne 0x53f279
add ebx, 0xfffffffe
mov dword [esp + 4], 0
mov dword [esp + 8], ebx
cmp ebx, edi
jae 0x53e59c
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x53dfa4.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, eax
jge 0x53eeed
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
cmp edx, dword [eax]
jae 0x53f56c
lea eax, [edx + 2]
cmp dword [esp + 0x34], 0
je 0x53e65f
movzx ecx, word [edx]
and ecx, 0xfc00
cmp ecx, 0xd800
je 0x53e665
mov dword [esp + 0xc], eax
jmp 0x53e66c
add edx, 4
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x44], 0
jne 0x53eeed
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x53e623
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x53dfa4.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x53eeed
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x53f5aa
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x53e753
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x53e753
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 0xc], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x53e757
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0xa60c94]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0xa62e94]
movzx eax, byte [eax*8 + 0xa5f615]
add al, 0xfb
xor ecx, ecx
cmp al, 4
ja 0x53e7a7
movsx eax, al
mov ecx, dword [eax*4 + 0xa5e9f0]
cmp dword [esp + 0x44], ecx
mov edx, dword [esp + 0x14]
je 0x53eeed
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x53e6f3
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x53dfa4.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x53eeed
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x53f5e8
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x53e882
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x53e882
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 0xc], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x53e886
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0xa60c94]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0xa62e94]
movzx eax, byte [eax*8 + 0xa5f615]
xor ecx, ecx
mov edx, dword [esp + 0x54]
cmp dword [eax*4 + 0xa5eb28], edx
sete cl
cmp dword [esp + 0x44], ecx
je 0x53eeed
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x53e822
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x53dfa4.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x53eeed
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x53f626
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x53e9af
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x53e9af
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 0xc], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x53e9b3
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0xa60c94]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0xa62e94]
movzx eax, byte [eax*8 + 0xa5f615]
xor ecx, ecx
cmp dword [esp + 0x54], eax
sete cl
cmp dword [esp + 0x44], ecx
je 0x53eeed
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x53e94f
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x53dfa4.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x53eeed
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x53f664
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x53ead5
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x53ead5
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 0xc], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x53ead9
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0xa60c94]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0xa62e94]
movzx eax, byte [eax*8 + 0xa5f614]
xor ecx, ecx
cmp dword [esp + 0x54], eax
sete cl
cmp dword [esp + 0x44], ecx
je 0x53eeed
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x53ea75
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x53dfa4.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x53eeed
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x53f6a2
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x53ebfb
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x53ebfb
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 0xc], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x53ebff
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0xa60c94]
shl ecx, 7
sub eax, edx
add eax, ecx
movzx eax, word [eax + eax + 0xa62e94]
movzx eax, byte [eax*8 + 0xa5f615]
mov eax, dword [eax*4 + 0xa5eb28]
or eax, 2
xor ecx, ecx
cmp eax, 3
sete cl
cmp dword [esp + 0x44], ecx
je 0x53eeed
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x53eb9b
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x53dfa4.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x53eeed
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x53f6e0
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x53ed2a
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x53ed2a
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
mov dword [esp + 0xc], esi
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x53ed2e
mov dword [esp + 0xc], ecx
mov edi, dword [esp + 0x158]
mov ebx, dword [esp + 0x2c]
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x19
add ecx, eax
mov edx, ecx
and edx, 0x7fffff80
sar ecx, 7
movzx ecx, byte [ecx + 0xa60c94]
shl ecx, 7
mov esi, eax
sub esi, edx
add esi, ecx
movzx ecx, word [esi + esi + 0xa62e94]
movzx ecx, byte [ecx*8 + 0xa5f615]
mov ecx, dword [ecx*4 + 0xa5eb28]
or ecx, 2
cmp ecx, 3
sete cl
cmp eax, 0x5f
sete al
or al, cl
movzx eax, al
cmp dword [esp + 0x44], eax
je 0x53eeed
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push edi
push ebx
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x53ecca
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov ecx, dword [esp + 0x28]
jne case.0x53dfa4.6
mov eax, dword [esp + 0x54]
lea ebx, [eax*4 + 0xa5f4dc]
cmp dword [esp + 0x10], ecx
jge 0x53eeed
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0xc]
cmp edi, dword [eax]
jae 0x53f713
lea ecx, [edi + 2]
movzx eax, word [edi]
cmp dword [esp + 0x34], 0
je 0x53ee60
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x53ee60
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [edi + 2]
add edi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x53ee62
mov edi, ecx
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx*4 + 0xa5f4d8]
cmp eax, ecx
jb 0x53ee80
mov edx, ebx
cmp eax, ecx
je 0x53ee97
mov ecx, dword [edx]
add edx, 4
cmp eax, ecx
jae 0x53ee73
cmp dword [esp + 0x44], 0
mov esi, dword [esp + 0x158]
mov edx, dword [esp + 0x14]
jne 0x53eead
jmp 0x53f018
cmp dword [esp + 0x44], 0
mov esi, dword [esp + 0x158]
mov edx, dword [esp + 0x14]
jne 0x53f018
inc dword [esp + 0x10]
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov dword [esp + 0x18], edi
mov ecx, edi
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov ecx, dword [esp + 0x28]
je 0x53ee0b
jmp case.0x53dfa4.6
mov dword [esp + 4], 0
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
jne case.0x53dfa4.6
dec dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, eax
jge 0x53f018
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
cmp esi, dword [eax]
jae 0x53f742
mov dword [esp + 0x10], ecx
lea ecx, [esi + 2]
movzx eax, word [esi]
cmp dword [esp + 0x34], 0
je 0x53ef8c
mov edx, eax
and edx, 0xfc00
cmp edx, 0xd800
jne 0x53ef8c
shl eax, 0xa
and eax, 0xffc00
movzx ecx, word [esi + 2]
add esi, 4
and ecx, 0x3ff
lea eax, [eax + ecx + 0x10000]
jmp 0x53ef8e
mov esi, ecx
mov dword [esp + 0xc], esi
mov cl, 1
cmp eax, 0x24
je 0x53efc9
cmp eax, 0x40
je 0x53efc9
cmp eax, 0x60
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
je 0x53efd4
lea ecx, [eax - 0xa0]
cmp ecx, 0xd760
setb dl
cmp eax, 0xdfff
seta cl
or cl, dl
jmp 0x53efd4
mov esi, dword [esp + 0x158]
mov edi, dword [esp + 0x2c]
movzx eax, cl
cmp dword [esp + 0x44], eax
mov edx, dword [esp + 0x14]
je 0x53f018
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push esi
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
mov eax, dword [esp + 0x28]
je 0x53ef30
jmp case.0x53dfa4.6
mov dword [esp + 4], 0
jmp case.0x53dfa4.6
mov esi, 0xfffffc1b
cmp eax, 0xfffffc1b
mov dword [esp + 4], eax
jne case.0x53dfa4.6
mov ecx, dword [esp + 0x158]
mov edx, ecx
mov ecx, dword [edx + 0xc]
mov eax, dword [esp + 0x10]
mov dword [ecx + ebx*4], eax
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov dword [ecx + eax*4], ebx
mov edx, dword [edx + 0x10]
sub edx, edi
mov eax, dword [esp + 0x44]
mov dword [ecx + edx*4], eax
mov dword [esp + 4], esi
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x158]
mov esi, eax
mov dword [esi + 0x9c], 2
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push esi
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
jmp 0x53b552
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
cmp eax, 0xfffffffe
jne 0x53f217
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f217
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x24]
cmp ecx, dword [edx]
jbe 0x53f217
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
mov dword [esp + 4], 0
cmp esi, dword [esp + 8]
jb case.0x53dfa4.6
mov eax, dword [esp + 0x10]
add eax, eax
neg eax
mov edi, eax
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, esi
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x48]
push dword [esp + 0x16c]
push dword [esp + 0x44]
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
test eax, eax
jne 0x53f279
add esi, edi
mov dword [esp + 4], 0
cmp esi, dword [esp + 8]
jae 0x53f233
jmp case.0x53dfa4.6
mov dword [esp + 4], eax
jmp case.0x53dfa4.6
mov dword [esp + 4], ecx
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
cmp eax, 0xfffffffe
jne 0x53f354
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jb 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 8]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], ebx
mov edx, ebx
push eax
push dword [esp + 0x48]
push ebp
push edi
push dword [esp + 0x4c]
call fcn.00534040
add esp, 0x20
mov dword [esp + 4], eax
test eax, eax
jne case.0x53dfa4.6
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0xb8], ecx
mov dword [esp + 4], 0xfffffc1b
jmp case.0x53dfa4.6
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push eax
push dword [esp + 0x48]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
jmp 0x53c55e
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x160]
inc eax
sub esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, ebx
push eax
push dword [esp + 0x48]
push ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
jmp 0x53f118
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53bd36
mov ecx, dword [esp + 0x24]
cmp edi, dword [ecx]
jbe 0x53bd36
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53bd36
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
jmp 0x53f76f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
je 0x53f76f
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
cmp edx, dword [ecx]
jbe 0x53f76f
mov ecx, dword [esp + 0x20]
mov dword [ecx], 1
mov dword [esp + 4], 0xfffffff4
cmp eax, 1
jg case.0x53dfa4.6
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
add esp, 0x13c
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 4], 0xfffffc1b
jmp case.0x53dfa4.6