Function at 0x30189b2b
Capabilities:
Encode data using base64
Encrypt data using speck

Disassembly:
push ebp
mov eax, 0x1a24
lea ebp, [esp - 0x70]
call fcn.3002ea85
mov eax, dword [section..cdata]
push ebx
push esi
xor esi, esi
mov dword [ebp + 0x6c], eax
mov eax, dword [0x301e6634]
push edi
xor edi, edi
inc edi
or ebx, 0xffffffff
mov dword [ebp - 0xa9c], eax
mov eax, dword [0x301e3348]
cmp eax, edi
mov dword [ebp - 0xa54], esi
mov dword [ebp - 0xa34], esi
mov dword [ebp - 0xabc], esi
mov dword [ebp - 0xa20], esi
mov dword [ebp - 0xa44], esi
mov dword [ebp - 0xab8], esi
mov dword [ebp - 0xa68], ebx
mov dword [ebp - 0xa1c], esi
mov dword [ebp - 0xa24], esi
mov dword [ebp - 0xa30], esi
mov dword [ebp - 0x9f8], ebx
mov dword [ebp - 0x9f4], esi
mov dword [ebp - 0x9f0], esi
mov dword [ebp - 0x9ec], esi
mov dword [ebp - 0x9e8], esi
mov dword [0x301e5ea4], esi
mov dword [ebp - 0xa98], edi
mov dword [ebp - 0xaa8], esi
mov dword [ebp - 0xa3c], esi
mov dword [ebp - 0xa7c], edi
mov dword [ebp - 0xaac], edi
je 0x30189be4
cmp eax, 4
jne 0x30189c11
cmp dword [0x301e68e4], 0x201
mov eax, dword [0x301df1a8]
mov dword [ebp - 0xae0], eax
mov dword [0x301df1a8], esi
jne 0x30189c11
mov dword [ebp - 0xaac], edi
mov dword [ebp - 0xa7c], 2
push dword [0x301e491c]
lea eax, [ebp - 0x1850]
push eax
call fcn.3018904b
cmp dword [0x301e3340], 5
jge 0x30189c37
call dword [fcn.30001238]
mov dword [0x301e8b20], eax
push 0x54
lea eax, [ebp - 0x195c]
push eax
push esi
mov dword [ebp - 0xa64], esi
mov dword [ebp - 0xac4], esi
call fcn.30056452
lea eax, [ebp - 0xb34]
push eax
call fcn.30149f4a
mov eax, dword [0x301e3f80]
mov eax, dword [eax]
and eax, 8
mov dword [ebp - 0xaa0], eax
mov eax, 0x2020
call fcn.3002ea85
cmp dword [0x301e3340], 5
mov dword [ebp - 0xa48], esp
jge 0x30189cc3
mov eax, dword [0x301e3f98]
mov dword [ebp - 0xac0], eax
mov eax, dword [0x301e3f94]
mov dword [ebp - 0xab4], eax
push 0x180
lea eax, [ebp - 0x9d0]
push eax
call fcn.30101bd1
lea eax, [ebp - 0x9d0]
mov dword [0x301e3f98], eax
mov dword [0x301e3f94], 0x180
mov eax, dword [0x301e4438]
mov ecx, dword [ebp - 0xa7c]
mov dword [eax + 0x20], edi
mov eax, dword [0x301e4438]
mov dword [eax + 0x24], ecx
mov eax, dword [0x301e4438]
mov ecx, dword [eax + 0x20]
mov edx, dword [0x301e4920]
mov dword [edx + 0x258], ecx
mov eax, dword [eax + 0x24]
mov ecx, dword [0x301e4920]
mov dword [ecx + 0x25c], eax
mov eax, dword [0x301e4920]
or byte [eax + 0x269], 0x80
mov eax, dword [0x301e4ae8]
mov dword [ebp - 0xab0], eax
lea eax, [ebp - 0x1908]
push esi
push eax
mov dword [0x301e4ae8], eax
call fcn.3005644c
test eax, eax
pop ecx
pop ecx
jne 0x301901af
cmp dword [0x301e3340], 2
jne 0x30189d6c
cmp byte [0x301e4d00], al
je 0x30189d62
mov eax, dword [0x301e4714]
or eax, dword [0x301ddc18]
je 0x30189d62
movzx eax, word [0x301ddb40]
push esi
push eax
call fcn.300fedc0
mov dword [0x301e8b20], eax
jmp 0x30189d6c
mov dword [0x301e8b20], 0x4e4
fld qword [0x301e5144]
mov eax, dword [0x301e4920]
fstp qword [ebp + 0x4c]
add eax, 0x44c
fld qword [0x301e3358]
mov dword [ebp - 0x9d4], ebx
fstp qword [ebp + 0x44]
mov dword [ebp - 0x9e4], ebx
mov dword [ebp - 0xa0c], ebx
mov dword [ebp - 0xa28], ebx
mov dword [0x301e7838], esi
mov dword [ebp - 0x9e0], esi
mov dword [ebp - 0xa6c], esi
mov dword [ebp - 0x9dc], esi
mov dword [ebp - 0x1804], esi
mov dword [ebp - 0x17fc], esi
mov dword [ebp - 0x1800], esi
mov dword [ebp - 0x1834], esi
mov dword [ebp - 0x183c], esi
mov dword [ebp - 0x1820], esi
mov dword [ebp - 0xa60], esi
mov dword [ebp - 0x1818], esi
mov dword [ebp - 0xb64], esi
mov dword [ebp - 0xa50], esi
mov dword [ebp - 0x1848], esi
mov dword [ebp - 0x1840], esi
mov dword [ebp - 0xa74], eax
mov dword [ebp - 0xa2c], ebx
mov dword [ebp - 0xa14], ebx
call fcn.30040f77
mov dword [ebp - 0xa80], eax
mov eax, dword [ebp - 0x9e4]
mov dword [ebp - 0xa10], eax
xor ebx, ebx
cmp dword [0x301e6c84], ebx
jne 0x30189e3a
call fcn.3004c4f5
jmp 0x30189e3f
call fcn.301338ba
cmp dword [0x301e6c84], ebx
mov dword [ebp - 0x9e4], eax
jne 0x30189e54
call fcn.3004c4f5
jmp 0x30189e59
call fcn.301338aa
mov dword [ebp - 0x9d8], eax
mov esi, dword [ebp - 0x9d8]
cmp esi, dword [ebp - 0xa80]
jg 0x3018a8cd
push dword [ebp - 0xa80]
push esi
mov esi, dword [ebp - 0xa48]
push esi
call fcn.3011e943
test byte [0x301e4ced], 0x20
mov edx, dword [ebp - 0x9e4]
je 0x30189ea5
cmp edx, 0x131
je 0x30189e29
cmp edx, 0x104c
je 0x30189e29
xor ebx, ebx
cmp edx, 0xa
je 0x3018f00c
mov ebx, dword [0x301e3340]
cmp ebx, 5
mov eax, dword [0x301e491c]
jge 0x30189ec4
test byte [eax + 7], 4
jne 0x30189f07
mov edi, dword [0x301e48ac]
cmp word [edi + 0x2e], 0
je 0x30189f0d
cmp dword [ebp - 0xaa0], 0
je 0x30189ee3
cmp dword [0x301e6c84], 0
je 0x30189f0d
push 1
push dword [ebp - 0x9d8]
push dword [ebp - 0xa48]
call fcn.300cabbe
mov eax, dword [0x301e491c]
mov ebx, dword [0x301e3340]
mov edx, dword [ebp - 0x9e4]
mov edi, dword [0x301e48ac]
cmp dword [ebp - 0x9e0], 0
jg 0x3018a8fa
cmp dword [ebp - 0xa20], 0
jg 0x3018a924
cmp edx, 0x851
jne 0x30189f52
mov esi, dword [ebp - 0xa48]
movsx ecx, word [esi + 4]
mov dword [ebp - 0x9e4], ecx
movsx ecx, word [esi + 6]
mov edx, dword [ebp - 0x9e4]
mov dword [ebp - 0x9d8], ecx
add esi, 8
mov ecx, dword [ebp - 0xa10]
sub ecx, 0x1025
je 0x30189f65
sub ecx, 8
jne 0x30189fa9
cmp edx, 0x1033
je 0x30189fa9
cmp dword [ebp - 0x9d4], 0x1002
jne 0x30189fa9
lea eax, [ebp - 0xa50]
push eax
lea eax, [ebp - 0xb64]
push eax
push dword [ebp - 0x1848]
call fcn.30188c91
mov eax, dword [0x301e491c]
mov ebx, dword [0x301e3340]
mov edi, dword [0x301e48ac]
mov edx, dword [ebp - 0x9e4]
mov ecx, 0x1016
cmp edx, ecx
ja 0x3018a841
je 0x3018c750
mov ecx, 0x200
cmp edx, ecx
ja 0x3018a5f0
je 0x3018ad46
cmp edx, 0x40
jbe 0x3018a4b7
cmp edx, 0x89
ja 0x3018a23e
cmp edx, 0x88
jae case.0x3018a85b.4172
cmp edx, 0x7e
jbe 0x3018a5c1
mov ecx, edx
sub ecx, 0x7f
jne 0x3018a484
xor ecx, ecx
inc ecx
cmp dword [ebp - 0x9d4], 0x103c
mov dword [ebp - 0xa08], ecx
je 0x3018a033
cmp dword [ebp - 0x9d4], 0xffffffff
jne 0x3018ab22
cmp dword [ebp - 0xa64], 0
je 0x3018ab22
cmp dword [ebp - 0x9d4], 0xffffffff
jne 0x3018a06e
push dword [ebp - 0xa64]
lea eax, [ebp - 0x9e4]
push dword [ebp - 0xaa0]
push dword [ebp - 0xa80]
push dword [ebp - 0x9d8]
push esi
push eax
call fcn.300e7e44
test eax, eax
jne case.0x3018a85b.4150
jmp 0x3018a237
mov eax, dword [ebp - 0x1830]
add eax, 4
test byte [eax], 8
mov dword [ebp - 0xae4], eax
jne 0x3018ab22
mov eax, dword [ebp - 0xa34]
mov cl, byte [eax + 4]
mov edi, dword [esi + 4]
and cl, 0x20
neg cl
push edi
push 2
mov dword [ebp - 0xa94], edi
sbb ecx, ecx
and ecx, 0xfffffff9
add ecx, 9
mov dword [ebp - 0xa40], ecx
mov al, byte [eax + 4]
shr eax, 3
and eax, 3
mov dword [ebp - 0xae8], eax
call dword [0x3000122c]
test eax, eax
mov dword [ebp - 0xa78], eax
je 0x3018b3d5
mov ebx, dword [ebp - 0x9d8]
push eax
add ebx, 0xfffffff8
call dword [fcn.30001228]
push edi
push eax
mov dword [ebp - 0xa38], eax
push ebx
lea eax, [esi + 8]
push eax
call fcn.30011303
push ebx
lea eax, [ebp - 0xa38]
push eax
call fcn.3004f424
cmp edi, ebx
jae 0x3018a108
xor edi, edi
jmp 0x3018a10a
sub edi, ebx
test edi, edi
je 0x3018ab2d
cmp dword [0x301e6c84], 0
jne 0x3018a122
call fcn.3004c4f5
jmp 0x3018a127
call fcn.301338ba
xor ebx, ebx
cmp eax, 0x3c
mov dword [ebp - 0x9e4], eax
jne 0x3018a1e1
cmp dword [0x301e6c84], ebx
jne 0x3018a147
call fcn.3004c4f5
jmp 0x3018a14c
call fcn.301338ba
mov dword [ebp - 0x9d8], eax
mov eax, dword [ebp - 0xa80]
cmp dword [ebp - 0x9d8], eax
jg 0x3018a1fb
push eax
push dword [ebp - 0x9d8]
push esi
call fcn.3011e943
mov eax, dword [0x301e491c]
test byte [eax + 7], 4
jne 0x3018a1a5
mov eax, dword [0x301e48ac]
cmp word [eax + 0x2e], bx
je 0x3018a1a5
cmp dword [ebp - 0xaa0], ebx
je 0x3018a197
cmp dword [0x301e6c84], ebx
je 0x3018a1a5
push 1
push dword [ebp - 0x9d8]
push esi
call fcn.300cabbe
push edi
push dword [ebp - 0xa38]
push dword [ebp - 0x9d8]
push esi
call fcn.30011303
push dword [ebp - 0x9d8]
lea eax, [ebp - 0xa38]
push eax
call fcn.3004f424
cmp edi, dword [ebp - 0x9d8]
jl 0x3018a104
sub edi, dword [ebp - 0x9d8]
jmp 0x3018a10a
cmp dword [0x301e6c84], ebx
jne 0x3018a1f0
call fcn.3004c4f5
jmp 0x3018a1f5
call fcn.301338aa
mov dword [ebp - 0x9d8], eax
push ebx
push dword [ebp - 0xa78]
mov dword [0x301e3f5c], 1
call fcn.300bff77
push 0x18
push dword [ebp - 0xae4]
call fcn.3001efd5
push 0x18
push dword [ebp - 0xa34]
call fcn.3001efd5
mov dword [ebp - 0xa34], ebx
mov dword [ebp - 0x1830], ebx
xor ebx, ebx
jmp 0x30189e5f
mov ecx, edx
sub ecx, 0x92
je 0x3018acc5
sub ecx, 0xe
je 0x3018ac1d
sub ecx, 0x3d
je case.0x3018a85b.4150
sub ecx, 0xe
je 0x3018a3f4
dec ecx
je 0x3018a29d
dec ecx
jne 0x3018a4a9
test byte [0x301e4948], 8
jne case.0x3018a85b.4150
push dword [ebp - 0x9d8]
call fcn.30040f77
push eax
push esi
push dword [0x301e3f80]
call fcn.301440fe
test eax, eax
jmp 0x3018a39c
test byte [0x301e4948], 8
jne case.0x3018a85b.4150
cmp dword [ebp - 0xa30], 0
je 0x3018a3be
push eax
lea eax, [ebp - 0x3f0]
push eax
xor edi, edi
call fcn.3013a7bd
mov eax, dword [ebp - 0xa30]
mov ecx, dword [eax]
lea edx, [ebp - 0x3f0]
push edx
lea edx, [ebp - 0xa5c]
push edx
push eax
call dword [ecx + 0x38]
test eax, eax
je 0x3018a387
push dword [ebp - 0x9d8]
call fcn.30040f77
push eax
push esi
push dword [0x301e3f80]
push dword [ebp - 0xa5c]
call fcn.30143f83
test eax, eax
je 0x3018a387
push dword [ebp - 0xa30]
call fcn.3013f863
mov eax, dword [0x301e491c]
test eax, eax
je 0x3018a326
mov eax, dword [eax + 0x8c]
jmp 0x3018a328
xor eax, eax
push eax
lea eax, [ebp - 0xaec]
push eax
call fcn.300d308a
test eax, eax
je 0x3018a387
push dword [0x301e491c]
lea eax, [ebp - 0x450]
push eax
call fcn.3013a7bd
mov eax, dword [ebp - 0xa5c]
mov ecx, dword [eax]
push 0
push 1
lea edx, [ebp - 0xaf8]
push edx
lea edx, [ebp - 0x450]
push edx
push dword [ebp - 0xaec]
push eax
call dword [ecx + 0x54]
test eax, eax
je 0x3018a387
mov eax, dword [0x301e491c]
mov ecx, dword [ebp - 0xaf8]
xor edi, edi
mov dword [eax + 0xb0], ecx
inc edi
mov eax, dword [ebp - 0xa30]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
and dword [ebp - 0xa30], 0
test edi, edi
jne case.0x3018a85b.4150
mov dword [0x301e3f5c], 1
push 0x2020
push esi
call fcn.3013af82
xor ebx, ebx
jmp 0x30189e3f
push dword [ebp - 0x9d8]
call fcn.30040f77
push eax
push esi
push dword [0x301e3f80]
push 0
call fcn.30143f83
test eax, eax
je 0x3018a3a2
lea eax, [ebp - 0xa64]
push eax
lea eax, [ebp - 0xb1c]
push eax
call fcn.30140518
jmp case.0x3018a85b.4150
test byte [0x301e4948], 8
jne case.0x3018a85b.4150
lea eax, [ebp - 0x390]
push eax
call dword [sym.imp.MSO.DLL_Ordinal_741]
mov eax, dword [0x301e4b08]
mov dword [ebp - 0x388], eax
mov eax, dword [0x301e48a8]
mov dword [ebp - 0x38c], eax
lea eax, [ebp - 0x390]
push eax
xor edi, edi
lea eax, [ebp - 0xa30]
inc edi
or dword [ebp - 0x2e8], edi
push eax
mov dword [0x301e3f10], 0x300357b0
mov dword [ebp - 0x390], 0x301e3f10
call dword [sym.imp.MSO.DLL_Ordinal_388]
test eax, eax
je 0x3018a479
push dword [ebp - 0x9d8]
call fcn.30040f77
push eax
push esi
push dword [ebp - 0xa30]
call fcn.30142a9b
test eax, eax
jne case.0x3018a85b.4150
mov dword [0x301e3f5c], edi
jmp 0x3018a3ac
sub ecx, 4
je 0x3018ab10
dec ecx
jne case.0x3018a85b.4131
mov cx, word [esi]
shl cx, 9
xor cx, word [eax + 6]
and cx, 0x200
jmp 0x3018cc7a
sub ecx, 0x44
je case.0x3018a85b.4172
jmp case.0x3018a85b.4131
je 0x3018a9d5
cmp edx, 0x17
ja 0x3018a530
cmp edx, 0x14
jae case.0x3018a85b.4172
cmp edx, 5
ja 0x3018a504
je 0x3018a9a7
test edx, edx
je 0x3018ad46
cmp edx, 1
je 0x3018a99c
cmp edx, 2
je 0x3018a994
jbe case.0x3018a85b.4131
cmp edx, 4
jbe 0x3018ad93
jmp case.0x3018a85b.4131
mov eax, edx
sub eax, 9
je 0x3018b1ba
sub eax, 9
je case.0x3018a85b.4150
dec eax
jne case.0x3018a85b.4131
movzx eax, word [esi]
mov ecx, dword [0x301e4704]
mov dword [ecx + 8], eax
jmp case.0x3018a85b.4150
cmp edx, 0x31
ja 0x3018a58a
je 0x3018b24d
cmp edx, 0x19
je case.0x3018a85b.4172
cmp edx, 0x25
jbe case.0x3018a85b.4131
cmp edx, 0x29
jbe 0x3018a9b9
cmp edx, 0x30
jne case.0x3018a85b.4131
cmp dword [edi], 0
jne case.0x3018a85b.4150
mov si, word [esi]
push 0x1010
movsx eax, si
push eax
push 4
push 0x10
call fcn.3000f4ab
mov ecx, dword [0x301e48ac]
mov dword [ecx], eax
jmp case.0x3018a85b.4150
mov ecx, edx
sub ecx, 0x32
je case.0x3018a85b.4150
dec ecx
je 0x3018a9c7
sub ecx, 0xa
jne case.0x3018a85b.4131
lea eax, [ebp - 0xb08]
push eax
push esi
call fcn.300d7560
mov dword [0x301e7838], 1
jmp case.0x3018a85b.4150
je 0x3018ad8d
cmp edx, 0x42
je 0x3018aa40
cmp edx, 0x4d
je case.0x3018a85b.4172
cmp edx, 0x5d
je 0x3018a9f4
cmp edx, 0x63
je case.0x3018a85b.4150
jmp case.0x3018a85b.4131
mov ecx, 0x85a
cmp edx, ecx
ja 0x3018a752
je 0x3018b6b9
add ecx, 0xffffffaf
cmp edx, ecx
ja 0x3018a6ad
je case.0x3018a85b.4150
mov ecx, 0x209
cmp edx, ecx
ja 0x3018a67f
je 0x3018b1ba
cmp edx, 0x201
je 0x3018ad8d
mov eax, 0x202
cmp edx, eax
je 0x3018ad7c
jbe case.0x3018a85b.4131
cmp edx, 0x204
jbe 0x3018ad93
cmp edx, 0x205
jne case.0x3018a85b.4131
lea edi, [esi + 6]
movzx eax, word [edi]
cmp eax, 0x2a
mov dword [ebp - 0xa70], eax
je 0x3018a9af
call fcn.3001a5b7
push edi
call fcn.3001295f
jmp 0x3018ad93
mov ecx, edx
sub ecx, 0x231
je 0x3018b24a
sub ecx, 0x6f
je 0x3018b1f0
sub ecx, 0xc
jne case.0x3018a85b.4131
movzx ecx, word [esi]
mov dword [eax + 0xf4], ecx
jmp case.0x3018a85b.4150
mov eax, edx
sub eax, 0x850
je 0x3018b5f9
dec eax
dec eax
je 0x3018b594
dec eax
je 0x3018b558
dec eax
je 0x3018b4c0
dec eax
je 0x3018b342
dec eax
je 0x3018b301
dec eax
jne case.0x3018a85b.4131
cmp dword [ebp - 0x9d4], 0x101d
jne 0x3018ea01
mov eax, dword [ebp - 0x17fc]
add eax, 0x30
mov dword [ebp - 0x1810], eax
mov cx, word [esi + 0xe]
mov word [eax], cx
movsx eax, word [esi + 4]
mov ecx, dword [ebp - 0x1810]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1810]
fld qword [esi + 6]
fstp qword [eax + 8]
mov ecx, dword [ebp - 0x1810]
mov eax, dword [ecx + 4]
cmp eax, 0xffffffff
jl 0x3018ea01
cmp eax, 9
jg 0x3018ea01
cmp eax, 0xffffffff
jne case.0x3018a85b.4150
cmp word [ecx + 0xe], 0xffff
jmp 0x3018d668
mov eax, 0x1007
cmp edx, eax
ja 0x3018a7e7
je 0x3018bdc7
mov eax, edx
sub eax, 0x86a
je 0x3018bda8
dec eax
je 0x3018bc49
sub eax, 0x796
je 0x3018bc40
dec eax
je 0x3018bb50
dec eax
je 0x3018b95f
dec eax
je 0x3018b8c2
dec eax
dec eax
jne case.0x3018a85b.4131
cmp dword [ebp - 0x9d4], 0x1002
jl 0x3018dc06
cmp dword [ebp - 0x9d4], 0x1003
jle 0x3018b7cb
cmp dword [ebp - 0x9d4], 0x1014
jne 0x3018dc06
mov eax, dword [ebp - 0x183c]
add eax, 0x4dc
mov dword [ebp - 0x1818], eax
jmp 0x3018b8b1
mov eax, edx
sub eax, 0x1009
je 0x3018c611
dec eax
je 0x3018c4ad
dec eax
je 0x3018c48c
dec eax
je 0x3018c3be
dec eax
je 0x3018c33e
sub eax, 7
je 0x3018c145
dec eax
jne case.0x3018a85b.4131
cmp dword [ebp - 0x9d4], 0x1014
je 0x3018c109
cmp dword [ebp - 0x9d4], 0x1063
je 0x3018c115
jmp 0x3018ea01
mov eax, 0x1100
cmp edx, eax
ja 0x3018a862
je case.0x3018a85b.4150
lea eax, [edx - 0x1017]
cmp eax, 0x51
ja case.0x3018a85b.4131
jmp dword [eax*4 + 0x301901bf]
cmp edx, 0x4081
je case.0x3018a85b.4188
cmp edx, 0xa55a
je case.0x3018a85b.4178
cmp edx, 0x876
jl 0x3018a8b7
cmp edx, 0x8ff
jg 0x3018a8b7
lea eax, [ebp - 0x1850]
push eax
push dword [ebp - 0x9d8]
push edx
push esi
call fcn.301890d1
test eax, eax
je 0x3018a8b1
mov dword [ebp - 0xa6c], 1
jmp 0x30189e29
mov edx, dword [ebp - 0x9e4]
cmp edx, 0x875
jle case.0x3018a85b.4172
mov eax, dword [0x301e48a8]
or byte [eax + 0x2a1], 0x20
jmp case.0x3018a85b.4172
xor edi, edi
inc edi
cmp dword [0x301e6c84], ebx
mov dword [0x301e3f5c], edi
jne 0x3018f005
call fcn.300413ff
add eax, esi
push eax
call fcn.30046f17
mov dword [ebp - 0xa6c], edi
jmp 0x30189e1d
cmp edx, 0x1034
jne 0x3018a90d
dec dword [ebp - 0x9e0]
jmp 0x30189e1d
cmp edx, 0x1033
jne 0x30189e1d
inc dword [ebp - 0x9e0]
jmp 0x30189e1d
cmp edx, 0x853
je 0x3018a94c
cmp edx, 0x855
je 0x3018a94c
cmp edx, 0x852
je 0x3018a944
cmp edx, 0x854
jne 0x3018a952
inc dword [ebp - 0xa20]
jmp 0x3018a952
dec dword [ebp - 0xa20]
cmp dword [ebp - 0xa44], 0
je 0x30189e1d
lea eax, [ebp - 0x1850]
push eax
push dword [ebp - 0x9d8]
push dword [ebp - 0x9e4]
push dword [ebp - 0xa48]
call fcn.301890d1
test eax, eax
jne 0x30189e1d
mov dword [0x301e3f5c], 1
jmp 0x30189e1d
lea edi, [esi + 7]
jmp 0x3018ad7f
fld qword [ebp + 0x4c]
fstp qword [esi + 7]
jmp 0x3018ad93
lea edi, [esi + 7]
jmp 0x3018a65d
fld qword [ebp + 0x44]
fstp qword [edi]
jmp 0x3018ad93
push 0
push esi
push edx
call fcn.300e7a90
jmp case.0x3018a85b.4150
movsx ecx, word [esi]
mov dword [eax + 0xf8], ecx
jmp case.0x3018a85b.4150
movzx ecx, word [esi]
mov eax, dword [0x301e48a8]
shl ecx, 0xa
add eax, 0x29c
xor ecx, dword [eax]
and ecx, 0x400
xor dword [eax], ecx
jmp case.0x3018a85b.4150
test byte [0x301e4948], 8
jne case.0x3018a85b.4150
or byte [eax + 6], 0x10
push 0
lea eax, [ebp - 0xb34]
push eax
push 0
push 0x2020
push dword [ebp - 0x9d8]
push esi
call fcn.3014b4b9
test eax, eax
jne 0x3018aa2f
mov dword [0x301e3f5c], 1
mov eax, dword [ebp - 0xb28]
mov dword [ebp - 0xa64], eax
jmp case.0x3018a85b.4150
movzx eax, word [esi]
test eax, eax
mov dword [0x301e8b20], eax
jne 0x3018aa58
movzx eax, word [0x301ddb40]
mov dword [0x301e8b20], eax
cmp ebx, 4
jg 0x3018aa91
cmp eax, 0x4e4
jne 0x3018aa6c
call dword [fcn.30001238]
jmp 0x3018aa86
cmp ebx, 4
jg 0x3018aa91
cmp eax, 0x2710
jne 0x3018aa91
push 1
call dword [fcn.30001238]
push eax
call fcn.300fedc0
mov ebx, dword [0x301e3340]
mov dword [0x301e8b20], eax
cmp eax, 0x8001
jne 0x3018aaa6
call dword [fcn.30001238]
mov ebx, dword [0x301e3340]
jmp 0x3018aabe
cmp eax, 0x8000
jne 0x3018aab4
mov eax, 0x2710
jmp 0x3018aabe
cmp eax, 0x20
jae 0x3018aac3
add eax, 0x2710
mov dword [0x301e8b20], eax
cmp byte [0x301e4d00], 0
je case.0x3018a85b.4150
cmp ebx, 2
jne 0x3018aae6
movzx eax, word [0x301ddb40]
mov dword [0x301e8b20], eax
jmp case.0x3018a85b.4150
mov ecx, dword [ebp - 0xa9c]
mov esi, dword [0x301e6634]
push 1
push eax
mov dword [0x301e6634], ecx
call fcn.300fef1b
mov dword [0x301e8b20], eax
mov dword [0x301e6634], esi
jmp case.0x3018a85b.4150
xor ecx, ecx
mov ch, byte [esi]
xor cx, word [eax + 6]
and cx, 0x100
jmp 0x3018cc7a
mov dword [0x301e3f5c], ecx
jmp case.0x3018a85b.4150
push dword [ebp - 0xa78]
call dword [fcn.30001224]
xor esi, esi
cmp dword [0x301e3340], 5
jg 0x3018ab4a
mov dword [ebp - 0xa08], esi
xor ebx, ebx
inc ebx
push ebx
push dword [ebp - 0xa08]
lea eax, [ebp - 0xa40]
push esi
push ebx
push dword [ebp - 0xae8]
push dword [ebp - 0xa94]
push eax
push dword [ebp - 0xa78]
call fcn.300c0845
push esi
push dword [ebp - 0xa40]
mov edi, eax
push edi
call fcn.3013d064
push dword [ebp - 0xa40]
mov dword [ebp - 0xa94], eax
push edi
call fcn.300bff77
mov edi, dword [ebp - 0xa94]
cmp edi, esi
je 0x3018abe3
push esi
push edi
push dword [ebp - 0x1830]
call fcn.301acb90
test eax, eax
je 0x3018abe3
mov eax, dword [ebp - 0x1830]
mov ecx, dword [ebp - 0xa34]
mov dl, byte [ecx + 4]
xor dl, byte [eax + 4]
push 0x18
and dl, 7
xor byte [eax + 4], dl
fld qword [ecx + 6]
mov eax, dword [ebp - 0x1830]
fstp qword [eax + 5]
mov eax, dword [ebp - 0x1818]
and byte [eax + 7], 0xfe
push ecx
jmp 0x3018abf1
push 0x18
push dword [ebp - 0xa34]
mov dword [0x301e3f5c], ebx
mov eax, dword [0x301e4920]
or byte [eax + 0x269], 1
call fcn.3001efd5
cmp edi, esi
mov dword [ebp - 0xa34], esi
je 0x3018ac12
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov dword [ebp - 0x1830], esi
jmp case.0x3018a85b.4150
cmp dword [0x301e3348], 4
je case.0x3018a85b.4150
cmp ebx, 5
jl case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1002
jne 0x3018ac8b
movsx eax, word [esi]
mov ecx, dword [0x301e4438]
mov dword [ecx + 0x20], eax
movsx eax, word [esi + 2]
mov ecx, dword [0x301e4438]
mov dword [ecx + 0x24], eax
mov eax, dword [0x301e4438]
mov ecx, dword [eax + 0x20]
mov edx, dword [0x301e4920]
mov dword [edx + 0x258], ecx
mov eax, dword [eax + 0x24]
mov ecx, dword [0x301e4920]
mov dword [ecx + 0x25c], eax
mov eax, dword [0x301e4438]
add eax, 0x20
push eax
call fcn.3002e0f3
jmp 0x3018ac97
cmp dword [ebp + 0x78], 5
je 0x3018ac97
push esi
call fcn.300e75bf
mov eax, dword [0x301e4920]
push 0
push 0
add eax, 0x138
push eax
call fcn.300292f8
mov eax, dword [0x301e4920]
lea esi, [eax + 0x150]
lea edi, [eax + 0x248]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp case.0x3018a85b.4150
call fcn.3011e9e2
push dword [0x301e4634]
call fcn.300120a2
cmp dword [0x301e3340], 3
mov edi, eax
jne 0x3018acf8
xor ecx, ecx
cmp word [esi], cx
jle 0x3018acf8
lea eax, [esi + 5]
mov byte [eax], 0
movsx edx, word [esi]
inc ecx
add eax, 4
cmp ecx, edx
jl 0x3018acea
push 0
push esi
push edi
call fcn.300e77be
call fcn.30055e8d
mov eax, dword [0x301dec14]
push dword [eax + 0x40]
call fcn.30056487
push edi
call fcn.300120c4
mov eax, dword [0x301e3348]
cmp eax, 1
je 0x3018ad28
cmp eax, 4
jne 0x3018ad2e
push edi
call fcn.3004c93c
cmp dword [0x301e3348], 2
jne 0x3018efee
mov dword [0x301e5ea4], edi
jmp 0x3018eff4
push esi
call fcn.3011ea8a
cmp dword [0x301e3340], 5
mov eax, dword [esi + 4]
jg 0x3018ad5d
cdq
sub eax, edx
sar eax, 1
cmp dword [esi], 0
mov dword [ebp - 0xa2c], eax
jne 0x3018ea01
cmp word [esi + 8], 0
je case.0x3018a85b.4150
jmp 0x3018ea01
lea edi, [esi + 6]
movsx eax, word [edi]
push eax
call fcn.300129c4
jmp 0x3018a674
fld qword [ebp + 0x4c]
fstp qword [esi + 6]
movzx eax, word [esi]
movzx ebx, word [esi + 2]
xor ecx, ecx
cmp dword [0x301e3340], 5
mov dword [ebp - 0xa10], eax
jg 0x3018add2
cmp eax, dword [ebp - 0xa2c]
jl 0x3018adc8
sub eax, dword [ebp - 0xa2c]
inc ecx
mov dword [ebp - 0xa10], eax
mov dword [ebp - 0xa14], ecx
jmp 0x3018add3
mov dword [ebp - 0xa14], 2
inc ecx
cmp dword [ebp - 0xa14], 0
jl 0x3018ab22
cmp dword [ebp - 0xa14], 4
jge 0x3018ab22
cmp eax, 0x7d00
jge 0x3018ab22
cmp eax, 0xf9f
jge 0x3018ab22
test eax, eax
jl 0x3018ab22
test ebx, ebx
jl 0x3018ab22
mov eax, dword [0x301e4920]
add eax, 0x438
cmp ebx, dword [eax]
jl 0x3018aebf
mov dword [0x301e3f5c], ecx
mov eax, dword [eax]
jmp 0x3018aea6
cmp eax, 0x100
jge 0x3018aeac
mov edi, dword [ebp - 0x1820]
lea eax, [ebp - 0x1820]
push eax
call fcn.3001f498
test edi, edi
mov eax, dword [ebp - 0x1820]
jne 0x3018ae60
mov ecx, dword [0x301e4920]
mov dword [ecx + 0x434], eax
jmp 0x3018ae62
mov dword [edi], eax
mov eax, dword [0x301e4920]
inc dword [eax + 0x438]
mov eax, dword [ebp - 0x1820]
add eax, 0x128
mov cx, word [eax]
and cl, 0xf7
or ecx, 4
mov word [eax], cx
mov eax, dword [ebp - 0x1820]
add eax, 0x140
mov cx, word [eax]
and cl, 0xf7
or ecx, 4
mov word [eax], cx
mov eax, dword [0x301e4920]
mov eax, dword [eax + 0x438]
cmp ebx, eax
jge 0x3018ae2f
jmp 0x3018aecb
and dword [ebp - 0x1820], 0
mov dword [0x301e3f5c], 1
jmp 0x3018aecb
push ebx
call fcn.3015804e
mov dword [ebp - 0x1820], eax
mov edi, dword [ebp - 0x1820]
test edi, edi
je case.0x3018a85b.4150
mov eax, dword [ebp - 0xa14]
mov ecx, dword [ebp - 0xa10]
imul eax, eax, 0x18
add eax, edi
cmp ecx, dword [eax + 0x13c]
jge 0x3018ea01
cmp dword [ebp - 0xa14], 2
jne 0x3018af07
test ebx, ebx
jg case.0x3018a85b.4150
xor edx, edx
inc edx
cmp dword [ebp - 0x9e4], edx
mov ecx, 0x201
je 0x3018afd9
cmp dword [ebp - 0x9e4], ecx
je 0x3018afd6
mov al, byte [eax + 0x128]
and al, 3
cmp al, dl
jne 0x3018afd6
cmp dword [0x301e3340], 2
je 0x3018afcb
mov eax, dword [ebp - 0x1820]
mov eax, dword [eax + 0x1c]
and eax, 7
cmp al, 3
je case.0x3018a85b.4150
mov eax, dword [0x301e4920]
mov eax, dword [eax + 0x40c]
test byte [eax + 1], 0x40
mov eax, dword [ebp - 0xa14]
je 0x3018af8d
cmp eax, edx
jne 0x3018af79
lea eax, [ebx + ebx + 1]
jmp 0x3018af88
sub eax, 3
neg eax
sbb eax, eax
lea ecx, [ebx + ebx + 2]
not eax
and eax, ecx
add esi, 6
jmp 0x3018af9a
add esi, 6
dec eax
inc ebx
neg eax
sbb eax, eax
not eax
and eax, ebx
push 0
push 8
push esi
push 2
push 0
push eax
mov eax, dword [ebp - 0xa10]
inc eax
push eax
call fcn.30017d76
mov eax, dword [ebp - 0xa14]
add eax, 0xd
imul eax, eax, 0x18
push esi
push dword [edi + eax]
call fcn.3017b79c
jmp case.0x3018a85b.4150
mov eax, dword [ebp - 0xa14]
add esi, 7
jmp 0x3018af90
xor edx, edx
inc edx
mov eax, dword [ebp - 0x9e4]
cmp eax, 0x7e
jg 0x3018b097
je 0x3018b08b
cmp eax, edx
je 0x3018b040
jle 0x3018b0b2
cmp eax, 3
jle 0x3018b046
cmp eax, 4
je 0x3018b0c2
cmp eax, 5
jne 0x3018b0b2
cmp dword [ebp - 0xa70], 0
jl 0x3018b02d
cmp dword [ebp - 0xa70], edx
jg 0x3018b02d
push dword [ebp - 0xa70]
call fcn.3000cda4
jmp 0x3018b038
push dword [ebp - 0xa70]
call fcn.30159ed9
test eax, eax
jne 0x3018b0c2
mov byte [esi + 7], 0
jmp 0x3018b0c2
lea edi, [esi + 7]
push edi
call fcn.3001a5f7
mov eax, 0x100
push eax
push eax
lea eax, [ebp - 0x298]
push eax
call fcn.3002b917
lea ecx, [ebp - 0x298]
sub eax, ecx
sar eax, 1
mov word [ebp - 0x298], ax
call fcn.30040f77
sub eax, 7
push eax
push edi
lea eax, [ebp - 0x298]
push eax
call fcn.300c8ff1
jmp 0x3018b0c2
lea edi, [esi + 6]
push dword [edi]
call fcn.3001af3a
jmp 0x3018b0fb
cmp eax, ecx
je 0x3018b0bd
jle 0x3018b0b2
cmp eax, 0x203
jle 0x3018b0f2
cmp eax, 0x204
je 0x3018b0c2
cmp eax, 0x205
je 0x3018b0bd
test ah, 2
mov dword [0x301e3f5c], edx
je 0x3018b040
and word [esi + 6], 0
test byte [ebp - 0x9e3], 2
je 0x3018b15a
push 0xff
lea eax, [ebp - 0x296]
push eax
movsx eax, word [esi + 6]
push eax
add esi, 8
push esi
call fcn.300c8fca
mov word [ebp - 0x298], ax
jmp 0x3018b16f
lea edi, [esi + 6]
push edi
call fcn.3001a5f7
mov eax, 0x100
push eax
push eax
lea eax, [ebp - 0x298]
push eax
call fcn.3002b917
lea ecx, [ebp - 0x298]
sub eax, ecx
sar eax, 1
mov word [edi], ax
cmp byte [0x301e4d12], 0
movsx eax, ax
je 0x3018b142
lea ecx, [eax + eax]
push ecx
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [ebp - 0x296]
push eax
call dword [sym.imp.MSO.DLL_Ordinal_836]
mov word [edi], ax
jmp 0x3018b0c2
push eax
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [ebp - 0x296]
push eax
call dword [sym.imp.MSO.DLL_Ordinal_836]
jmp 0x3018b0c2
push 0x100
lea eax, [ebp - 0x298]
push eax
add esi, 7
push esi
call fcn.300c8f62
movzx ecx, word [ebp - 0x298]
xor eax, eax
mov word [ebp + ecx*2 - 0x296], ax
movzx ecx, word [ebp - 0x298]
push eax
lea ecx, [ecx + ecx + 4]
push ecx
lea ecx, [ebp - 0x298]
push ecx
push 3
push eax
mov eax, dword [ebp - 0xa14]
dec eax
inc ebx
neg eax
sbb eax, eax
not eax
and eax, ebx
push eax
mov eax, dword [ebp - 0xa10]
inc eax
push eax
call fcn.30017d76
jmp case.0x3018a85b.4150
cmp byte [0x301e4d00], 0
je case.0x3018a85b.4150
mov eax, dword [ebp - 0x9d8]
add eax, 0xfffffffc
je 0x3018b1e1
movsx eax, word [esi + 4]
mov dword [ebp - 0xa9c], eax
jmp case.0x3018a85b.4150
mov dword [ebp - 0xa9c], 0x331
jmp case.0x3018a85b.4150
cmp dword [0x301e3348], 4
je case.0x3018a85b.4150
movsx eax, word [esi]
mov ecx, dword [0x301e4438]
mov dword [ecx + 0x20], eax
mov ecx, dword [0x301e4438]
mov dword [ebp - 0xaac], eax
movsx eax, word [esi + 2]
mov dword [ecx + 0x24], eax
mov edx, dword [0x301e4920]
mov dword [ebp - 0xa7c], eax
mov eax, dword [0x301e4438]
mov ecx, dword [eax + 0x20]
mov dword [edx + 0x258], ecx
mov eax, dword [eax + 0x24]
mov ecx, dword [0x301e4920]
mov dword [ecx + 0x25c], eax
jmp case.0x3018a85b.4150
push 4
pop ebx
cmp dword [ebp - 0x9d4], 0x85a
jne 0x3018b26b
mov eax, dword [ebp - 0xb4c]
cmp eax, dword [ebp - 0xb50]
jge case.0x3018a85b.4150
cmp dword [edi], 0
jne 0x3018b295
xor eax, eax
push 0x1010
inc eax
push eax
push 4
push 0x10
mov dword [0x301e3f5c], eax
call fcn.3000f4ab
mov ecx, dword [0x301e48ac]
mov dword [ecx], eax
mov edi, dword [0x301e48ac]
mov eax, dword [edi]
test eax, eax
je 0x3018b29f
movzx eax, word [eax + 2]
push eax
push ebx
push esi
lea eax, [ebp - 0x19b4]
push eax
call fcn.300e7ca2
lea eax, [ebp - 0x19b4]
push eax
call fcn.30191bc2
cmp dword [ebp - 0x9d4], 0x85a
jne case.0x3018a85b.4150
mov ecx, dword [ebp - 0xb4c]
mov edx, dword [ebp - 0xb48]
imul ecx, ecx, 0x64
mov esi, dword [ebp - 0xb54]
mov dword [ecx + edx], esi
mov ecx, dword [ebp - 0xb4c]
mov edx, dword [ebp - 0xb48]
imul ecx, ecx, 0x64
mov word [ecx + edx + 6], ax
inc dword [ebp - 0xb4c]
jmp case.0x3018a85b.4150
movsx eax, word [esi + 4]
mov ecx, dword [ebp - 0x1800]
mov dword [ecx + 0x3c], eax
mov cx, word [esi + 8]
mov eax, dword [ebp - 0x1800]
shl cx, 0xb
xor cx, word [eax]
and cx, 0x800
xor word [eax], cx
mov eax, dword [ebp - 0x1800]
test byte [eax + 1], 8
jne case.0x3018a85b.4150
mov ecx, dword [eax + 4]
mov dword [eax + 8], ecx
jmp case.0x3018a85b.4150
mov eax, dword [ebp - 0x9d4]
sub eax, 0x857
je 0x3018b38f
sub eax, 0x13
jne 0x3018b3bc
cmp word [ebp - 0xb5e], 0xa
jae 0x3018b3bc
mov eax, dword [ebp - 0x183c]
lea ecx, [eax + 0x210]
cmp dword [ebp - 0x1848], ecx
je 0x3018b385
add eax, 0x370
cmp dword [ebp - 0x1848], eax
mov eax, dword [ebp - 0xa50]
jne 0x3018b38b
mov eax, dword [ebp - 0x1848]
push 0xa
jmp 0x3018b3af
push dword [ebp - 0x1810]
call fcn.3015d321
cmp word [ebp - 0xb5e], 9
jae 0x3018b3bc
mov eax, dword [ebp - 0x1810]
push 9
add eax, 0x14
push eax
lea eax, [ebp - 0x1850]
push eax
call fcn.30187899
lea eax, [ebp - 0x1850]
push eax
call fcn.30187005
cmp dword [ebp - 0x9dc], 0
jg 0x3018b57f
call fcn.30128401
mov eax, dword [ebp - 0xab0]
push 1
mov dword [0x301e4ae8], eax
call fcn.30019b7a
test eax, eax
je 0x3018b3f5
call fcn.30128401
cmp dword [ebp - 0xa3c], 0
je 0x3018b409
push dword [ebp - 0xa3c]
call fcn.3004df8b
mov eax, dword [0x301e3348]
cmp eax, 1
je 0x3018b418
cmp eax, 4
jne 0x3018b423
mov eax, dword [ebp - 0xae0]
mov dword [0x301df1a8], eax
call fcn.3000d9a6
lea eax, [ebp - 0x1850]
push eax
call fcn.30186f2a
mov eax, dword [0x301e4920]
mov ecx, dword [ebp - 0xa60]
mov dword [eax + 0x444], ecx
mov eax, dword [ebp - 0xb64]
test eax, eax
mov dword [ebp - 0xa4c], eax
je 0x3018b471
mov eax, dword [ebp - 0xa4c]
mov esi, dword [eax + 0x110]
push eax
call fcn.3015b138
test esi, esi
mov dword [ebp - 0xa4c], esi
jne 0x3018b455
cmp dword [0x301e3340], 5
jge 0x3018b490
mov eax, dword [ebp - 0xac0]
mov dword [0x301e3f98], eax
mov eax, dword [ebp - 0xab4]
mov dword [0x301e3f94], eax
mov eax, dword [0x301e5ea4]
test eax, eax
je 0x3018b4a6
push eax
call fcn.30053f15
and dword [0x301e5ea4], 0
xor eax, eax
lea esp, [ebp - 0x19c0]
mov ecx, dword [ebp + 0x6c]
call fcn.30056b36
pop edi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8
movsx edi, word [esi + 4]
movsx eax, word [esi + 6]
movsx ecx, word [esi + 8]
xor edx, edx
cmp dword [ebp - 0x9d8], 0xa
jbe 0x3018b4db
movsx edx, word [esi + 0xa]
lea ebx, [ebp - 0x1850]
push ebx
push edx
push ecx
push eax
push edi
call fcn.30187063
cmp eax, 0xffffffff
je 0x3018b531
test eax, eax
jne 0x3018b5a7
cmp dword [ebp - 0x9dc], 0x14
jge 0x3018b3d5
mov eax, dword [ebp - 0x9d4]
mov ecx, dword [ebp - 0x9dc]
mov dword [ebp + ecx*4 - 0x18a0], eax
movzx eax, word [edi*2 + 0x30190364]
inc dword [ebp - 0x9dc]
mov dword [ebp - 0x9d4], eax
jmp case.0x3018a85b.4150
xor esi, esi
push 0
inc esi
push 0x30303030
mov dword [0x301e3f5c], esi
call dword [sym.imp.MSO.DLL_Ordinal_6848]
mov dword [ebp - 0xa20], esi
mov dword [ebp - 0xa44], esi
jmp case.0x3018a85b.4150
cmp word [ebp - 0xb5e], 8
jne case.0x3018a85b.4150
cmp dword [ebp - 0x9dc], 0
jle 0x3018b3d5
lea eax, [ebp - 0x1850]
push eax
call fcn.30187005
dec dword [ebp - 0x9dc]
mov eax, dword [ebp - 0x9dc]
mov eax, dword [ebp + eax*4 - 0x18a0]
jmp 0x3018b526
cmp word [ebp - 0xb5e], 8
jne case.0x3018a85b.4150
jmp 0x3018b4c0
xor edi, edi
inc edi
cmp eax, edi
je 0x3018b5e7
cmp eax, 2
jne 0x3018b5e7
lea eax, [ebp - 0x1850]
push eax
push dword [ebp - 0x9d8]
push dword [ebp - 0x9e4]
push esi
call fcn.301890d1
test eax, eax
jne 0x3018b5d6
mov dword [0x301e3f5c], edi
mov dword [ebp - 0xa20], edi
mov dword [ebp - 0xa44], edi
jmp case.0x3018a85b.4150
and dword [ebp - 0xa44], 0
mov dword [ebp - 0xa20], edi
jmp case.0x3018a85b.4150
xor eax, eax
cmp dword [ebp - 0xb58], eax
jg case.0x3018a85b.4150
cmp dword [ebp - 0xab8], eax
je 0x3018b622
cmp dword [ebp - 0xb70], eax
jge 0x3018b622
mov word [ebp - 0xb5e], 8
jmp 0x3018b62e
movzx ax, byte [esi + 5]
mov word [ebp - 0xb5e], ax
movzx ax, byte [esi + 4]
mov word [ebp - 0xb60], ax
mov di, word [esi + 6]
movsx eax, di
lea ecx, [eax*4 + 8]
cmp dword [ebp - 0x9d8], ecx
jne 0x3018c386
mov dword [ebp - 0xb58], eax
push 0x1010
shl eax, 3
push eax
call fcn.300563f8
dec edi
test di, di
mov dword [ebp - 0xb5c], eax
jl case.0x3018a85b.4150
movsx eax, di
mov ecx, eax
shl ecx, 3
inc edi
lea eax, [esi + eax*4 + 0xa]
movsx esi, di
movsx edx, word [eax - 2]
mov edi, dword [ebp - 0xb5c]
mov dword [edi + ecx], edx
mov dx, word [eax]
mov edi, dword [ebp - 0xb5c]
sub eax, 4
sub ecx, 8
dec esi
mov dword [ebp - 0xa18], edx
movsx edx, dx
mov dword [edi + ecx + 0xc], edx
jne 0x3018b688
jmp case.0x3018a85b.4150
movzx eax, byte [esi + 4]
mov dword [ebp - 0xb54], eax
mov al, byte [esi + 4]
movzx cx, al
cmp cx, word [ebp - 0xb5e]
ja 0x3018b6d9
cmp al, 0xa
ja 0x3018b6dd
jmp 0x3018b747
cmp al, 0xa
jbe 0x3018b6fa
lea eax, [ebp - 0x1850]
push eax
push dword [ebp - 0x9d8]
push 0x85a
push esi
call fcn.301890d1
jmp case.0x3018a85b.4150
cmp dword [ebp - 0xb48], 0
push 1
jne 0x3018b71d
movzx eax, word [esi + 6]
imul eax, eax, 0x64
push 1
push eax
lea eax, [ebp - 0xb48]
push eax
call fcn.30055888
jmp 0x3018b73e
movzx ecx, word [esi + 6]
mov eax, dword [ebp - 0xb50]
add ecx, eax
imul eax, eax, 0x64
imul ecx, ecx, 0x64
push ecx
push eax
lea eax, [ebp - 0xb48]
push eax
call dword [sym.imp.MSO.DLL_Ordinal_573]
test eax, eax
jne 0x3018b753
call fcn.30128401
and dword [ebp - 0xb54], 0
jmp case.0x3018a85b.4150
movzx eax, word [esi + 6]
imul eax, eax, 0x64
push eax
mov eax, dword [ebp - 0xb50]
imul eax, eax, 0x64
add eax, dword [ebp - 0xb48]
push eax
push 0
call fcn.30056452
movzx ecx, word [esi + 6]
mov eax, dword [ebp - 0xb50]
add eax, ecx
mov ecx, dword [ebp - 0xb48]
mov dword [ebp - 0xb50], eax
imul eax, eax, 0x64
lea eax, [eax + ecx - 0x64]
movzx ecx, word [esi + 6]
dec ecx
js case.0x3018a85b.4150
lea esi, [esi + ecx*4 + 0xa]
inc ecx
mov edx, dword [ebp - 0xb54]
or word [eax + 6], 0xffff
mov dword [eax], edx
mov dx, word [esi - 2]
mov word [eax + 8], dx
mov dx, word [esi]
mov word [eax + 4], dx
sub esi, 4
sub eax, 0x64
dec ecx
jne 0x3018b7a1
jmp case.0x3018a85b.4150
cmp dword [0x301e3340], 5
mov bx, word [esi]
mov di, word [esi + 2]
mov dword [ebp - 0xa18], ebx
jl 0x3018b7f5
cmp dword [ebp - 0x9d8], 4
jbe 0x3018b7f5
mov ax, word [esi + 4]
mov word [ebp - 0xadc], ax
push 0x108
call fcn.300131a4
push eax
mov dword [ebp - 0x1818], eax
call fcn.300113d2
mov eax, dword [ebp - 0x1818]
or byte [eax + 7], 8
mov eax, dword [ebp - 0x1818]
or byte [eax + 9], 2
mov eax, dword [ebp - 0x1818]
mov ecx, dword [ebp - 0xa60]
mov byte [eax], 0x4d
mov eax, dword [ebp - 0x1818]
or byte [eax + 3], 1
mov eax, dword [ebp - 0x1818]
mov dword [eax + 0x104], ecx
mov ecx, dword [ebp - 0x1818]
movsx eax, di
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp - 0x1818]
movsx eax, bx
mov dword [ecx + 0x10], eax
cmp dword [0x301e3340], 5
jl 0x3018b89b
cmp dword [ebp - 0x9d8], 6
movsx eax, word [ebp - 0xadc]
mov ecx, dword [ebp - 0x1818]
mov dword [ecx + 0x20], eax
jbe 0x3018b8a5
mov eax, dword [ebp - 0x1818]
mov cx, word [esi + 6]
mov dx, word [eax + 6]
shl cx, 0xf
and dh, 0x7f
or ecx, edx
mov word [eax + 6], cx
jmp 0x3018b8a5
mov eax, dword [ebp - 0x1818]
or byte [eax + 7], 0x80
mov eax, dword [ebp - 0x1818]
mov dword [ebp - 0xa60], eax
mov dword [ebp - 0x9f8], 0xe
xor ecx, ecx
jmp 0x3018d203
mov eax, dword [ebp - 0x9d4]
sub eax, 0x1003
je 0x3018b91e
sub eax, 0x22
jne 0x3018ea01
mov eax, dword [ebp - 0x1848]
add eax, 0x144
push eax
push dword [ebp - 0x9d8]
push esi
call fcn.30187d57
xor eax, eax
mov dword [ebp - 0x9f4], eax
mov dword [ebp - 0x9f0], eax
mov dword [ebp - 0x9ec], eax
mov eax, dword [ebp - 0x1848]
mov dword [ebp - 0x9f8], 1
add eax, 0x144
jmp 0x3018e2d5
mov al, byte [esi]
cmp al, 4
jae 0x3018c386
mov ecx, dword [ebp - 0x1820]
test ecx, ecx
je 0x3018c386
push 3
movzx eax, al
push 0
push eax
call fcn.3018854f
imul eax, eax, 0x18
lea eax, [ecx + eax + 0x128]
push eax
push dword [ebp - 0x9d8]
push esi
call fcn.30187d57
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1002
jne 0x3018ea01
cmp dword [0x301e68e4], 0x201
jne 0x3018b990
xor ebx, ebx
inc ebx
mov dword [ebp - 0xa08], 3
mov dword [ebp - 0xa18], ebx
jmp 0x3018b9bf
mov ax, word [esi]
test ax, ax
mov bx, word [esi + 4]
mov dword [ebp - 0xa08], eax
mov dword [ebp - 0xa18], ebx
jl 0x3018c386
cmp ax, 3
jg 0x3018c386
test bx, bx
jl 0x3018c386
mov edi, dword [ebp - 0x1820]
lea eax, [ebp - 0x1820]
push eax
call fcn.3001f498
xor eax, eax
mov dword [ebp - 0x9f4], eax
mov dword [ebp - 0x9f0], eax
mov dword [ebp - 0x9ec], eax
mov eax, dword [ebp - 0x1820]
or dword [eax + 4], 0xffffffff
cmp dword [0x301e3340], 5
mov dword [ebp - 0x9f8], 0xc
mov dword [ebp - 0x9e8], eax
jge 0x3018ba12
mov eax, dword [ebp - 0x1820]
or byte [eax + 0x27], 0x80
test edi, edi
mov eax, dword [ebp - 0x1820]
jne 0x3018ba2a
mov ecx, dword [0x301e4920]
mov dword [ecx + 0x434], eax
jmp 0x3018ba2c
mov dword [edi], eax
mov eax, dword [0x301e4920]
inc dword [eax + 0x438]
cmp bx, 0xfa0
mov eax, 0xf9f
jge 0x3018ba46
movsx eax, bx
push eax
movsx eax, word [ebp - 0xa08]
push eax
mov eax, dword [ebp - 0x1820]
add eax, 0x158
push eax
call fcn.30019ae9
mov edi, 0x201
cmp dword [0x301e68e4], edi
jne 0x3018ba7a
xor eax, eax
inc eax
mov ecx, eax
mov dword [ebp - 0xa18], eax
jmp 0x3018baa4
mov ax, word [esi + 6]
mov cx, word [esi + 2]
test cx, cx
mov dword [ebp - 0xa18], eax
jl 0x3018c386
cmp cx, 3
jg 0x3018c386
test ax, ax
jl 0x3018c386
cmp ax, 0xfa0
jl 0x3018bab1
mov eax, 0xf9f
jmp 0x3018bab4
movsx eax, ax
push eax
movsx eax, cx
push eax
mov eax, dword [ebp - 0x1820]
add eax, 0x140
push eax
call fcn.30019ae9
cmp dword [0x301e68e4], edi
jne 0x3018baf8
mov eax, dword [ebp - 0x1820]
or byte [eax + 0x15b], 2
mov eax, dword [ebp - 0x1820]
or byte [eax + 0x143], 2
mov eax, dword [0x301e491c]
or byte [eax + 0xf1], 0x40
cmp dword [0x301e3340], 5
jle case.0x3018a85b.4150
mov ax, word [esi + 0xa]
test ax, ax
mov dword [ebp - 0xa18], eax
jle case.0x3018a85b.4150
movsx eax, ax
push eax
movsx eax, word [esi + 8]
push eax
mov eax, dword [ebp - 0x1820]
add eax, 0x170
push eax
call fcn.30019ae9
mov eax, dword [ebp - 0x1820]
or byte [eax + 0x173], 2
mov eax, dword [0x301e491c]
or byte [eax + 0xf1], 0x40
jmp case.0x3018a85b.4150
cmp ebx, 5
jl 0x3018bc03
mov eax, dword [esi]
mov ecx, dword [0x301e4920]
mov dword [ecx + 0x140], eax
mov eax, dword [esi + 4]
mov ecx, dword [0x301e4920]
mov dword [ecx + 0x144], eax
mov eax, dword [esi + 8]
mov ecx, dword [0x301e4920]
mov dword [ecx + 0x148], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [0x301e4920]
mov dword [ecx + 0x14c], eax
mov eax, dword [0x301e4920]
xor esi, esi
push esi
push esi
add eax, 0x138
push eax
call fcn.300292f8
mov eax, dword [0x301e4920]
cmp dword [eax + 0x158], esi
jle 0x3018bbbd
cmp dword [eax + 0x15c], esi
jg 0x3018bbf3
xor ecx, ecx
inc ecx
mov dword [0x301e3f5c], ecx
mov dword [eax + 0x15c], ecx
mov eax, dword [0x301e4920]
mov dword [eax + 0x158], ecx
mov eax, dword [0x301e4920]
lea ecx, [eax + 0x158]
push ecx
add eax, 0x148
push eax
call fcn.3002e883
mov eax, dword [0x301e4920]
lea esi, [eax + 0x150]
lea edi, [eax + 0x248]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor eax, eax
mov dword [ebp - 0x9f4], eax
mov dword [ebp - 0x9f0], eax
mov dword [ebp - 0x9ec], eax
mov eax, dword [0x301e4920]
add eax, 0x138
mov dword [ebp - 0x9f8], 0xd
mov dword [ebp - 0x9e8], eax
mov dword [ebp - 0xab8], 1
jmp case.0x3018a85b.4150
cmp word [esi], 0
jmp 0x3018ad71
cmp ebx, 6
jl 0x3018ea01
mov eax, dword [ebp - 0x9d4]
sub eax, 0x1014
je 0x3018bc69
sub eax, 0x11
je 0x3018bc9c
jmp 0x3018ea01
mov eax, dword [ebp - 0x183c]
mov cl, byte [eax + 0x32e]
and ecx, 0x1f
push ecx
push eax
push esi
call fcn.301638d7
test eax, eax
mov eax, dword [ebp - 0x183c]
je 0x3018bc91
add eax, 0x210
jmp 0x3018bc96
add eax, 0x370
mov dword [ebp - 0x1848], eax
mov eax, dword [ebp - 0x1848]
mov al, byte [eax + 0x11e]
and eax, 0x1f
push eax
push dword [ebp - 0x183c]
push esi
call fcn.301638d7
test eax, eax
je case.0x3018a85b.4150
test byte [esi + 0xc], 1
je 0x3018bcd3
mov eax, dword [ebp - 0x1848]
or byte [eax + 0x11e], 0x10
test byte [esi + 0xc], 4
je 0x3018bce6
mov eax, dword [ebp - 0x1848]
or byte [eax + 0x11e], 2
test byte [esi + 0xc], 8
je 0x3018bcf9
mov eax, dword [ebp - 0x1848]
or byte [eax + 0x11e], 1
test byte [esi + 0xc], 0x10
je 0x3018bd0c
mov eax, dword [ebp - 0x1848]
or byte [eax + 0x11e], 8
test byte [esi + 0xc], 2
je 0x3018bd53
mov eax, dword [ebp - 0x1848]
or byte [eax + 0x11e], 4
mov eax, dword [ebp - 0x1848]
mov cl, byte [eax + 0x11e]
and cl, 0x1f
cmp cl, 4
jne 0x3018bd53
mov ecx, dword [ebp - 0x183c]
mov cx, word [ecx + 4]
and ch, 0x3f
cmp cx, 4
je 0x3018bd4c
cmp cx, 8
jne 0x3018bd53
or byte [eax + 0x11f], 0x10
mov ax, word [esi + 0xe]
test ax, ax
jle case.0x3018a85b.4150
movsx ecx, ax
mov eax, 0xff
cmp ecx, eax
jbe 0x3018bd78
mov dword [0x301e3f5c], 1
mov ecx, eax
push eax
lea eax, [ebp - 0x84e]
push eax
push ecx
add esi, 0x10
push esi
call fcn.300c8fca
mov word [ebp - 0x850], ax
lea eax, [ebp - 0x850]
push eax
push dword [ebp - 0x1848]
call fcn.30163ba9
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1002
je case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1014
jmp 0x3018ad71
mov eax, 0x1021
cmp dword [ebp - 0x9d4], eax
jg 0x3018c0b4
je 0x3018be2b
mov ecx, dword [ebp - 0x9d4]
sub ecx, 0x1006
je 0x3018bf02
sub ecx, 0xe
je 0x3018be87
sub ecx, 8
je 0x3018beb1
dec ecx
jne 0x3018ea01
cmp dword [ebp - 0xa10], eax
jne 0x3018ea01
cmp dword [ebp - 0xa28], 0
jl 0x3018ea01
cmp dword [ebp - 0xa28], 3
jg 0x3018ea01
mov eax, dword [ebp - 0xa28]
xor ecx, ecx
sub eax, ecx
je 0x3018c08b
dec eax
je 0x3018c080
dec eax
je 0x3018c072
dec eax
jne 0x3018bef6
mov eax, dword [ebp - 0xa74]
lea edx, [eax + 0x144]
cmp dword [ebp - 0x1804], edx
jne 0x3018c01e
cmp ebx, 5
jge 0x3018bff3
mov eax, dword [ebp - 0x183c]
add eax, 0x678
mov dword [ebp - 0x17f8], eax
jmp 0x3018c013
cmp dword [ebp - 0xa10], 0x101c
jne 0x3018ea01
cmp dword [ebp - 0xa28], 0
jl 0x3018ea01
cmp dword [ebp - 0xa28], 3
jg 0x3018ea01
mov eax, dword [ebp - 0xa28]
sub eax, 0
je 0x3018bee6
dec eax
je 0x3018bedb
dec eax
je 0x3018bed0
dec eax
jne 0x3018bef6
mov eax, dword [ebp - 0x183c]
add eax, 0x34
jmp 0x3018beef
mov eax, dword [ebp - 0x183c]
add eax, 0x30
jmp 0x3018beef
mov eax, dword [ebp - 0x183c]
jmp 0x3018c078
mov eax, dword [ebp - 0x183c]
add eax, 0x28
push eax
push esi
call fcn.301891cc
or dword [ebp - 0xa28], 0xffffffff
jmp case.0x3018a85b.4150
cmp dword [0x301e68e4], 0x201
jne 0x3018bfd8
cmp dword [ebp - 0xa98], 0
je 0x3018bf2c
push dword [ebp - 0x1818]
push esi
call fcn.301891cc
jmp 0x3018bfc5
cmp dword [ebp - 0xa3c], 0
jne 0x3018bf48
push 1
push 1
push 4
push 0xc
call fcn.3000f4ab
mov dword [ebp - 0xa3c], eax
push 0xc
lea eax, [ebp - 0xad0]
push eax
push 0
call fcn.30056452
lea eax, [ebp - 0xad0]
push eax
lea eax, [ebp - 0xa3c]
push eax
call fcn.3000f3c2
mov edi, eax
lea eax, [ebp - 0xad0]
push eax
push esi
call fcn.301891cc
mov eax, dword [ebp - 0x183c]
lea ecx, [eax + 0x4dc]
mov eax, dword [ebp - 0x1818]
cmp eax, ecx
jne 0x3018bfa0
or dword [ebp - 0xacc], 0xffffffff
or dword [ebp - 0xac8], 0xffffffff
jmp 0x3018bfb2
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xacc], ecx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xac8], eax
inc edi
imul edi, edi, 0xc
add edi, dword [ebp - 0xa3c]
lea esi, [ebp - 0xad0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor eax, eax
cmp dword [ebp - 0xa98], eax
sete al
mov dword [ebp - 0xa98], eax
jmp 0x3018bfe4
push dword [ebp - 0x1818]
push esi
call fcn.301891cc
mov eax, dword [ebp - 0x1818]
and byte [eax + 7], 0xf7
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x17f8], ecx
jne 0x3018c013
push 0xe8
call fcn.300131a4
push 0
push eax
mov dword [ebp - 0x17f8], eax
call fcn.30012847
push dword [ebp - 0x17f8]
jmp 0x3018bef0
add eax, 0x110
cmp dword [ebp - 0x1804], eax
jne 0x3018bef6
cmp ebx, 5
jge 0x3018c047
mov eax, dword [ebp - 0x183c]
add eax, 0x768
mov dword [ebp - 0x17f4], eax
jmp 0x3018c067
cmp dword [ebp - 0x17f4], ecx
jne 0x3018c067
push 0xe8
call fcn.300131a4
push 0
push eax
mov dword [ebp - 0x17f4], eax
call fcn.30012847
push dword [ebp - 0x17f4]
jmp 0x3018bef0
mov eax, dword [ebp - 0x1804]
add eax, 0x2c
jmp 0x3018beef
mov eax, dword [ebp - 0x1804]
jmp 0x3018beec
mov eax, dword [ebp - 0x1804]
add eax, 0x24
push eax
push esi
call fcn.301891cc
mov ecx, dword [ebp - 0x1804]
mov dx, word [ecx]
and dh, 0x7f
shl eax, 0xf
or edx, eax
mov word [ecx], dx
jmp 0x3018bef6
mov eax, dword [ebp - 0x9d4]
sub eax, 0x102d
je 0x3018c0fc
sub eax, 5
je 0x3018c0f4
sub eax, 0xb
jne 0x3018ea01
cmp dword [ebp - 0xa54], 0
mov eax, dword [ebp - 0x183c]
je 0x3018c0e3
add eax, 0x38
jmp 0x3018c0e8
add eax, 0x120
push eax
push esi
call fcn.301891cc
jmp case.0x3018a85b.4150
push dword [ebp - 0x1834]
jmp 0x3018c0e9
mov eax, dword [ebp - 0x1848]
add eax, 0x13c
jmp 0x3018c0e8
cmp dword [ebp - 0x9d4], 0x1063
jne 0x3018c123
mov edi, dword [0x301e4920]
add edi, 0x26c
jmp 0x3018c12f
mov edi, dword [0x301e4920]
add edi, 0x1914
push edi
push esi
call fcn.301880c2
mov dword [ebp - 0x9f8], 9
jmp 0x3018e166
cmp dword [ebp - 0x9d4], 0x1041
mov eax, dword [0x301e4920]
je 0x3018c162
cmp dword [ebp - 0x9d4], 0x1002
jne 0x3018c174
mov cl, byte [eax + 0x268]
xor ch, ch
cmp cx, 0xa
jae 0x3018c174
xor ecx, ecx
jmp 0x3018c177
xor ecx, ecx
inc ecx
test ecx, ecx
je 0x3018c187
and dword [ebp - 0x183c], 0
jmp 0x3018dc06
mov al, byte [eax + 0x268]
mov edi, 0xff
xor cx, cx
and ax, di
cmp cx, ax
sbb eax, eax
neg eax
push eax
call fcn.300115a1
and dword [ebp - 0xaa4], 0
test eax, eax
mov dword [ebp - 0x183c], eax
je 0x3018b3da
mov byte [eax + 0x4dc], 0x4d
mov eax, dword [ebp - 0x183c]
or byte [eax + 0x4df], 1
cmp dword [0x301e3340], 4
jle 0x3018c20f
cmp dword [ebp - 0x9d8], 0x14
jb 0x3018c20f
movsx eax, word [esi + 0x12]
push 9
xor ebx, ebx
push ebx
push eax
call fcn.3018854f
mov ecx, dword [0x301e4920]
mov edx, dword [ebp - 0x183c]
mov dword [ecx + eax*4 + 0x40c], edx
mov eax, dword [0x301e4920]
inc byte [eax + 0x268]
jmp 0x3018c265
mov eax, dword [0x301e4920]
mov ecx, dword [eax + 0x448]
imul ecx, ecx, 0x8c8
lea eax, [ecx + eax + 0x44c]
push eax
mov dword [ebp - 0x1840], eax
call fcn.30011d92
mov eax, dword [0x301e4920]
inc dword [eax + 0x448]
mov eax, dword [0x301e4920]
mov cl, byte [eax + 0x268]
mov edx, dword [ebp - 0x183c]
and ecx, edi
mov dword [eax + ecx*4 + 0x40c], edx
mov eax, dword [0x301e4920]
inc byte [eax + 0x268]
xor ebx, ebx
mov eax, dword [ebp - 0x183c]
mov ecx, dword [ebp - 0x1840]
mov dword [eax + 0x24], ecx
mov cl, byte [esi + 0x10]
mov dword [ebp - 0x9e8], eax
mov eax, dword [ebp - 0x183c]
shl cl, 3
xor cl, byte [eax]
push 5
pop edi
mov dword [ebp - 0x9f8], edi
mov dword [ebp - 0x9f4], ebx
mov dword [ebp - 0x9f0], ebx
mov dword [ebp - 0x9ec], ebx
and ecx, 8
xor word [eax], cx
mov eax, dword [0x301e4920]
mov ax, word [eax + 0x268]
cmp al, 2
jne 0x3018c2c7
test ah, 4
jne 0x3018c2c7
mov eax, dword [ebp - 0x183c]
or byte [eax], 0x10
cmp dword [0x301e3340], edi
jl case.0x3018a85b.4150
mov esi, dword [ebp - 0x17f8]
cmp esi, ebx
je 0x3018c304
mov edi, dword [ebp - 0x183c]
push 0x3a
pop ecx
add edi, 0x678
push 0xe8
rep movsd dword es:[edi], dword [esi]
push dword [ebp - 0x17f8]
call fcn.3001efd5
mov dword [ebp - 0x17f8], ebx
mov esi, dword [ebp - 0x17f4]
cmp esi, ebx
je case.0x3018a85b.4150
mov edi, dword [ebp - 0x183c]
push 0x3a
pop ecx
add edi, 0x768
push 0xe8
rep movsd dword es:[edi], dword [esi]
push dword [ebp - 0x17f4]
call fcn.3001efd5
mov dword [ebp - 0x17f4], ebx
jmp case.0x3018a85b.4150
mov eax, dword [ebp - 0x9d4]
sub eax, 0x1003
je 0x3018c36c
sub eax, 0x22
jne 0x3018ea01
mov eax, dword [ebp - 0x1848]
push eax
add eax, 0x144
push eax
push esi
call fcn.30187a38
jmp case.0x3018a85b.4150
mov ax, word [esi]
push 3
movsx eax, ax
push 0
push eax
call fcn.3018854f
mov ecx, dword [ebp - 0x1820]
test ecx, ecx
jne 0x3018c3a2
push 0
push 0x30303030
mov dword [0x301e3f5c], 1
call dword [sym.imp.MSO.DLL_Ordinal_6848]
jmp case.0x3018a85b.4150
push dword [ecx + 8]
movsx eax, ax
imul eax, eax, 0x18
lea eax, [ecx + eax + 0x128]
push eax
push esi
call fcn.30187c31
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1006
jne 0x3018ea01
mov eax, dword [ebp - 0x1818]
and byte [eax + 8], 0xe0
cmp dword [0x301e3340], 5
jl 0x3018c3e8
test byte [esi], 0x10
je 0x3018c401
jmp 0x3018c3ed
test byte [esi], 1
jne 0x3018c401
mov eax, dword [ebp - 0x1818]
mov cx, word [eax + 8]
and cl, 0xe4
or ecx, 4
mov word [eax + 8], cx
test byte [esi], 8
je 0x3018c410
mov eax, dword [ebp - 0x1818]
or byte [eax + 7], 0x40
test byte [esi], 2
je 0x3018c429
mov eax, dword [ebp - 0x1818]
mov cx, word [eax + 8]
and cl, 0xe1
or ecx, 1
mov word [eax + 8], cx
mov ax, word [esi]
test al, 1
je 0x3018c448
test al, 2
jne 0x3018c448
mov eax, dword [ebp - 0x1818]
mov cx, word [eax + 8]
and cl, 0xe2
or ecx, 2
mov word [eax + 8], cx
cmp dword [0x301e3340], 5
jle 0x3018c46a
test byte [esi], 0x20
je 0x3018c46a
mov eax, dword [ebp - 0x1818]
mov cx, word [eax + 8]
and cl, 0xe8
or ecx, 8
mov word [eax + 8], cx
test byte [esi], 4
je case.0x3018a85b.4150
mov eax, dword [ebp - 0x1818]
mov cx, word [eax + 8]
and cl, 0xe5
or ecx, 5
mov word [eax + 8], cx
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1006
jne 0x3018ea01
movsx eax, word [esi]
mov ecx, dword [ebp - 0x1818]
mov dword [ecx + 0x1c], eax
jmp case.0x3018a85b.4150
mov eax, dword [ebp - 0x9d4]
sub eax, 0x1006
je 0x3018c606
sub eax, 0x17
je 0x3018c53f
sub eax, 0x15
je 0x3018c534
sub eax, 0xb
jne 0x3018ea01
cmp dword [ebp - 0xa54], 0
mov eax, dword [ebp - 0x183c]
je 0x3018c4eb
lea ecx, [eax + 0x40]
add eax, 0x3c
jmp 0x3018c5f9
lea ecx, [eax + 0x128]
push ecx
add eax, 0x124
push eax
push esi
call fcn.30189338
mov ecx, dword [ebp - 0x183c]
test byte [ecx + 0x127], 1
je case.0x3018a85b.4150
add ecx, 0x124
mov dx, word [ecx]
mov byte [ecx], dh
mov ecx, dword [ebp - 0x183c]
mov eax, edx
and eax, 0xff
mov byte [ecx + 0x125], al
jmp case.0x3018a85b.4150
mov eax, dword [ebp - 0x1834]
jmp 0x3018c5f3
cmp dword [ebp - 0x1804], 0
je 0x3018ea01
mov eax, dword [ebp - 0xa74]
lea ecx, [eax + 0x144]
cmp dword [ebp - 0x1804], ecx
jne 0x3018c5a2
cmp ebx, 5
jge 0x3018c578
mov eax, dword [ebp - 0x183c]
add eax, 0x678
mov dword [ebp - 0x17f8], eax
jmp 0x3018c5f3
mov eax, dword [ebp - 0x17f8]
test eax, eax
jne 0x3018c5f3
push 0xe8
call fcn.300131a4
push 0
push eax
mov dword [ebp - 0x17f8], eax
call fcn.30012847
mov eax, dword [ebp - 0x17f8]
jmp 0x3018c5f3
add eax, 0x110
cmp dword [ebp - 0x1804], eax
jne case.0x3018a85b.4150
cmp ebx, 5
jge 0x3018c5cb
mov eax, dword [ebp - 0x183c]
add eax, 0x768
mov dword [ebp - 0x17f4], eax
jmp 0x3018c5f3
mov eax, dword [ebp - 0x17f4]
test eax, eax
jne 0x3018c5f3
push 0xe8
call fcn.300131a4
push 0
push eax
mov dword [ebp - 0x17f4], eax
call fcn.30012847
mov eax, dword [ebp - 0x17f4]
lea ecx, [eax + 8]
add eax, 4
push ecx
push eax
push esi
call fcn.30189338
jmp case.0x3018a85b.4150
mov eax, dword [ebp - 0x1818]
lea ecx, [eax + 0x24]
jmp 0x3018c5f6
cmp dword [ebp - 0x9d4], 0x1006
jne 0x3018ea01
cmp ebx, 6
jl 0x3018c663
mov al, byte [esi + 0xc]
xor al, byte [ebp - 0x9fe]
xor ah, ah
push 0x5a0
push 0x28
xor word [ebp - 0x9fe], ax
xor eax, eax
mov ah, byte [esi + 0xe]
mov al, byte [ebp - 0xa00]
mov word [ebp - 0xa00], ax
mov eax, dword [esi + 0x10]
push eax
call fcn.3018854f
mov word [ebp - 0x9fc], ax
jmp 0x3018c6a3
mov eax, dword [esi]
push 1
push eax
call fcn.300e4f79
mov cl, byte [ebp - 0x9fe]
xor cl, al
mov eax, dword [esi + 4]
xor ch, ch
push 1
push eax
xor word [ebp - 0x9fe], cx
call fcn.300e4f79
movzx cx, byte [ebp - 0xa00]
mov ch, al
mov word [ebp - 0x9fc], 0x64
mov word [ebp - 0xa00], cx
mov ax, word [esi + 8]
push 9
movsx eax, ax
push 0
push eax
call fcn.3018854f
mov cl, byte [ebp - 0xa00]
xor cl, al
mov ax, word [esi + 0xa]
xor ch, ch
xor word [ebp - 0xa00], cx
xor ecx, ecx
mov ch, al
xor ecx, dword [ebp - 0x9fe]
and cx, 0x100
xor word [ebp - 0x9fe], cx
cmp dword [0x301e68e4], 0x201
jne 0x3018c70e
test al, 2
jne 0x3018c6f8
and byte [ebp - 0xa00], 0
jmp 0x3018c739
shl eax, 7
xor eax, dword [ebp - 0x9fe]
and ax, 0x600
xor word [ebp - 0x9fe], ax
jmp 0x3018c739
mov cl, al
shr cl, 5
not cl
shr al, 4
not al
and ecx, 1
add ecx, ecx
and eax, 1
or ecx, eax
mov eax, dword [ebp - 0x9fe]
and ah, 0xf9
shl ecx, 9
or ecx, eax
mov word [ebp - 0x9fe], cx
mov edi, dword [ebp - 0x1818]
add edi, 0x14
lea esi, [ebp - 0xa00]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x3018bfe4
cmp dword [ebp - 0x9d4], 0x1014
jne 0x3018ea01
cmp ebx, 4
mov ecx, dword [0x301e4920]
jg 0x3018c778
cmp byte [ecx + 0x268], 2
jne 0x3018ea01
mov ax, word [esi]
test ax, ax
jle 0x3018c78b
mov dx, word [esi + 2]
mov word [ebp - 0xa18], dx
mov edx, dword [ebp - 0x183c]
je 0x3018c79c
movsx ecx, word [ebp - 0xa18]
jmp 0x3018c7a2
mov ecx, dword [ecx + 0x438]
inc ecx
mov dword [edx + 8], ecx
mov ecx, dword [ebp - 0x183c]
movsx eax, ax
mov dword [ecx + 0x4d8], eax
mov ecx, dword [ebp - 0x183c]
mov dword [ecx + 0x4d4], eax
mov eax, dword [ebp - 0x183c]
and byte [eax], 0xef
jmp case.0x3018a85b.4150
movsx eax, word [esi]
test eax, eax
mov dword [ebp - 0xa14], eax
jl 0x3018c7e5
cmp eax, 4
jl case.0x3018a85b.4150
and dword [ebp - 0xa14], 0
jmp 0x3018ea01
mov ax, word [esi]
mov ecx, dword [0x301e4920]
mov word [ecx + 0x404], ax
mov ax, word [esi + 2]
mov ecx, dword [0x301e4920]
mov word [ecx + 0x406], ax
mov ax, word [esi + 4]
mov ecx, dword [0x301e4920]
mov word [ecx + 0x408], ax
mov ax, word [esi + 6]
mov ecx, dword [0x301e4920]
mov word [ecx + 0x40a], ax
jmp case.0x3018a85b.4150
mov eax, dword [esi]
mov ecx, dword [0x301e4920]
mov dword [ecx + 0x15f4], eax
mov eax, dword [esi + 4]
mov ecx, dword [0x301e4920]
mov dword [ecx + 0x15f8], eax
jmp case.0x3018a85b.4150
movsx eax, word [esi]
mov ecx, dword [ebp - 0x1820]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1820]
mov eax, dword [eax + 4]
test eax, eax
jl 0x3018c386
cmp eax, 0xa
jl case.0x3018a85b.4150
jmp 0x3018c386
cmp dword [ebp - 0x9d4], 0x1003
jne 0x3018ea01
movsx eax, word [esi]
mov ecx, dword [ebp - 0x1820]
mov dword [ecx + 0x14], eax
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1003
jne 0x3018ea01
mov eax, dword [ebp - 0x1820]
mov ecx, dword [eax + 0x1c]
and ecx, 0xfffffffa
or ecx, 2
mov dword [eax + 0x1c], ecx
push dword [ebp - 0x1820]
call fcn.3018852e
push 0xb0
call fcn.300131a4
mov ecx, dword [ebp - 0x1820]
mov dword [ecx + 0x18], eax
movzx ecx, byte [esi]
mov dword [eax], ecx
movzx ecx, byte [esi + 1]
mov dword [eax + 4], ecx
fld qword [esi + 2]
fstp qword [eax + 8]
movzx ecx, byte [esi + 0xa]
mov dword [eax + 0x10], ecx
movzx ecx, byte [esi + 0xb]
mov dword [eax + 0x14], ecx
fld qword [esi + 0xc]
fstp qword [eax + 0x18]
fld qword [esi + 0x14]
jmp 0x3018dea6
cmp dword [ebp - 0x9d4], 0x1003
jne 0x3018ea01
mov eax, dword [ebp - 0x1820]
mov ecx, dword [eax + 0x1c]
and ecx, 0xfffffffb
or ecx, 3
mov dword [eax + 0x1c], ecx
mov eax, dword [ebp - 0x1820]
or byte [eax + 0x1c], 0x80
cmp byte [esi + 1], 4
je 0x3018c952
push dword [ebp - 0x1820]
call fcn.3018852e
cmp dword [ebp - 0x9d8], 0xc
jbe 0x3018c961
mov ax, word [esi + 0xc]
jmp 0x3018c964
xor eax, eax
inc eax
movsx edi, ax
push 0x1010
push 1
lea eax, [edi - 1]
push eax
call fcn.30056021
lea eax, [eax*8 + 0x10]
push eax
call fcn.300563f8
mov ecx, dword [ebp - 0x1820]
mov dword [ecx + 0x18], eax
mov dword [eax + 4], edi
movzx edx, byte [esi]
mov ecx, dword [ebp - 0x1820]
shl edx, 3
xor edx, dword [ecx + 0x1c]
and edx, 0x38
xor dword [ecx + 0x1c], edx
mov cl, byte [esi + 1]
and cl, 7
movzx dx, cl
mov cx, word [eax]
and ecx, 0xfff8
or edx, ecx
mov word [eax], dx
mov cl, byte [esi + 2]
and cl, 1
movzx cx, cl
and edx, 0xfff7
shl ecx, 3
or ecx, edx
mov word [eax], cx
mov dl, byte [esi + 3]
and dl, 1
movzx dx, dl
and cl, 0xef
shl edx, 4
or edx, ecx
mov word [eax], dx
fld qword [esi + 4]
fstp qword [eax + 8]
jmp case.0x3018a85b.4150
mov eax, dword [ebp - 0x9d4]
sub eax, 0x1003
je 0x3018ca2a
sub eax, 0x22
jne 0x3018ea01
mov eax, dword [ebp - 0x1848]
test eax, eax
je 0x3018ea01
add eax, 0x144
push eax
push esi
call fcn.30187c88
jmp case.0x3018a85b.4150
movzx eax, byte [esi]
push 3
push 0
push eax
call fcn.3018854f
imul eax, eax, 0x18
mov ecx, dword [ebp - 0x1820]
lea eax, [ecx + eax + 0x128]
jmp 0x3018ca1e
cmp dword [ebp - 0x9d4], 0x1006
mov ebx, 0x1066
je 0x3018ca66
cmp dword [ebp - 0x9d4], ebx
jne 0x3018ea01
push 0x18
call fcn.300131a4
mov edi, eax
push 0x18
push edi
push 0
mov dword [ebp - 0xa34], edi
call fcn.30056452
xor eax, eax
cmp word [esi + 2], 2
sete al
shl eax, 5
xor al, byte [edi + 4]
and eax, 0x20
xor word [edi + 4], ax
mov al, byte [esi + 4]
mov cx, word [edi + 4]
shl al, 3
xor al, cl
and eax, 0x18
xor eax, ecx
mov word [edi + 4], ax
and al, 0x18
cmp al, 0x10
je 0x3018cac3
test byte [edi + 4], 0x20
jne 0x3018cac3
mov ax, word [edi + 4]
and al, 0xef
or al, 8
mov word [edi + 4], ax
mov ax, word [esi + 4]
shr eax, 1
xor al, byte [edi + 4]
and ax, 0x80
xor word [edi + 4], ax
mov cx, word [edi + 4]
mov ax, word [esi + 4]
shr eax, 1
xor eax, ecx
and eax, 0x100
xor eax, ecx
mov word [edi + 4], ax
mov cx, word [esi + 4]
shr ecx, 1
xor ecx, eax
and ecx, 0x200
xor ecx, eax
mov word [edi + 4], cx
mov ax, word [esi + 4]
shr eax, 1
xor eax, ecx
and eax, 0x400
xor eax, ecx
mov word [edi + 4], ax
mov cl, byte [esi]
xor cl, al
and ecx, 7
xor ecx, eax
cmp dword [ebp - 0x9d4], ebx
mov word [edi + 4], cx
fld qword [esi + 6]
fstp qword [edi + 6]
je 0x3018cb46
mov eax, dword [ebp - 0x1818]
lea ecx, [eax + 0x24]
add eax, 4
push eax
push ecx
mov dword [ebp - 0x1830], ecx
call fcn.3004aae8
mov cx, word [edi + 4]
mov eax, dword [ebp - 0x1830]
add eax, 4
mov dword [ebp - 0x9e8], eax
xor esi, esi
mov dword [ebp - 0x9f8], 0xb
mov dword [ebp - 0x9f4], esi
shr ecx, 7
shl cl, 3
xor cl, byte [eax]
mov dword [ebp - 0x9f0], esi
and cl, 8
xor byte [eax], cl
mov cl, byte [edi + 5]
mov eax, dword [ebp - 0x1830]
shl cl, 4
xor cl, byte [eax + 4]
mov dword [ebp - 0x9ec], esi
and cl, 0x10
xor byte [eax + 4], cl
mov cx, word [edi + 4]
mov eax, dword [ebp - 0x1830]
shr cx, 9
shl cl, 5
xor cl, byte [eax + 4]
and cl, 0x20
xor byte [eax + 4], cl
mov cx, word [edi + 4]
mov eax, dword [ebp - 0x1830]
shr cx, 0xa
shl cl, 6
xor cl, byte [eax + 4]
and cl, 0x40
xor byte [eax + 4], cl
mov eax, dword [ebp - 0x1830]
mov cl, byte [eax + 4]
xor cl, byte [edi + 4]
and cl, 7
xor byte [eax + 4], cl
cmp dword [ebp - 0x9d4], ebx
mov eax, dword [ebp - 0x1830]
mov dword [eax + 0x10], esi
fld qword [edi + 6]
mov eax, dword [ebp - 0x1830]
fstp qword [eax + 5]
mov eax, dword [ebp - 0x1830]
je 0x3018cc0c
test byte [eax + 4], 8
je case.0x3018a85b.4150
test byte [eax + 4], 8
je 0x3018cc15
or byte [eax], 1
push 0x18
push edi
call dword [sym.imp.MSO.DLL_Ordinal_957]
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1006
jne 0x3018ea01
mov cx, word [esi]
mov eax, dword [ebp - 0x1818]
shl cx, 0xe
xor cx, word [eax + 6]
and cx, 0x4000
xor word [eax + 6], cx
mov cx, word [esi]
mov eax, dword [ebp - 0x1818]
shl cx, 0xc
xor cx, word [eax + 6]
and cx, 0x2000
xor word [eax + 6], cx
mov eax, dword [ebp - 0x1818]
xor ecx, ecx
mov ch, byte [esi]
xor cx, word [eax + 6]
and cx, 0x400
xor word [eax + 6], cx
jmp case.0x3018a85b.4150
call fcn.30054588
lea eax, [ebp - 0x98]
push eax
call fcn.30012728
push 6
pop ebx
cmp dword [0x301e3340], ebx
jg 0x3018ccb4
mov eax, dword [0x301e6634]
mov ecx, eax
and ecx, 0xffff
cmp ecx, 0xc87
jl 0x3018cd10
push dword [0x301e3f80]
push dword [ebp - 0x9d8]
call fcn.30040f77
push eax
push esi
lea eax, [ebp - 0x18c8]
push eax
call fcn.3013b440
lea eax, [ebp - 0x7c]
push eax
push ebx
mov edi, 0x301e3ee0
push edi
call dword [sym.imp.MSO.DLL_Ordinal_532]
test eax, eax
jne 0x3018ccf8
push 0xa
pop ecx
lea esi, [ebp - 0x18c8]
rep movsd dword es:[edi], dword [esi]
jmp case.0x3018a85b.4150
lea eax, [ebp - 0x18c8]
push eax
mov dword [ebp - 0x68], 0x100000f4
call fcn.3013b496
mov eax, dword [0x301e6634]
xor esi, esi
inc esi
or word [ebp - 0x98], si
cmp dword [0x301e3340], ebx
jne 0x3018cd5f
and eax, 0xffff
cmp eax, 0xcea
jg 0x3018cd5f
mov eax, dword [ebp - 0x7c]
cmp eax, 4
je 0x3018cd44
cmp eax, 5
je 0x3018cd44
cmp eax, ebx
je 0x3018cd44
cmp eax, 7
jne 0x3018cd5f
lea eax, [ebp - 0x7c]
push eax
call fcn.301ac6fd
test eax, eax
jne 0x3018cd5f
push 0x3b13
call dword [sym.imp.MSO.DLL_Ordinal_857]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x7c]
cmp eax, 4
je 0x3018cd75
cmp eax, 5
je 0x3018cd75
cmp eax, ebx
je 0x3018cd75
cmp eax, 7
jne 0x3018cd7e
lea eax, [ebp - 0x7c]
push eax
call fcn.301ac6fd
mov eax, dword [ebp - 0x9d4]
sub eax, 0x1006
je 0x3018ce58
sub eax, 0x17
je 0x3018cddc
sub eax, 0x15
je 0x3018cdd4
sub eax, 0xb
je 0x3018cda9
mov dword [0x301e3f5c], esi
jmp 0x3018ce72
cmp dword [ebp - 0xa54], 0
mov edi, dword [ebp - 0x183c]
push 0x37
lea esi, [ebp - 0x98]
pop ecx
je 0x3018cdc9
add edi, 0x40
jmp 0x3018ce6a
add edi, 0x128
jmp 0x3018ce6a
mov edi, dword [ebp - 0x1834]
jmp 0x3018ce53
xor edi, edi
cmp dword [ebp - 0x1804], edi
je 0x3018cd9e
mov eax, dword [ebp - 0xa74]
lea ecx, [eax + 0x144]
cmp dword [ebp - 0x1804], ecx
jne 0x3018ce21
cmp dword [ebp - 0x17f8], edi
jne 0x3018ce19
push 0xe8
call fcn.300131a4
push edi
push eax
mov dword [ebp - 0x17f8], eax
call fcn.30012847
mov edi, dword [ebp - 0x17f8]
jmp 0x3018ce53
add eax, 0x110
cmp dword [ebp - 0x1804], eax
jne 0x3018ce72
cmp dword [ebp - 0x17f4], edi
jne 0x3018ce4d
push 0xe8
call fcn.300131a4
push edi
push eax
mov dword [ebp - 0x17f4], eax
call fcn.30012847
mov edi, dword [ebp - 0x17f4]
add edi, 8
jmp 0x3018ce61
mov edi, dword [ebp - 0x1818]
add edi, 0x24
push 0x37
pop ecx
lea esi, [ebp - 0x98]
mov dword [ebp - 0x1830], edi
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov dword [ebp - 0x9f4], eax
mov dword [ebp - 0x9f0], eax
mov dword [ebp - 0x9ec], eax
mov eax, dword [ebp - 0x1830]
mov dword [ebp - 0x9f8], 8
jmp 0x3018e2d5
cmp dword [ebp - 0x9d4], 0x1004
jmp 0x3018ad71
mov ecx, dword [ebp - 0x1804]
test ecx, ecx
je 0x3018ea01
cmp dword [ebp - 0x9d4], 0x101d
jne 0x3018ea01
mov eax, dword [0x301e3f94]
movsx edx, word [esi]
dec eax
push eax
push 0
push edx
call fcn.3018854f
cmp eax, edx
jne 0x3018ceeb
mov eax, dword [0x301e3f98]
mov al, byte [edx + eax]
mov byte [ecx + 2], al
jmp 0x3018ceef
or byte [ecx + 2], 0xff
mov eax, dword [ebp - 0x1804]
cmp byte [eax + 2], 0xff
jne 0x3018d03f
cmp dword [0x301e3340], 6
jge 0x3018cf56
mov ecx, dword [0x301e8b20]
cmp ecx, 0x3a4
je 0x3018cf56
cmp ecx, 0x3b5
je 0x3018cf56
cmp ecx, 0x3b6
je 0x3018cf56
cmp ecx, 0x3a8
je 0x3018cf56
cmp ecx, 0x2711
je 0x3018cf56
cmp ecx, 0x2713
je 0x3018cf56
cmp ecx, 0x2712
je 0x3018cf56
cmp ecx, 0x272f
je 0x3018cf56
cmp ecx, 0x2729
jne 0x3018cf7e
cmp edx, 0x1b
jl 0x3018cf7e
cmp edx, 0x1f
jle 0x3018cf74
cmp edx, 0x23
jle 0x3018cfa8
cmp edx, 0x24
je 0x3018cf74
cmp edx, 0x31
jle 0x3018cf7e
cmp edx, 0x3a
jg 0x3018cf7e
mov byte [eax + 2], 0x13
mov eax, dword [ebp - 0x1804]
cmp byte [eax + 2], 0xff
jne 0x3018d03f
test byte [0x301e4cec], 1
jne 0x3018d03f
add edx, 0xffffffc5
cmp edx, 0x16
ja case.default.0x3018cfa1
jmp dword [edx*4 + 0x30190307]
mov byte [eax + 2], 0x1a
jmp 0x3018cf78
mov byte [eax + 2], 1
jmp 0x3018d039
mov byte [eax + 2], 2
jmp 0x3018d039
mov byte [eax + 2], 3
jmp 0x3018d039
mov byte [eax + 2], 4
jmp 0x3018d039
mov byte [eax + 2], 9
jmp 0x3018d039
mov byte [eax + 2], 0xa
jmp 0x3018d039
mov byte [eax + 2], 0xb
jmp 0x3018d039
mov byte [eax + 2], 0xc
jmp 0x3018d039
mov byte [eax + 2], 0xd
jmp 0x3018d039
mov byte [eax + 2], 0xe
jmp 0x3018d039
mov byte [eax + 2], 0x11
jmp 0x3018d039
mov byte [eax + 2], 0x12
jmp 0x3018d039
mov byte [eax + 2], 0x13
jmp 0x3018d039
mov byte [eax + 2], 0x14
jmp 0x3018d039
mov byte [eax + 2], 0x15
jmp 0x3018d039
mov byte [eax + 2], 0x16
jmp 0x3018d039
mov byte [eax + 2], 0x19
jmp 0x3018d039
mov byte [eax + 2], 0x1a
jmp 0x3018d039
mov byte [eax + 2], 0x1b
jmp 0x3018d039
mov byte [eax + 2], 0x1f
jmp 0x3018d039
mov byte [eax + 2], 0x1c
jmp 0x3018d039
mov byte [eax + 2], 0x1d
jmp 0x3018d039
mov byte [eax + 2], 0
mov eax, dword [ebp - 0x1804]
or byte [eax + 3], 1
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1025
jne 0x3018ea01
mov eax, dword [ebp - 0x1848]
or byte [eax + 0x147], 0x80
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1003
jne 0x3018ea01
mov eax, dword [0x301e4920]
add eax, 0x17b4
push eax
call fcn.300292ea
push 0x20
call fcn.300131a4
movsx ecx, word [esi]
mov dword [eax], ecx
mov cl, byte [esi + 2]
xor cl, byte [eax + 4]
mov dword [ebp - 0x9f8], 0xa
mov dword [ebp - 0x9e8], eax
and ecx, 2
xor word [eax + 4], cx
mov dl, byte [esi + 2]
mov cx, word [eax + 4]
xor dl, cl
and edx, 1
xor edx, ecx
xor ecx, ecx
inc dword [ebp - 0xabc]
mov word [eax + 4], dx
mov dword [eax + 0x18], ecx
mov edx, dword [ebp - 0x1820]
mov edx, dword [edx + 0xc]
mov dword [eax + 0x1c], edx
mov edx, dword [ebp - 0x1820]
mov dword [edx + 0xc], eax
mov dword [ebp - 0x9f4], ecx
mov dword [ebp - 0x9f0], ecx
mov dword [ebp - 0x9ec], ecx
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1006
jne 0x3018ea01
mov cl, byte [esi + 1]
mov eax, dword [ebp - 0x1818]
mov dx, word [eax + 8]
and cl, 3
movzx cx, cl
and dx, 0xfe7f
shl ecx, 7
or ecx, edx
mov word [eax + 8], cx
mov cl, byte [esi]
mov eax, dword [ebp - 0x1818]
mov dx, word [eax + 8]
and cl, 3
movzx cx, cl
and dl, 0x9f
shl ecx, 5
or ecx, edx
mov word [eax + 8], cx
mov eax, dword [ebp - 0x1818]
and byte [eax + 9], 0xfd
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1002
jne 0x3018ea01
mov eax, dword [0x301e4920]
add eax, 0x26c
push eax
push esi
call fcn.30188066
xor eax, eax
mov dword [ebp - 0x9f4], eax
mov dword [ebp - 0x9f0], eax
mov dword [ebp - 0x9ec], eax
mov eax, dword [0x301e4920]
mov dword [ebp - 0x9f8], 6
add eax, 0x26c
jmp 0x3018e2d5
cmp dword [ebp - 0x9d4], 0x1014
jne 0x3018ea01
xor eax, eax
xor ecx, ecx
cmp dword [ebp - 0xa54], ecx
sete al
cmp dword [ebp - 0x9d8], ecx
mov dword [ebp - 0xa54], eax
je 0x3018d1e1
movsx eax, word [esi]
mov edx, dword [ebp - 0x183c]
mov dword [edx + 0x18], eax
cmp dword [ebp - 0xa54], ecx
mov eax, dword [ebp - 0x183c]
je 0x3018d1f4
add eax, 0x38
jmp 0x3018d1f9
add eax, 0x120
mov dword [ebp - 0x9f8], 0xf
mov dword [ebp - 0x9f4], ecx
mov dword [ebp - 0x9f0], ecx
mov dword [ebp - 0x9ec], ecx
jmp 0x3018e2d5
mov cx, word [esi]
mov eax, dword [0x301e4920]
shl cx, 0xf
sar cx, 0xf
add eax, 0x268
xor edx, edx
shl ecx, 0xa
xor cx, word [eax]
and cx, 0x400
xor word [eax], cx
mov cx, word [esi]
mov eax, dword [0x301e491c]
shl cx, 0xe
sar cx, 0xf
add eax, 0xf0
shl ecx, 2
xor cl, byte [eax]
and ecx, 4
xor word [eax], cx
mov eax, dword [0x301e4920]
lea ecx, [eax + 0x26a]
mov ax, word [eax + 0x268]
shr eax, 9
xor al, byte [ecx]
and eax, 1
xor word [ecx], ax
mov cl, byte [esi]
mov eax, dword [0x301e4920]
not cl
and cl, 8
mov dh, cl
add eax, 0x268
xor dx, word [eax]
and dx, 0x800
xor word [eax], dx
mov cl, byte [esi + 2]
mov eax, dword [0x301e4920]
and cl, 3
add eax, 0x268
mov dx, word [eax]
movzx cx, cl
and dh, 0xcf
shl ecx, 0xc
or ecx, edx
mov word [eax], cx
cmp dword [0x301e3340], 6
mov eax, dword [0x301e4920]
jl 0x3018d2ea
mov cx, word [esi]
shl cx, 0xb
add eax, 0x268
mov dx, word [eax]
sar cx, 0xf
and dh, 0x7f
shl ecx, 0xf
or ecx, edx
jmp 0x3018dc8e
or byte [eax + 0x269], 0x80
jmp case.0x3018a85b.4150
movsx eax, word [esi]
push eax
call fcn.3018981c
jmp case.0x3018a85b.4150
movzx eax, word [esi]
xor ecx, ecx
inc ecx
push ecx
push 0
push eax
mov dword [ebp - 0xa24], ecx
mov dword [ebp - 0xa1c], eax
call fcn.3018854f
mov ecx, dword [0x301e4920]
mov dword [ebp - 0xa1c], eax
imul eax, eax, 0x8c8
lea eax, [ecx + eax + 0x44c]
mov dword [ebp - 0x1840], eax
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1014
jne 0x3018ea01
cmp dword [0x301e68e4], 0x201
jne 0x3018d434
mov ax, word [esi + 2]
movsx eax, ax
push 0x1f4
push eax
call fcn.30055f82
movsx eax, ax
push 0
push eax
call fcn.30056021
mov edi, eax
mov ax, word [esi]
push 0x64
mov dword [ebp - 0xa18], eax
movsx eax, ax
push eax
call fcn.30055f82
mov dword [ebp - 0xa18], eax
movsx eax, ax
push 0xffffffffffffff9c
push eax
call fcn.30056021
mov dword [ebp - 0xa18], eax
mov al, byte [esi + 6]
xor ebx, ebx
inc ebx
shr eax, 3
and eax, ebx
add eax, eax
push eax
push ebx
push dword [ebp - 0x183c]
call fcn.3001c120
mov eax, dword [ebp - 0x183c]
mov cl, byte [eax]
xor cl, byte [esi + 6]
and ecx, 2
xor word [eax], cx
mov cl, byte [esi + 6]
mov eax, dword [ebp - 0x183c]
shr cl, 2
xor cl, byte [eax]
and ecx, ebx
xor word [eax], cx
mov cl, byte [esi + 6]
mov eax, dword [ebp - 0x183c]
shl cl, 2
xor cl, byte [eax]
and ecx, 4
xor word [eax], cx
mov ax, word [esi + 6]
test al, 8
je 0x3018d4a0
mov ecx, dword [ebp - 0x183c]
shr eax, 4
and eax, ebx
mov dword [ebp - 0xaa8], eax
movsx eax, word [esi + 4]
push ebx
mov dword [ecx + 0x648], eax
push dword [ebp - 0x183c]
call fcn.30188a2e
jmp 0x3018d4a0
mov ax, word [esi]
mov di, word [esi + 2]
push 0
push 1
push dword [ebp - 0x183c]
mov word [ebp - 0xa18], ax
call fcn.3001c120
mov eax, dword [ebp - 0x183c]
mov cl, byte [eax]
xor cl, byte [esi + 4]
and ecx, 2
xor word [eax], cx
mov cl, byte [esi + 4]
mov eax, dword [ebp - 0x183c]
shr cl, 2
xor cl, byte [eax]
and ecx, 1
xor word [eax], cx
mov cl, byte [esi + 4]
mov eax, dword [ebp - 0x183c]
shl cl, 2
xor cl, byte [eax]
and ecx, 4
xor word [eax], cx
mov cl, byte [esi + 4]
mov eax, dword [ebp - 0x183c]
shr cl, 3
xor cl, byte [eax + 2]
and ecx, 1
xor word [eax + 2], cx
mov ecx, dword [ebp - 0x183c]
movsx eax, di
mov dword [ecx + 0x18], eax
movsx eax, word [ebp - 0xa18]
mov ecx, dword [ebp - 0x183c]
mov dword [ecx + 0x14], eax
jmp 0x3018da09
cmp dword [ebp - 0x9d4], 0x1014
jne 0x3018ea01
push 0
push 2
push dword [ebp - 0x183c]
call fcn.3001c120
mov cl, byte [esi]
mov eax, dword [ebp - 0x183c]
add cl, cl
xor cl, byte [eax]
and ecx, 2
xor word [eax], cx
mov cl, byte [esi]
mov eax, dword [ebp - 0x183c]
shr cl, 1
xor cl, byte [eax]
and ecx, 1
xor word [eax], cx
mov cl, byte [esi]
mov eax, dword [ebp - 0x183c]
shr cl, 2
xor cl, byte [eax + 2]
and ecx, 1
xor word [eax + 2], cx
jmp 0x3018da09
cmp dword [ebp - 0x9d4], 0x1014
jne 0x3018ea01
xor edi, edi
push edi
push 3
push dword [ebp - 0x183c]
call fcn.3001c120
movzx eax, byte [esi]
mov ecx, dword [ebp - 0x183c]
mov dword [ecx + 0x674], eax
mov eax, dword [ebp - 0x183c]
mov dword [eax + 0x1c], edi
mov eax, dword [ebp - 0x183c]
mov dword [eax + 0x20], edi
movsx eax, word [esi + 2]
mov ecx, dword [ebp - 0x183c]
mov dword [ecx + 0x658], eax
movsx eax, word [esi + 4]
mov ecx, dword [ebp - 0x183c]
mov dword [ecx + 0x664], eax
movsx eax, word [esi + 6]
mov ecx, dword [ebp - 0x183c]
mov dword [ecx + 0x668], eax
movsx eax, word [esi + 8]
mov ecx, dword [ebp - 0x183c]
mov dword [ecx + 0x66c], eax
movsx eax, word [esi + 0xa]
mov ecx, dword [ebp - 0x183c]
mov dword [ecx + 0x18], eax
movzx eax, byte [esi + 1]
mov ecx, dword [ebp - 0x183c]
mov dword [ecx + 0x670], eax
mov eax, dword [ebp - 0x183c]
mov cl, byte [esi + 0x14]
xor cl, byte [eax + 2]
and ecx, 1
xor word [eax + 2], cx
fld qword [esi + 0xc]
mov eax, dword [ebp - 0x183c]
cmp dword [ebp - 0xa24], edi
fstp qword [eax + 0x65c]
jmp 0x3018da10
cmp dword [ebp - 0x9d4], 0x1014
jne 0x3018ea01
mov eax, dword [ebp - 0x183c]
mov dword [eax + 0x4d8], 1
push dword [ebp - 0x183c]
call fcn.3016d951
test eax, eax
je 0x3019018b
movsx ebx, word [esi]
mov eax, dword [ebp - 0x183c]
mov edi, dword [eax + 0x620]
mov eax, ebx
shl eax, 2
push 0x1010
push eax
mov dword [edi + 0x24], ebx
call fcn.300563f8
mov dword [edi + 0x1c], eax
mov eax, ebx
push 0x1010
shl eax, 2
push eax
call fcn.300563f8
add esi, 2
push esi
push 2
push 1
push ebx
push ebx
push dword [edi + 0x1c]
mov dword [edi + 0x20], eax
call fcn.30123ae4
test eax, eax
jne case.0x3018a85b.4150
jmp 0x3018ea01
cmp dword [ebp - 0x9d4], 0x1014
jne 0x3018ea01
mov eax, dword [ebp - 0x183c]
and dword [eax + 0x674], 0
cmp dword [0x301e3340], 5
jge 0x3018d702
cmp dword [0x301e68e4], 0x201
mov di, word [esi]
jne 0x3018d6e5
mov al, byte [esi + 4]
and eax, 1
add eax, eax
push eax
push 3
push dword [ebp - 0x183c]
call fcn.3001c120
test byte [esi + 4], 1
je 0x3018d6f4
movsx eax, word [esi + 2]
mov ecx, dword [ebp - 0x183c]
add eax, eax
push 3
mov dword [ecx + 0x644], eax
push dword [ebp - 0x183c]
call fcn.30188a2e
jmp 0x3018d6f4
push 0
push 3
push dword [ebp - 0x183c]
call fcn.3001c120
mov ecx, dword [ebp - 0x183c]
movsx eax, di
mov dword [ecx + 0x20], eax
jmp 0x3018d73d
push 0
push 3
push dword [ebp - 0x183c]
call fcn.3001c120
movsx eax, word [esi]
mov ecx, dword [ebp - 0x183c]
mov dword [ecx + 0x20], eax
movsx eax, word [esi + 2]
mov ecx, dword [ebp - 0x183c]
mov dword [ecx + 0x1c], eax
mov cl, byte [esi + 4]
mov eax, dword [ebp - 0x183c]
xor cl, byte [eax + 2]
and ecx, 1
xor word [eax + 2], cx
cmp dword [ebp - 0xa24], 0
je 0x3018d768
mov eax, dword [ebp - 0xa1c]
mov ecx, dword [0x301e4920]
imul eax, eax, 0x8c8
lea eax, [ecx + eax + 0x44c]
mov ecx, dword [ebp - 0x183c]
mov dword [ecx + 0x24], eax
cmp dword [0x301e3340], 6
jl case.0x3018a85b.4150
mov cl, byte [esi + 4]
mov eax, dword [ebp - 0x183c]
add eax, 0x864
shr cl, 1
xor cl, byte [eax]
and ecx, 1
jmp 0x3018e079
cmp dword [ebp - 0x9d4], 0x1014
jne 0x3018ea01
cmp dword [0x301e68e4], 0x201
jne 0x3018d836
mov al, byte [esi + 2]
and eax, 4
shr eax, 1
push eax
push 4
push dword [ebp - 0x183c]
call fcn.3001c120
mov cx, word [esi + 2]
mov eax, dword [ebp - 0x183c]
shl cx, 0xf
sar cx, 0xf
add ecx, ecx
xor cl, byte [eax]
and ecx, 2
xor word [eax], cx
mov cx, word [esi + 2]
mov eax, dword [ebp - 0x183c]
shl cx, 0xe
sar ecx, 0xf
xor cl, byte [eax]
and ecx, 1
xor word [eax], cx
mov ax, word [esi + 2]
test al, 4
je 0x3018da09
mov ecx, dword [ebp - 0x183c]
shl eax, 0xc
movsx eax, ax
sar eax, 0xf
mov dword [ebp - 0xaa8], eax
movsx eax, word [esi]
push 4
mov dword [ecx + 0x648], eax
push dword [ebp - 0x183c]
call fcn.30188a2e
jmp 0x3018da09
push 0
push 4
jmp 0x3018d4d5
cmp dword [ebp - 0x9d4], 0x1014
jne 0x3018ea01
push 0
push 5
push dword [ebp - 0x183c]
call fcn.3001c120
cmp dword [0x301e3340], 5
jle 0x3018d89e
movsx eax, word [esi]
mov ecx, dword [ebp - 0x183c]
mov dword [ecx + 0x650], eax
movsx eax, word [esi + 2]
mov ecx, dword [ebp - 0x183c]
mov dword [ecx + 0x654], eax
mov cl, byte [esi + 4]
mov eax, dword [ebp - 0x183c]
shr cl, 2
xor cl, byte [eax + 2]
and ecx, 1
xor word [eax + 2], cx
jmp 0x3018d8c8
mov eax, dword [ebp - 0x183c]
mov dword [eax + 0x650], 0x64
mov eax, dword [ebp - 0x183c]
mov dword [eax + 0x654], 1
mov eax, dword [ebp - 0x183c]
and byte [eax + 2], 0xfe
mov cx, word [esi + 4]
mov eax, dword [ebp - 0x183c]
mov dx, word [esi + 4]
shl cx, 0xe
xor cx, word [eax]
shl dx, 0xe
and ch, 0x7f
xor ecx, edx
mov word [eax], cx
mov cx, word [esi + 4]
mov eax, dword [ebp - 0x183c]
shl cx, 0xe
xor cx, word [eax]
and cx, 0x4000
jmp 0x3018da06
cmp dword [ebp - 0x9d4], 0x1014
jne 0x3018ea01
xor eax, eax
cmp edx, 0x103e
setne al
push 0
lea eax, [eax + eax + 6]
push eax
push dword [ebp - 0x183c]
call fcn.3001c120
cmp dword [ebp - 0xa24], 0
je 0x3018d95c
mov eax, dword [ebp - 0xa1c]
mov ecx, dword [0x301e4920]
imul eax, eax, 0x8c8
lea eax, [ecx + eax + 0x44c]
mov ecx, dword [ebp - 0x183c]
mov dword [ecx + 0x24], eax
mov cx, word [esi]
mov eax, dword [ebp - 0x183c]
mov eax, dword [eax + 0x24]
shl cx, 0xf
sar cx, 0xf
xor edx, edx
mov dh, cl
add eax, 0x1d4
xor dx, word [eax]
and dx, 0x100
xor word [eax], dx
mov cx, word [esi]
mov eax, dword [ebp - 0x183c]
shl cx, 0xe
sar ecx, 0xf
xor cl, byte [eax + 2]
and ecx, 1
xor word [eax + 2], cx
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1014
jne 0x3018ea01
push 2
push 7
push dword [ebp - 0x183c]
call fcn.3001c120
mov cx, word [esi]
mov eax, dword [ebp - 0x183c]
shl cx, 0xf
sar cx, 0xf
shl ecx, 0xa
xor cx, word [eax]
and cx, 0x400
xor word [eax], cx
cmp dword [0x301e3340], 6
jl 0x3018da09
mov cx, word [esi]
mov eax, dword [ebp - 0x183c]
shl cx, 0xe
sar cx, 0xf
shl ecx, 9
xor cx, word [eax]
and cx, 0x200
xor word [eax], cx
cmp dword [ebp - 0xa24], 0
je case.0x3018a85b.4150
mov eax, dword [ebp - 0xa1c]
mov ecx, dword [0x301e4920]
imul eax, eax, 0x8c8
lea eax, [ecx + eax + 0x44c]
mov ecx, dword [ebp - 0x183c]
mov dword [ecx + 0x24], eax
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1014
jne 0x3018ea01
lea eax, [ebp - 0xaa4]
push eax
push dword [ebp - 0x183c]
push esi
call fcn.30188398
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1014
je 0x3018e091
jmp 0x3018ea01
cmp dword [ebp - 0x9d4], 0x1014
je 0x3018da96
cmp dword [ebp - 0x9d4], 0x1041
jne 0x3018ea01
lea eax, [ebp - 0xa58]
push eax
push dword [ebp - 0x1840]
lea eax, [ebp - 0x1800]
push eax
lea eax, [ebp - 0x17fc]
push eax
lea eax, [ebp - 0x1804]
push eax
push dword [ebp - 0x183c]
push esi
call fcn.30188490
test eax, eax
jne 0x3018dad5
or dword [ebp - 0x9e4], 0xffffffff
and dword [ebp - 0x1834], eax
mov eax, dword [ebp - 0xa58]
and dword [ebp - 0x9f4], 0
and dword [ebp - 0x9ec], 0
mov dword [ebp - 0x9f0], eax
mov eax, dword [ebp - 0x1840]
mov dword [ebp - 0x9f8], 4
jmp 0x3018e2d5
movsx eax, word [esi]
push 1
push 0
push eax
call fcn.3018854f
mov edi, dword [fcn.30001214]
mov ecx, eax
mov eax, dword [0x301e4920]
imul ecx, ecx, 0x8c8
lea ecx, [ecx + eax + 0x44c]
mov dword [ebp - 0x1840], ecx
mov ecx, dword [esi + 2]
mov ebx, 0xfa0
push ebx
push dword [eax + 0x158]
movsx eax, cx
push eax
call edi
mov ecx, dword [0x301e4920]
add eax, dword [ecx + 0x150]
mov ecx, dword [ebp - 0x1840]
mov dword [ecx + 0x18], eax
mov eax, dword [esi + 6]
mov ecx, dword [0x301e4920]
push ebx
push dword [ecx + 0x15c]
movsx eax, ax
push eax
call edi
mov ecx, dword [0x301e4920]
add eax, dword [ecx + 0x154]
mov ecx, dword [ebp - 0x1840]
mov dword [ecx + 0x1c], eax
mov eax, dword [esi + 0xa]
mov ecx, dword [0x301e4920]
push ebx
push dword [ecx + 0x158]
movsx eax, ax
push eax
call edi
mov ecx, dword [ebp - 0x1840]
mov dword [ecx + 0x20], eax
mov eax, dword [esi + 0xe]
mov ecx, dword [0x301e4920]
push ebx
push dword [ecx + 0x15c]
movsx eax, ax
push eax
call edi
mov ecx, dword [ebp - 0x1840]
mov dword [ecx + 0x24], eax
xor eax, eax
mov dword [ebp - 0x9f8], eax
mov dword [ebp - 0x9f4], eax
mov dword [ebp - 0x9f0], eax
mov dword [ebp - 0x9ec], eax
movsx eax, word [esi]
jmp 0x3018e2d5
mov eax, dword [ebp - 0x9d4]
sub eax, 0x1015
je 0x3018dc96
sub eax, 0x10
je 0x3018dc31
sub eax, 8
je 0x3018dc31
sub eax, 0x14
je 0x3018dc1c
or dword [ebp - 0x9e4], 0xffffffff
mov dword [0x301e3f5c], 1
jmp case.0x3018a85b.4150
mov eax, dword [ebp - 0x1840]
add eax, 4
push eax
push esi
call fcn.3018834c
jmp case.0x3018a85b.4150
mov eax, dword [ebp - 0x1848]
test eax, eax
je 0x3018ea01
add eax, 4
push eax
push esi
call fcn.3018834c
cmp dword [ebp - 0x9d4], 0x1025
jne case.0x3018a85b.4150
cmp dword [0x301e3340], 6
jge case.0x3018a85b.4150
mov eax, dword [ebp - 0x1848]
cmp word [eax + 8], 0
jne 0x3018dc7e
cmp word [eax + 0xa], 0
je case.0x3018a85b.4150
add eax, 0x11e
mov cx, word [eax]
and cl, 0x5f
or cx, 0x140
mov word [eax], cx
jmp case.0x3018a85b.4150
lea eax, [ebp - 0x18a0]
push eax
push dword [ebp - 0x9dc]
call fcn.30187a07
jmp 0x3018dc22
mov eax, dword [ebp - 0x1804]
test eax, eax
je 0x3018ea01
cmp dword [ebp - 0x9d4], 0x101d
jne 0x3018ea01
cmp ebx, 6
jl 0x3018dcd6
mov cx, word [esi + 0x1a]
jmp 0x3018dce9
mov eax, dword [esi + 4]
push 1
push eax
call fcn.300e4f79
mov ecx, eax
mov eax, dword [ebp - 0x1804]
mov di, word [eax]
mov dl, byte [esi]
and dl, 0xf
movzx dx, dl
and di, 0xfff0
or edx, edi
mov word [eax], dx
mov al, byte [esi + 1]
and al, 0xf
movzx dx, al
mov eax, dword [ebp - 0x1804]
mov di, word [eax]
and di, 0xff0f
shl edx, 4
or edx, edi
mov word [eax], dx
mov al, byte [esi + 2]
and al, 0xf
xor edx, edx
mov dh, al
mov eax, dword [ebp - 0x1804]
mov di, word [eax]
and di, 0xf0ff
or edx, edi
mov word [eax], dx
movzx eax, byte [esi + 3]
push eax
call fcn.301889ed
mov edx, dword [ebp - 0x1804]
mov dword [edx + 0xc], eax
mov dl, byte [esi + 0x18]
mov eax, dword [ebp - 0x1804]
add dl, dl
xor dl, byte [eax + 0x10]
and edx, 2
xor word [eax + 0x10], dx
mov eax, dword [ebp - 0x1804]
test byte [eax + 0x10], 2
je 0x3018dd73
mov byte [eax + 4], 0x4d
jmp 0x3018dd76
mov byte [eax + 4], cl
mov cl, byte [esi + 0x18]
mov eax, dword [ebp - 0x1804]
add cl, cl
xor cl, byte [eax + 0x10]
and ecx, 4
xor word [eax + 0x10], cx
cmp dword [0x301e3340], 6
jl 0x3018ddb1
mov cx, word [esi + 0x1c]
mov eax, dword [ebp - 0x1804]
shl cx, 3
xor cx, word [eax + 0x10]
and cx, 0x7f8
xor word [eax + 0x10], cx
jmp 0x3018ddd5
mov al, byte [esi + 0x18]
shr eax, 2
and eax, 7
push eax
call fcn.30024878
mov ecx, dword [ebp - 0x1804]
shl eax, 3
xor ax, word [ecx + 0x10]
and ax, 0x7f8
xor word [ecx + 0x10], ax
mov cx, word [esi + 0x18]
mov eax, dword [ebp - 0x1804]
shl cx, 6
xor cx, word [eax + 0x10]
and cx, 0x800
xor word [eax + 0x10], cx
cmp dword [0x301e3340], 6
mov eax, dword [ebp - 0x1804]
jl 0x3018de17
mov cx, word [esi + 0x18]
shr ecx, 1
xor cx, word [eax + 0x10]
and cx, 0x6000
xor word [eax + 0x10], cx
jmp case.0x3018a85b.4150
and byte [eax + 0x11], 0x9f
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x101d
jne 0x3018ea01
cmp dword [ebp - 0x17fc], 0
mov di, word [esi + 0x28]
jne 0x3018de65
call fcn.30188570
mov ecx, dword [ebp - 0x1800]
push 0
push 3
mov dword [ebp - 0x17fc], eax
push 0
mov dword [ecx + 0x14], eax
push 4
lea eax, [ebp - 0x1850]
push eax
call fcn.30187775
mov eax, dword [ebp - 0x17fc]
mov word [eax + 0x28], di
fld qword [esi]
mov eax, dword [ebp - 0x17fc]
fstp qword [eax]
mov eax, dword [ebp - 0x17fc]
fld qword [esi + 8]
fstp qword [eax + 8]
mov eax, dword [ebp - 0x17fc]
fld qword [esi + 0x10]
fstp qword [eax + 0x10]
mov eax, dword [ebp - 0x17fc]
fld qword [esi + 0x18]
fstp qword [eax + 0x18]
mov eax, dword [ebp - 0x17fc]
fld qword [esi + 0x20]
fstp qword [eax + 0x20]
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x101d
jne 0x3018ea01
mov eax, dword [ebp - 0x1800]
test eax, eax
je 0x3018ea01
movsx ecx, word [esi + 2]
mov dword [eax + 4], ecx
movsx eax, word [esi]
mov ecx, dword [ebp - 0x1800]
mov dword [ecx + 0x10], eax
movsx eax, word [esi + 4]
mov ecx, dword [ebp - 0x1800]
mov dword [ecx + 0xc], eax
mov cl, byte [esi + 6]
mov eax, dword [ebp - 0x1800]
xor cl, byte [eax]
and ecx, 1
xor word [eax], cx
mov cl, byte [esi + 6]
mov eax, dword [ebp - 0x1800]
xor cl, byte [eax]
and ecx, 2
xor word [eax], cx
mov cl, byte [esi + 6]
mov eax, dword [ebp - 0x1800]
xor cl, byte [eax]
and ecx, 4
xor word [eax], cx
cmp word [ebp - 0xb5e], 9
jae case.0x3018a85b.4150
mov eax, dword [ebp - 0x1800]
cmp dword [eax + 4], 1
je case.0x3018a85b.4150
and byte [eax + 1], 0xf7
mov eax, dword [ebp - 0x1800]
jmp 0x3018b337
cmp dword [ebp - 0x9d4], 0x101d
jne 0x3018ea01
mov eax, dword [ebp - 0x1800]
test eax, eax
je 0x3018ea01
movzx ecx, word [esi]
mov dword [eax + 0x1c], ecx
movzx eax, word [esi + 2]
mov ecx, dword [ebp - 0x1800]
mov dword [ecx + 0x20], eax
movzx eax, word [esi + 4]
mov ecx, dword [ebp - 0x1800]
mov dword [ecx + 0x24], eax
movzx eax, word [esi + 6]
mov ecx, dword [ebp - 0x1800]
mov dword [ecx + 0x28], eax
movzx eax, word [esi + 8]
mov ecx, dword [ebp - 0x1800]
mov dword [ecx + 0x2c], eax
movzx eax, word [esi + 0xa]
mov ecx, dword [ebp - 0x1800]
mov dword [ecx + 0x30], eax
movzx eax, word [esi + 0xc]
mov ecx, dword [ebp - 0x1800]
mov dword [ecx + 0x34], eax
movzx eax, word [esi + 0xe]
mov ecx, dword [ebp - 0x1800]
mov dword [ecx + 0x38], eax
mov cl, byte [esi + 0x10]
mov eax, dword [ebp - 0x1800]
shl cl, 3
xor cl, byte [eax]
and ecx, 8
xor word [eax], cx
mov cl, byte [esi + 0x10]
mov eax, dword [ebp - 0x1800]
shl cl, 3
xor cl, byte [eax]
and ecx, 0x10
xor word [eax], cx
mov cl, byte [esi + 0x10]
mov eax, dword [ebp - 0x1800]
shl cl, 3
xor cl, byte [eax]
and ecx, 0x20
xor word [eax], cx
mov cl, byte [esi + 0x10]
mov eax, dword [ebp - 0x1800]
shl cl, 3
xor cl, byte [eax]
and ecx, 0x40
xor word [eax], cx
mov cl, byte [esi + 0x10]
mov eax, dword [ebp - 0x1800]
shl cl, 3
xor cl, byte [eax]
and cx, 0x80
xor word [eax], cx
mov cx, word [esi + 0x10]
mov eax, dword [ebp - 0x1800]
shl cx, 3
xor cx, word [eax]
and cx, 0x100
xor word [eax], cx
mov cx, word [esi + 0x10]
mov eax, dword [ebp - 0x1800]
shl cx, 3
xor cx, word [eax]
and cx, 0x200
xor word [eax], cx
mov cx, word [esi + 0x10]
mov eax, dword [ebp - 0x1800]
shl cx, 3
xor cx, word [eax]
and cx, 0x400
xor word [eax], cx
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x101d
jne 0x3018ea01
movsx eax, word [esi]
mov dword [ebp - 0xa28], eax
jmp case.0x3018a85b.4150
mov eax, dword [ebp - 0x9d4]
cmp eax, 0x1014
je 0x3018e0be
cmp eax, 0x1002
je 0x3018e0be
cmp eax, 0x86a
jne 0x3018ea01
cmp eax, 0x1002
mov si, word [esi]
jne 0x3018e0e4
test si, si
je 0x3018ea01
cmp si, 1
je 0x3018ea01
cmp ebx, 6
jl 0x3018ea01
movsx eax, si
mov dword [ebp - 0xa0c], eax
jmp case.0x3018a85b.4150
mov edi, dword [ebp - 0x9d4]
mov ecx, dword [ebp - 0x183c]
mov eax, 0x1015
cmp edi, eax
jg 0x3018e185
je 0x3018e1cd
mov eax, edi
sub eax, 0x857
je 0x3018e135
sub eax, 0x13
je 0x3018e226
sub eax, 0x798
je 0x3018e226
sub eax, 0x12
je 0x3018e226
jmp 0x3018e19f
cmp ebx, 6
jge 0x3018e146
mov dword [0x301e3f5c], 1
jmp 0x3018e1c1
mov edi, dword [ebp - 0x1810]
add edi, 0x14
push edi
push esi
mov dword [ebp - 0xa4c], edi
call fcn.30189416
mov dword [ebp - 0x9f8], 2
xor eax, eax
mov dword [ebp - 0x9f4], eax
mov dword [ebp - 0x9f0], eax
mov dword [ebp - 0x9ec], eax
mov dword [ebp - 0x9e8], edi
jmp case.0x3018a85b.4150
mov eax, edi
sub eax, 0x1024
je 0x3018e2e0
sub eax, 0x1d
je 0x3018e21d
dec eax
dec eax
je 0x3018e1cd
mov eax, dword [0x301e4920]
add eax, 0x17b4
push 6
push eax
mov dword [0x301e3f5c], 1
mov dword [ebp - 0x1848], eax
call fcn.30011706
or dword [ebp - 0xa0c], 0xffffffff
jmp case.0x3018a85b.4150
mov eax, dword [0x301e4920]
add eax, 0x17b4
push 5
push eax
mov dword [ebp - 0x1848], eax
call fcn.30011706
lea eax, [ebp - 0x18a0]
push eax
push dword [ebp - 0x9dc]
call fcn.30187a07
mov ecx, dword [0x301e4920]
add ecx, 0x26c
cmp eax, ecx
jne 0x3018e2a5
mov eax, dword [ebp - 0x1848]
or byte [eax + 0x131], 0x10
jmp 0x3018e2a5
cmp ebx, 5
jl 0x3018e13a
mov edx, 0x86a
cmp edi, edx
jne 0x3018e255
cmp ebx, 6
jl 0x3018e13a
test ecx, ecx
jne 0x3018e255
cmp dword [ebp - 0xa0c], ecx
je 0x3018e13a
cmp dword [ebp - 0xa0c], 1
je 0x3018e13a
cmp dword [ebp - 0xa10], 0x1024
je 0x3018e2e5
mov eax, dword [0x301e4920]
xor ecx, ecx
add eax, 0x17b4
cmp edi, 0x1002
setne cl
mov dword [ebp - 0x1848], eax
dec ecx
and ecx, 0xfffffffb
add ecx, 6
push ecx
push eax
call fcn.30011706
mov eax, dword [ebp - 0x1848]
add eax, 0x114
mov cx, word [eax]
and cl, 0xdb
or ecx, 0x18
mov word [eax], cx
push dword [ebp - 0x1848]
push esi
call fcn.30189416
xor eax, eax
mov dword [ebp - 0x9f4], eax
mov dword [ebp - 0x9f0], eax
mov dword [ebp - 0x9ec], eax
mov eax, dword [ebp - 0x1848]
mov dword [ebp - 0x9f8], 2
mov dword [ebp - 0x9e8], eax
jmp case.0x3018a85b.4150
mov edx, 0x86a
cmp dword [ebp - 0xa0c], 0
jl 0x3018dc06
cmp dword [ebp - 0xa0c], 3
jg 0x3018dc06
jne 0x3018e30a
cmp ebx, 6
jl 0x3018dc06
mov eax, dword [ebp - 0xa0c]
xor ebx, ebx
sub eax, ebx
je 0x3018e3a4
dec eax
je 0x3018e375
dec eax
je 0x3018e34e
dec eax
jne 0x3018e3b3
mov eax, dword [0x301e4920]
add eax, 0x17b4
push 6
push eax
mov dword [ebp - 0x1848], eax
call fcn.30011706
mov eax, dword [ebp - 0x1848]
or byte [eax + 0x114], 0x3c
jmp 0x3018e3b3
mov eax, dword [0x301e4920]
add eax, 0x17b4
push 1
push eax
mov dword [ebp - 0x1848], eax
call fcn.30011706
mov eax, dword [ebp - 0x1848]
and byte [eax + 0x114], 0xc3
jmp 0x3018e3b3
lea eax, [ecx + 0x370]
cmp edi, edx
mov dword [ebp - 0x1848], eax
jne 0x3018e3b9
mov cx, word [ecx + 0x4e4]
and cx, 0x1f
je 0x3018e3ac
add eax, 0x11e
mov dx, word [eax]
and dl, 0xe0
or edx, ecx
mov word [eax], dx
jmp 0x3018e3c0
lea eax, [ecx + 0x210]
jmp 0x3018e37b
and byte [eax + 0x11e], 0xe0
mov eax, dword [ebp - 0x1848]
push eax
push esi
call fcn.30189416
mov ecx, dword [ebp - 0x1848]
push 2
pop eax
cmp dword [ebp - 0xa0c], eax
mov dword [ebp - 0x9f8], eax
mov dword [ebp - 0x9f4], ebx
mov dword [ebp - 0x9f0], ebx
mov dword [ebp - 0x9ec], ebx
mov dword [ebp - 0x9e8], ecx
jne 0x3018e42a
mov eax, dword [0x301e4920]
lea esi, [eax + 0x18d8]
lea edi, [eax + 0x162c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [0x301e4920]
lea esi, [eax + 0x162c]
lea edi, [eax + 0x1c10]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [0x301e4920]
or byte [eax + 0x1c1d], 0x10
jmp 0x3018e1c1
cmp dword [ebp - 0xa0c], 3
jne 0x3018e1c1
mov eax, dword [0x301e4920]
lea esi, [eax + 0x18d8]
lea edi, [eax + 0x1c10]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x3018e1c1
cmp ebx, 5
mov cx, word [esi]
jge 0x3018e466
inc ecx
cmp ebx, 5
jge 0x3018e466
cmp cx, 4
jl 0x3018e466
inc ecx
mov eax, dword [ebp - 0x9dc]
test eax, eax
jle 0x3018b3d5
movzx edx, word [ebp - 0xb5e]
push edx
push dword [ebp + eax*4 - 0x18a4]
call fcn.301877eb
test eax, eax
jne 0x3018e4a5
mov eax, dword [edi]
test eax, eax
je 0x3018ea01
movzx eax, word [eax + 2]
movsx edx, cx
cmp edx, eax
jg 0x3018ea01
mov eax, dword [ebp - 0x9d4]
sub eax, 0x101d
je 0x3018e59e
sub eax, 8
jne 0x3018ea01
mov eax, dword [ebp - 0x1848]
test eax, eax
je 0x3018ea01
mov dl, byte [eax + 0x114]
shr dl, 2
and edx, 0xf
jne 0x3018e522
mov eax, dword [0x301e4920]
mov word [eax + 0x1630], cx
mov eax, dword [0x301e4920]
and byte [eax + 0x1638], 0xfe
mov eax, dword [0x301e4920]
and byte [eax + 0x1639], 0xf7
mov eax, dword [0x301e4920]
lea esi, [eax + 0x162c]
lea edi, [eax + 0x1778]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp dword [0x301e3340], 6
jl 0x3018e528
jmp case.0x3018a85b.4150
cmp dx, 0xf
jne 0x3018e551
mov eax, dword [0x301e4920]
mov word [eax + 0x1c14], cx
mov eax, dword [0x301e4920]
and byte [eax + 0x1c1c], 0xfe
mov eax, dword [0x301e4920]
and byte [eax + 0x1c1d], 0xf7
jmp case.0x3018a85b.4150
mov word [eax + 0x128], cx
mov eax, dword [ebp - 0x1848]
and byte [eax + 0x130], 0xfe
cmp dx, 0xc
mov eax, dword [ebp - 0x1848]
jne 0x3018e592
add eax, 0x130
mov cx, word [eax]
and cx, 0x7f8
cmp cx, 0x7f0
jne case.0x3018a85b.4150
or byte [eax + 1], 8
jmp case.0x3018a85b.4150
and byte [eax + 0x131], 0xf7
jmp case.0x3018a85b.4150
mov eax, dword [ebp - 0x1804]
mov word [eax + 8], cx
mov eax, dword [ebp - 0x1804]
and byte [eax + 0x10], 0xfe
jmp case.0x3018a85b.4150
lea eax, [ebp - 0xa04]
push eax
lea eax, [ebp - 0xb40]
push eax
push esi
call fcn.30187fe0
cmp dword [ebp - 0x9d4], 0x85a
jne 0x3018e5fe
push dword [ebp - 0xb54]
lea eax, [ebp - 0x1850]
push dword [ebp - 0xa04]
push eax
call fcn.30187841
cmp eax, 0xffffffff
mov dword [ebp - 0xa04], eax
je case.0x3018a85b.4150
push dword [ebp - 0xa04]
lea eax, [ebp - 0xb40]
push eax
call fcn.3018802d
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1025
jne 0x3018ea01
cmp dword [edi], 0
je 0x3018ea01
push dword [ebp - 0x1848]
push esi
call fcn.30187eb7
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1025
jne 0x3018ea01
mov cx, word [esi]
movsx eax, cx
test eax, eax
jle 0x3018e69f
cmp eax, 4
jle 0x3018e668
cmp eax, 7
je 0x3018e668
cmp eax, 0xc
jne 0x3018e69f
mov eax, dword [ebp - 0x1848]
shl ecx, 2
add eax, 0x114
xor cl, byte [eax]
and ecx, 0x3c
xor word [eax], cx
mov al, byte [esi + 2]
mov ecx, dword [ebp - 0x1848]
mov byte [ecx + 0x115], al
movsx eax, word [esi + 4]
mov ecx, dword [ebp - 0x1848]
mov dword [ecx + 0x118], eax
jmp 0x3018e6a9
mov dword [0x301e3f5c], 1
push dword [ebp - 0x1848]
call fcn.3001164a
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1002
jne 0x3018ea01
mov eax, dword [esi]
cmp ebx, 5
mov ebx, dword [fcn.30001214]
jl 0x3018e770
mov ecx, dword [0x301e4920]
push 0xfa0
push dword [ecx + 0x158]
push eax
call ebx
mov ecx, dword [esi + 4]
mov edi, eax
mov eax, dword [0x301e4920]
add edi, dword [eax + 0x150]
push 0xfa0
push dword [eax + 0x15c]
mov dword [ebp - 0xaf4], edi
push ecx
call ebx
mov ecx, dword [esi + 8]
mov ebx, eax
mov eax, dword [0x301e4920]
add ebx, dword [eax + 0x154]
push 0xfa0
push dword [eax + 0x158]
mov dword [ebp - 0xaf0], ebx
push ecx
call dword [fcn.30001214]
mov esi, dword [esi + 0xc]
mov ecx, eax
mov eax, dword [0x301e4920]
add ecx, dword [eax + 0x150]
push 0xfa0
push dword [eax + 0x15c]
mov dword [ebp - 0xad8], ecx
push esi
call dword [fcn.30001214]
mov ecx, dword [0x301e4920]
add eax, dword [ecx + 0x154]
jmp 0x3018e7da
mov ecx, dword [0x301e4518]
push 0x5a0
push dword [ecx + 0x1c]
push eax
call ebx
mov ecx, dword [0x301e4518]
push 0x5a0
push dword [ecx + 0x20]
mov edi, eax
mov eax, dword [esi + 4]
push eax
mov dword [ebp - 0xaf4], edi
call ebx
mov ecx, dword [0x301e4518]
push 0x5a0
push dword [ecx + 0x1c]
mov ebx, eax
mov eax, dword [esi + 8]
push eax
mov dword [ebp - 0xaf0], ebx
call dword [fcn.30001214]
mov esi, dword [esi + 0xc]
mov dword [ebp - 0xad8], eax
mov eax, dword [0x301e4518]
push 0x5a0
push dword [eax + 0x20]
push esi
call dword [fcn.30001214]
mov ecx, dword [0x301e4920]
push eax
push dword [ebp - 0xad8]
add ecx, 0x17b4
push ebx
push edi
push ecx
mov dword [ebp - 0xad4], eax
mov dword [ebp - 0x1848], ecx
call fcn.30154b93
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x102d
jne 0x3018ea01
mov al, byte [esi + 2]
xor ecx, ecx
inc eax
shl al, 4
and ax, 0xf0
cmp byte [esi], 2
sete cl
and cl, 1
xor edx, edx
mov dh, cl
mov cl, byte [esi + 1]
and cl, 0xf
movzx cx, cl
or eax, edx
or eax, ecx
mov ecx, dword [ebp - 0xb14]
and cx, 0xfe00
or eax, ecx
mov ecx, dword [ebp - 0x1848]
mov word [ebp - 0xb14], ax
mov word [ecx + 0x140], ax
jmp case.0x3018a85b.4150
mov eax, dword [ebp - 0x9d4]
sub eax, 0x1002
je 0x3018e92d
sub eax, 0x12
je 0x3018e88b
dec eax
je 0x3018e8e4
sub eax, 0x10
je 0x3018e8cd
sub eax, 0x1c
jne 0x3018ea01
cmp dword [ebp - 0xa10], 0x1035
jne 0x3018e92d
cmp dword [ebp - 0xa68], 2
jl 0x3018e8b2
xor eax, eax
inc eax
mov dword [0x301e3f5c], eax
mov dword [ebp - 0xa68], eax
mov eax, dword [ebp - 0xa68]
mov ecx, dword [0x301e4920]
imul eax, eax, 0x8c8
lea eax, [eax + ecx + 0x474]
jmp 0x3018e937
mov eax, dword [ebp - 0x1848]
lea ecx, [eax + 0x28]
mov dword [ebp - 0x1834], ecx
test byte [esi + 2], 1
jne 0x3018e93d
jmp 0x3018e91d
lea eax, [ebp - 0x18a0]
push eax
push dword [ebp - 0x9dc]
call fcn.30187a07
lea ecx, [eax + 0x28]
mov dword [ebp - 0x1834], ecx
mov cx, word [esi + 2]
test cl, 1
jne 0x3018e93d
cmp ebx, 4
jg 0x3018e916
or ecx, 1
mov word [esi + 2], cx
jmp 0x3018e93d
and byte [eax + 0x111], 0xdf
mov cx, word [eax + 4]
and cl, 0x1f
or ecx, 0x10
mov word [eax + 4], cx
jmp 0x3018e93d
mov eax, dword [0x301e4920]
add eax, 0x160
mov dword [ebp - 0x1834], eax
mov cx, word [esi + 2]
mov eax, dword [ebp - 0x1834]
shl cx, 9
xor cx, word [eax + 6]
mov dword [ebp - 0x9f8], 7
and cx, 0x400
xor word [eax + 6], cx
mov cx, word [esi + 2]
mov eax, dword [ebp - 0x1834]
shl cx, 0xb
xor cx, word [eax + 6]
and cx, 0x800
xor word [eax + 6], cx
mov eax, dword [ebp - 0x1834]
mov dx, word [eax + 6]
mov cx, word [esi]
shl cx, 0xc
and dh, 0xf
or ecx, edx
mov word [eax + 6], cx
xor eax, eax
mov dword [ebp - 0x9f4], eax
mov dword [ebp - 0x9f0], eax
mov dword [ebp - 0x9ec], eax
mov eax, dword [ebp - 0x1834]
jmp 0x3018e2d5
cmp dword [ebp - 0x9d4], 0x102d
jne 0x3018ea01
mov eax, dword [ebp - 0x1848]
mov cx, word [eax + 4]
and cl, 0x3f
or ecx, 0x30
mov word [eax + 4], cx
mov cx, word [esi]
mov word [eax + 0x10], cx
mov cx, word [esi + 2]
mov word [eax + 0x12], cx
jmp case.0x3018a85b.4150
mov eax, dword [ebp - 0x9d4]
sub eax, 0x1015
je 0x3018ea1f
sub eax, 0x10
je 0x3018ea10
sub eax, 8
je 0x3018ea10
mov dword [0x301e3f5c], 1
jmp case.0x3018a85b.4150
mov eax, dword [ebp - 0x1848]
or byte [eax + 0x114], 1
jmp 0x3018ea31
lea eax, [ebp - 0x18a0]
push eax
push dword [ebp - 0x9dc]
call fcn.30187a07
mov cx, word [eax + 4]
and cl, 0xf3
or ecx, 3
mov word [eax + 4], cx
mov cx, word [esi]
mov word [eax + 8], cx
mov cx, word [esi + 2]
mov word [eax + 0xa], cx
jmp case.0x3018a85b.4150
cmp dword [ebp - 0xa6c], 0
je 0x3018ea67
inc dword [ebp - 0x9e0]
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9dc], 0x14
jge 0x3018b3d5
mov ecx, dword [ebp - 0xa10]
mov eax, 0x1025
cmp ecx, eax
jg 0x3018eaee
je 0x3018eb19
add eax, 0xfffffff7
cmp ecx, eax
jg 0x3018eace
je 0x3018a919
cmp ecx, 0x857
je 0x3018eb19
cmp ecx, 0x1001
jle 0x3018eb72
cmp ecx, 0x1004
jle 0x3018eb19
cmp ecx, 0x1006
je 0x3018eb19
cmp ecx, 0x1013
jle 0x3018eb72
cmp ecx, 0x1015
jmp 0x3018eb17
mov eax, ecx
sub eax, 0x101d
je 0x3018eb19
sub eax, 4
je 0x3018a919
sub eax, 3
je 0x3018a919
jmp 0x3018eb72
mov eax, 0x1041
cmp ecx, eax
jg 0x3018eb5f
je 0x3018eb19
cmp ecx, 0x102d
je 0x3018eb19
cmp ecx, 0x1032
je 0x3018eb19
cmp ecx, 0x103b
jle 0x3018eb72
cmp ecx, 0x103d
jg 0x3018eb72
cmp dword [ebp - 0x9f8], 0xffffffff
je 0x30190198
lea eax, [ebp - 0x1850]
push eax
lea eax, [ebp - 0x9f8]
push eax
call fcn.30186f78
test eax, eax
je 0x30190198
mov eax, dword [ebp - 0x9d4]
mov ecx, dword [ebp - 0x9dc]
mov dword [ebp + ecx*4 - 0x18a0], eax
mov eax, dword [ebp - 0xa10]
jmp 0x3018b520
mov eax, ecx
sub eax, 0x1043
je 0x3018eb19
sub eax, 0x20
je 0x3018eb19
sub eax, 3
je 0x3018eb19
mov dword [0x301e3f5c], 1
jmp 0x3018a919
cmp dword [ebp - 0x9dc], 0
jle 0x3018b3d5
dec dword [ebp - 0x9dc]
mov eax, dword [ebp - 0x9d4]
mov ecx, dword [ebp - 0x9dc]
mov edi, dword [ebp + ecx*4 - 0x18a0]
movsx eax, ax
mov ecx, 0x1014
sub eax, ecx
mov dword [ebp - 0x9d4], edi
je 0x3018eea5
dec eax
je 0x3018ee7a
sub eax, 0x10
je 0x3018ec08
sub eax, 8
je 0x3018ec08
sub eax, 0x14
je 0x3018ebfc
dec eax
dec eax
jne 0x3018eeda
mov eax, dword [ebp - 0x1820]
mov esi, dword [0x301e4920]
mov edi, dword [eax + 0xc]
add esi, 0x18d8
add edi, 8
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x3018eeda
and dword [ebp - 0x1840], 0
jmp 0x3018eeda
cmp edi, 0x1002
je 0x3018ec39
cmp edi, ecx
je 0x3018ec39
cmp edi, 0x1041
je 0x3018ec39
cmp edi, 0x86a
je 0x3018ec39
mov eax, dword [0x301e4920]
add eax, 0x17b4
cmp dword [ebp - 0x1848], eax
jmp 0x3018ed30
mov esi, dword [ebp - 0x1848]
mov al, byte [esi + 0x114]
shr al, 2
and eax, 0xf
movsx edx, ax
cmp edx, 6
jg 0x3018ed03
je 0x3018ec7e
test edx, edx
je 0x3018ed24
cmp edx, 1
je 0x3018ecce
jle 0x3018ed1a
cmp edx, 3
jle 0x3018ed53
cmp edx, 4
jne 0x3018ed1a
cmp edi, 0x1002
je 0x3018ec92
cmp edi, 0x86a
jne 0x3018eeda
mov eax, dword [ebp - 0x183c]
lea ecx, [eax + 0x210]
cmp esi, ecx
je 0x3018eeda
add eax, 0x370
cmp esi, eax
je 0x3018eeda
cmp dword [ebp - 0xb64], 0
push 0x160
jne 0x3018ecdf
call fcn.300131a4
mov dword [ebp - 0xb64], eax
jmp 0x3018ecf0
mov edi, dword [0x301e4920]
add edi, 0x1654
jmp 0x3018ee12
call fcn.300131a4
mov ecx, dword [ebp - 0xa50]
mov dword [ecx + 0x110], eax
mov esi, dword [ebp - 0x1848]
mov dword [ebp - 0xa50], eax
mov edi, eax
jmp 0x3018ee12
cmp edx, 7
je 0x3018ed53
cmp edx, 0xc
je 0x3018ed24
cmp edx, 0xf
je 0x3018ed24
cmp edx, 0x1066
je 0x3018ed47
mov dword [0x301e3f5c], 1
mov eax, dword [0x301e4920]
add eax, 0x17b4
cmp esi, eax
jne 0x3018eeda
lea eax, [ebp - 0x1850]
push eax
call fcn.3018702e
jmp 0x3018eeda
and dword [ebp - 0x1830], 0
jmp 0x3018eeda
cmp ebx, 2
jne 0x3018eda8
cmp dword [0x301e68e4], 1
je 0x3018eda8
add esi, 0x11c
mov ax, word [esi]
mov cl, al
shr cl, 1
push edx
or ecx, eax
xor cl, al
and ecx, 1
xor ecx, eax
mov word [esi], cx
mov eax, dword [ebp - 0x1848]
and byte [eax + 0x11c], 0xfd
mov esi, dword [ebp - 0x1848]
call fcn.30188a0f
imul eax, eax, 0x160
mov ecx, dword [0x301e4920]
lea edi, [eax + ecx + 0x84c]
jmp 0x3018ee12
cmp ebx, 5
jge 0x3018ee1c
mov ecx, dword [0x301e4920]
mov bl, byte [ecx + 0x268]
mov edi, 0xff
and bx, di
cmp bx, 1
jbe 0x3018edf2
xor ecx, ecx
cmp ax, 3
setne cl
add ecx, 8
shl ecx, 2
xor cl, byte [esi + 0x114]
and ecx, 0x3c
xor word [esi + 0x114], cx
mov esi, dword [ebp - 0x1848]
mov ecx, dword [0x301e4920]
push edx
call fcn.30188a0f
imul eax, eax, 0x160
mov dl, byte [ecx + 0x268]
and edx, edi
imul edx, edx, 0x8c8
add eax, ecx
lea edi, [edx + eax - 0x7c]
push 0x58
pop ecx
rep movsd dword es:[edi], dword [esi]
jmp 0x3018eeda
mov ecx, dword [ebp - 0x1840]
cmp ecx, dword [ebp - 0xa74]
je 0x3018ee55
xor ecx, ecx
cmp ax, 3
setne cl
add ecx, 8
shl ecx, 2
xor cl, byte [esi + 0x114]
and ecx, 0x3c
xor word [esi + 0x114], cx
mov ecx, dword [ebp - 0x1840]
mov esi, dword [ebp - 0x1848]
test ecx, ecx
jne 0x3018ee65
mov dword [0x301e3f5c], 1
jmp 0x3018eeda
push edx
call fcn.30188a0f
imul eax, eax, 0x160
lea edi, [eax + ecx + 0x400]
jmp 0x3018ee12
mov esi, dword [0x301e4920]
lea eax, [ebp - 0x18a0]
push eax
push dword [ebp - 0x9dc]
add esi, 0x18d8
call fcn.30187a07
mov edi, eax
add edi, 0x114
jmp 0x3018ebf3
cmp dword [ebp - 0xaa4], 0
je 0x3018eeda
mov ecx, dword [ebp - 0x183c]
mov ax, word [ecx]
and dword [ebp - 0xaa4], 0
test al, 0x42
je 0x3018eeda
cmp byte [ecx + 0x769], 0xff
jne 0x3018eeda
cmp byte [ecx + 0x76e], 0
jne 0x3018eeda
or ah, 8
mov word [ecx], ax
lea eax, [ebp - 0x1850]
push eax
call fcn.30187005
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1014
je 0x3018ef07
cmp dword [ebp - 0x9d4], 0x1041
jne 0x3018ea01
mov eax, dword [ebp - 0xa68]
push 1
push 0
inc eax
push eax
call fcn.3018854f
mov dword [ebp - 0xa68], eax
jmp case.0x3018a85b.4150
cmp dword [ebp - 0x9d4], 0x1025
jne 0x3018ea01
cmp byte [0x301e4d12], 0
movzx eax, byte [esi + 2]
push eax
lea ecx, [ebp - 0x650]
push ecx
push eax
je 0x3018ef76
add esi, 3
push esi
push dword [0x301e8b20]
call fcn.300c8b6f
lea ecx, [ebp - 0x650]
push ecx
push eax
call fcn.3001b9a9
mov ecx, dword [ebp - 0xa4c]
mov dword [ecx + 0x154], eax
jmp case.0x3018a85b.4150
lea eax, [esi + 3]
push eax
push dword [0x301e8b20]
call fcn.300c8b6f
lea eax, [ebp - 0x650]
push eax
movzx eax, byte [esi + 2]
push eax
call fcn.3001b9a9
mov ecx, dword [ebp - 0x1848]
jmp 0x3018ef6b
call fcn.300d6875
test eax, eax
je 0x3018b3da
jmp case.0x3018a85b.4150
mov eax, dword [0x301e3348]
cmp eax, 1
je 0x3018efbc
cmp eax, 4
jne case.0x3018a85b.4150
call fcn.30055e8d
mov eax, dword [0x301e4524]
push dword [eax + 0x40]
call fcn.30056487
call fcn.30046fde
push eax
call fcn.300120a2
mov edi, eax
push esi
push edi
call fcn.30188c3f
push edi
call fcn.300120c4
push edi
call fcn.3004c93c
push edi
call fcn.30053f15
call fcn.30055ea6
and dword [ebp - 0xa6c], 0
jmp 0x30189e1d
push 5
jmp 0x3019018d
lea eax, [ebp - 0x1850]
push eax
call fcn.30187950
mov eax, dword [ebp - 0xa30]
cmp eax, ebx
je 0x3018f028
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [ebp - 0xa24], ebx
je 0x3018f03f
push 0x3019038c
push 0x8000
call fcn.30122c1a
cmp dword [ebp - 0x9e0], ebx
jg 0x3018f04f
cmp dword [ebp - 0x9dc], ebx
jle 0x3018f059
mov dword [0x301e3f5c], 1
mov eax, dword [0x301e4920]
cmp byte [eax + 0x268], 0
jne 0x3018f090
push ebx
call fcn.300115a1
mov ecx, dword [0x301e4920]
mov dword [ebp - 0x183c], eax
mov dword [ecx + 0x40c], eax
mov eax, dword [0x301e4920]
mov byte [eax + 0x268], 1
mov eax, dword [0x301e4920]
lea ecx, [eax + 0x448]
cmp dword [ecx], ebx
jne 0x3018f0b0
push dword [ebp - 0xa74]
mov dword [ecx], 1
call fcn.30011d92
mov eax, dword [0x301e4920]
mov ecx, dword [eax + 0x40c]
mov dword [0x301e4698], ecx
mov ecx, dword [eax + 0x410]
mov dword [0x301e42e4], ecx
mov ecx, dword [ebp - 0xa60]
mov dword [eax + 0x444], ecx
mov eax, dword [0x301e4920]
mov esi, dword [eax + 0x434]
cmp esi, ebx
mov dword [ebp - 0xa04], ebx
je 0x3018f1f7
mov eax, dword [esi + 4]
xor ebx, ebx
cmp eax, ebx
jl 0x3018f10d
cmp eax, 0xa
jge 0x3018f10d
mov ecx, dword [0x301e4920]
mov eax, dword [ecx + eax*4 + 0x40c]
mov dword [esi + 4], eax
jmp 0x3018f110
mov dword [esi + 4], ebx
mov eax, dword [esi + 0x1c]
mov edi, dword [esi + 0x14]
and eax, 7
cmp eax, 2
je 0x3018f123
cmp eax, 3
jne 0x3018f17d
cmp edi, 1
jl 0x3018f144
mov eax, dword [0x301e4920]
cmp edi, dword [eax + 0x438]
jg 0x3018f144
lea eax, [edi - 1]
push eax
call fcn.30159ade
test byte [eax + 0x1c], 7
je 0x3018f147
xor ebx, ebx
inc ebx
test ebx, ebx
je 0x3018f17d
push 0
push 0x30303030
mov dword [0x301e3f5c], 1
call dword [sym.imp.MSO.DLL_Ordinal_6848]
push esi
call fcn.30159940
push 0
push esi
call fcn.3004d003
mov eax, dword [0x301e4920]
dec dword [eax + 0x438]
jmp 0x3018f1df
test edi, edi
jle 0x3018f1ba
test byte [esi + 0x1c], 0x40
je 0x3018f18d
and dword [esi + 0x14], 0
jmp 0x3018f1ba
dec edi
push edi
call fcn.30159ade
mov dword [esi + 0x14], eax
or dword [eax + 0x1c], 0x40
push 4
lea eax, [esi + 0x12a]
pop ecx
or byte [eax + 1], 2
add eax, 0x18
dec ecx
jne 0x3018f1a4
mov eax, dword [0x301e491c]
or byte [eax + 0xf1], 0x40
mov eax, dword [esi + 0x1c]
and eax, 7
cmp al, 3
jne 0x3018f1e5
mov eax, dword [esi + 0x18]
mov al, byte [eax]
and al, 7
cmp al, 4
jne 0x3018f1e5
push esi
mov dword [0x301e3f5c], 1
call fcn.301b0c86
mov esi, dword [ebp - 0xa04]
mov dword [ebp - 0xa04], esi
mov esi, dword [esi]
test esi, esi
jne 0x3018f0ed
xor ebx, ebx
xor edi, edi
inc edi
cmp dword [0x301e3348], edi
jne 0x3018f287
push dword [ebp - 0xa7c]
lea eax, [ebp - 0xb08]
push dword [ebp - 0xaac]
push eax
call fcn.30188d71
cmp dword [0x301e3340], 5
jge 0x3018f287
mov eax, dword [0x301e4920]
lea ecx, [eax + 0x148]
cmp dword [ecx], ebx
jne 0x3018f287
cmp dword [eax + 0x14c], ebx
jne 0x3018f287
mov eax, dword [0x301e4bd0]
mov esi, dword [ebp - 0xb00]
add eax, 0x81
movzx edx, word [eax]
sub edx, dword [ebp - 0xb08]
push ecx
lea edx, [edx + esi - 1]
mov dword [ebp - 0xb10], edx
movzx eax, word [eax]
sub eax, dword [ebp - 0xb04]
mov edx, dword [ebp - 0xafc]
lea eax, [edx + eax - 1]
mov dword [ebp - 0xb0c], eax
lea eax, [ebp - 0xb10]
push eax
call fcn.3001b294
mov eax, dword [0x301e42e4]
cmp eax, ebx
je 0x3018f2b5
test byte [eax], 0x10
je 0x3018f2b5
push ebx
push 0xd
call fcn.30012648
mov ecx, dword [0x301e42e4]
inc eax
cdq
sub eax, edx
sar eax, 1
inc eax
mov dword [ecx + 8], eax
mov eax, dword [0x301e42e4]
and byte [eax], 0xef
mov esi, 0x201
cmp dword [0x301e68e4], esi
jne 0x3018f2fe
mov eax, dword [0x301e4920]
or word [eax + 0x1770], di
mov eax, dword [0x301e4698]
mov cx, word [eax + 4]
and ch, 0x3f
cmp cx, 3
jne 0x3018f2fe
mov eax, dword [eax + 0x24]
add eax, 0x28
push eax
call fcn.30013a6b
mov eax, dword [0x301e4698]
mov eax, dword [eax + 0x24]
push ebx
add eax, 0x28
push eax
call fcn.3001396d
mov eax, dword [0x301e68e4]
cmp eax, esi
je 0x3018f5d8
cmp eax, 0x202
je 0x3018f5d8
cmp eax, 0x580
je 0x3018f5d8
cmp eax, 0x680
je 0x3018f5d8
push ebx
push 0xd
mov dword [ebp - 0x9e0], ebx
call fcn.30012648
mov ecx, eax
mov eax, dword [0x301e4698]
cmp eax, ebx
mov dword [ebp - 0xa04], ecx
je 0x3018f35a
test byte [eax + 1], 0x40
je 0x3018f35a
lea eax, [ecx + ecx]
mov dword [ebp - 0xa04], eax
mov eax, dword [0x301e4920]
mov esi, dword [eax + 0x434]
xor edi, edi
inc edi
xor ebx, ebx
jmp 0x3018f416
test byte [esi + 0x1c], 7
je 0x3018f386
mov dword [esi + 0x144], ebx
mov dword [esi + 0x12c], ebx
jmp 0x3018f40e
mov dword [esi + 0x12c], edi
mov eax, dword [esi + 0x134]
cmp eax, ebx
je 0x3018f3c2
movzx ecx, word [eax]
inc ecx
inc ecx
push ecx
push dword [ebp - 0xa48]
push eax
call fcn.30055d91
mov eax, dword [ebp - 0xa48]
movzx ecx, word [eax]
push ebx
lea ecx, [ecx + ecx + 4]
push ecx
push eax
push 3
push ebx
push edi
push ebx
call fcn.30017d76
mov eax, dword [esi + 0x154]
cmp eax, dword [ebp - 0x9e0]
mov dword [esi + 0x144], edi
jle 0x3018f3dc
mov dword [ebp - 0x9e0], eax
mov eax, dword [0x301e4698]
cmp eax, ebx
je 0x3018f406
test byte [eax + 1], 0x40
je 0x3018f406
mov eax, dword [esi + 0x184]
inc edi
cmp eax, dword [ebp - 0x9e0]
mov dword [esi + 0x174], edi
jle 0x3018f406
mov dword [ebp - 0x9e0], eax
or byte [esi + 0x15b], 2
inc edi
mov dword [esi + 0x15c], ebx
mov esi, dword [esi]
cmp esi, ebx
jne 0x3018f36f
mov eax, dword [0x301e491c]
or byte [eax + 0xf1], 0x40
mov eax, dword [0x301e4920]
mov eax, dword [eax + 0x434]
cmp eax, ebx
je 0x3018f44d
mov eax, dword [eax + 0x16c]
cmp eax, dword [ebp - 0x9e0]
jle 0x3018f44d
mov dword [ebp - 0x9e0], eax
push 1
push 1
push dword [ebp - 0x9e0]
push ebx
call fcn.3001bb0e
push ebx
push 1
push dword [ebp - 0xa04]
push ebx
call fcn.3001bb0e
mov eax, dword [0x301e4920]
mov dword [0x301df1bc], ebx
mov esi, dword [eax + 0x434]
cmp esi, ebx
je 0x3018f5ad
test byte [esi + 0x1c], 7
jne 0x3018f5a3
movzx edx, byte [esi + 0x159]
mov eax, dword [esi + 0x144]
mov edi, dword [esi + 0x15c]
movzx ecx, byte [esi + 0x141]
movzx ebx, byte [esi + 0x129]
mov dword [ebp - 0xa58], edx
xor edx, edx
cmp dword [0x301df1a8], edx
je 0x3018f4f0
mov dword [ebp - 0xa8c], eax
mov dword [ebp - 0xa90], eax
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x5c], eax
mov eax, dword [0x301df1b8]
dec eax
mov dword [ebp - 0xa88], 1
mov dword [ebp - 0xa84], eax
mov dword [ebp + 0x68], edx
mov dword [ebp + 0x64], edx
jmp 0x3018f51e
mov dword [ebp - 0xa84], eax
mov dword [ebp - 0xa88], eax
mov dword [ebp + 0x68], eax
mov dword [ebp + 0x64], eax
mov eax, dword [0x301df1c8]
dec eax
mov dword [ebp - 0xa90], 1
mov dword [ebp - 0xa8c], eax
mov dword [ebp + 0x60], edx
mov dword [ebp + 0x5c], edx
lea eax, [ebp - 0xa90]
push eax
push ecx
call fcn.300ccb67
lea eax, [ebp + 0x5c]
push eax
push ebx
call fcn.300ccb67
mov eax, dword [0x301e4920]
cmp esi, dword [eax + 0x434]
jne 0x3018f5a3
cmp dword [0x301df1a8], 0
je 0x3018f56f
mov eax, dword [0x301df1b8]
dec eax
mov dword [ebp - 0xa8c], edi
mov dword [ebp - 0xa90], edi
mov dword [ebp - 0xa88], 1
mov dword [ebp - 0xa84], eax
jmp 0x3018f591
mov eax, dword [0x301df1c8]
dec eax
mov dword [ebp - 0xa84], edi
mov dword [ebp - 0xa88], edi
mov dword [ebp - 0xa90], 1
mov dword [ebp - 0xa8c], eax
lea eax, [ebp - 0xa90]
push eax
push dword [ebp - 0xa58]
call fcn.300ccb67
mov esi, dword [esi]
test esi, esi
jne 0x3018f485
xor eax, eax
cmp dword [ebp - 0x9e0], eax
jle 0x3018f75d
push eax
push eax
call fcn.3001ab6a
push dword [ebp - 0xa04]
push dword [ebp - 0x9e0]
call fcn.3001ab6a
jmp 0x3018f75d
cmp dword [0x301df2f0], ebx
mov dword [ebp - 0x9e0], ebx
jle 0x3018f611
mov eax, dword [0x301df2fc]
dec eax
push eax
push dword [0x301df2f8]
call fcn.30056021
push eax
mov eax, dword [0x301df2f0]
dec eax
push eax
push dword [0x301df2f4]
call fcn.30056021
push eax
call fcn.3001ab6a
mov eax, dword [0x301e3348]
cmp eax, edi
je 0x3018f61f
cmp eax, 4
jne 0x3018f680
mov eax, dword [0x301e4698]
cmp eax, ebx
je 0x3018f67a
mov ax, word [eax + 4]
and ah, 0x3f
cmp ax, 5
jne 0x3018f67a
push dword [0x301df1a8]
push dword [0x301df1bc]
call fcn.3002edf2
test eax, eax
je 0x3018f680
push dword [0x301df1a8]
lea eax, [ebp - 0xb20]
push edi
push ebx
push eax
mov eax, dword [0x301df1bc]
push eax
push eax
call fcn.3001f124
push dword [0x301df1a8]
mov eax, dword [0x301df1bc]
push edi
push eax
push eax
call fcn.3001bb0e
jmp 0x3018f680
mov dword [0x301df1bc], ebx
mov eax, dword [0x301e4920]
mov esi, dword [eax + 0x434]
cmp esi, ebx
je 0x3018f75d
mov edi, 0x200
xor ebx, ebx
test byte [esi + 0x1c], 7
je 0x3018f6b7
mov dword [esi + 0x144], ebx
mov dword [esi + 0x15c], ebx
mov dword [esi + 0x12c], ebx
jmp 0x3018f753
cmp dword [0x301e68e4], 0x201
je 0x3018f6cb
cmp dword [esi + 0x144], ebx
jne 0x3018f727
cmp dword [0x301df1a8], ebx
je 0x3018f6f8
inc dword [ebp - 0x9e0]
push dword [ebp - 0x9e0]
call fcn.3002edd0
test eax, eax
je 0x3018f6d3
mov eax, dword [ebp - 0x9e0]
cmp eax, dword [0x301df1bc]
je 0x3018f6d3
jmp 0x3018f71b
inc dword [ebp - 0x9e0]
push dword [ebp - 0x9e0]
call fcn.3002edae
test eax, eax
je 0x3018f6f8
mov eax, dword [ebp - 0x9e0]
cmp eax, dword [0x301df1bc]
je 0x3018f6f8
mov dword [esi + 0x12c], eax
mov dword [esi + 0x144], eax
mov eax, dword [0x301df1bc]
or word [esi + 0x12a], di
or word [esi + 0x142], di
or word [esi + 0x15a], di
mov dword [esi + 0x15c], eax
mov eax, dword [0x301e491c]
or byte [eax + 0xf1], 0x40
mov esi, dword [esi]
cmp esi, ebx
jne 0x3018f69a
mov ecx, dword [0x301e4920]
mov ax, word [ecx + 0x268]
mov dl, al
xor dh, dh
cmp dx, 1
jbe 0x3018f7db
mov edx, dword [0x301e4698]
xor ebx, ebx
cmp word [edx + 4], 5
sete bl
xor ah, ah
xor edi, edi
inc edi
cmp ax, di
jbe 0x3018f7db
mov esi, 0x410
mov eax, dword [esi + ecx]
xor ecx, ecx
cmp word [eax + 4], 5
sete cl
xor ecx, ebx
je 0x3018f7c2
push 1
push 0
push 0
call fcn.3001c0dc
mov eax, dword [ebp + 0x7c]
mov dword [0x301e3f5c], 1
mov dword [eax], 0x1002b
mov ecx, dword [0x301e4920]
mov al, byte [ecx + 0x268]
inc edi
add esi, 4
and eax, 0xff
cmp edi, eax
jl 0x3018f793
mov eax, dword [0x301e68e4]
cmp eax, 0x201
je 0x3018f7ee
cmp eax, 0x202
jne 0x3018f7f8
mov dword [0x301e3380], 1
xor edi, edi
push edi
call fcn.30011fdb
cmp dword [0x301e3340], 6
jge 0x3018f876
mov eax, dword [0x301e4920]
mov esi, dword [eax + 0x444]
jmp 0x3018f851
mov eax, dword [esi + 0xc]
mov ecx, dword [0x301e4920]
cmp eax, dword [ecx + 0x438]
jge 0x3018f84b
push eax
call fcn.3015804e
mov eax, dword [eax + 4]
cmp word [eax + 4], 1
jne 0x3018f84b
test byte [esi + 0x24], 1
je 0x3018f84b
cmp dword [esi + 0x40], 3
jne 0x3018f84b
or byte [esi + 1], 0xff
and byte [esi + 3], 0xfe
mov esi, dword [esi + 0x104]
cmp esi, edi
jne 0x3018f816
mov eax, dword [0x301e4698]
mov cx, word [eax + 4]
and ch, 0x3f
cmp cx, 3
jne 0x3018f876
cmp dword [eax + 0x4d8], edi
jle 0x3018f876
or byte [eax + 0x864], 2
call fcn.3001b962
mov ecx, dword [0x301e4698]
mov dword [ecx + 0xc], eax
mov eax, dword [0x301e42e4]
cmp eax, edi
je 0x3018f899
mov ecx, dword [0x301e4698]
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov eax, dword [0x301e42e4]
cmp eax, edi
jne 0x3018f8af
mov eax, dword [0x301e4920]
mov ebx, dword [eax + 0x438]
jmp 0x3018f8b3
mov ebx, dword [eax + 8]
dec ebx
cmp dword [0x301e68e4], 0x201
mov ecx, dword [0x301e4698]
jne 0x3018fa15
mov ax, word [ecx + 4]
and ax, 0xc000
cmp ax, 0x8000
jne 0x3018fa15
test byte [ecx], 0x42
je 0x3018f91d
mov ecx, dword [ecx + 0x24]
lea eax, [ecx + 0x178]
mov cl, byte [ecx + 0x110]
xor cl, byte [eax]
and ecx, 0xf
xor word [eax], cx
mov eax, dword [0x301e4698]
mov ecx, dword [eax + 0x24]
lea eax, [ecx + 0x178]
mov cx, word [ecx + 0x110]
xor cx, word [eax]
and cx, 0xf00
xor word [eax], cx
mov ecx, dword [0x301e4698]
mov ax, word [ecx + 4]
and ah, 0x3f
cmp ax, 4
mov eax, dword [ecx + 0x648]
cdq
jne 0x3018f944
push 6
pop esi
idiv esi
push 0x64
imul eax, dword [ecx + 0xc]
push eax
call fcn.30055f82
jmp 0x3018f94d
push 4
pop esi
idiv esi
imul eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x183c]
test byte [ecx], 0x40
je 0x3018f95b
imul eax, ebx
push 0x7d0
push eax
call fcn.30055f82
push 0x14
push eax
call fcn.30056021
mov ecx, dword [0x301e4698]
mov dword [ecx + 0x648], eax
mov eax, dword [0x301e4698]
push 1
add eax, 0x768
push eax
call fcn.30012847
mov eax, dword [0x301e4698]
push 1
add eax, 0x678
push eax
call fcn.30012847
mov ecx, dword [ebp - 0x183c]
mov eax, dword [ecx + 0x24]
cmp byte [eax + 0x29], 0xff
je 0x3018f9ce
mov eax, dword [eax + 0x28]
mov dword [ecx + 0x768], eax
mov eax, dword [ebp - 0x183c]
mov eax, dword [eax + 0x24]
add eax, 0x28
push eax
call fcn.30013a6b
mov ecx, dword [ebp - 0x183c]
cmp dword [ebp - 0xaa8], edi
je 0x3018f9e7
mov eax, dword [ecx + 0x24]
mov eax, dword [eax + 0x134]
mov dword [ecx + 0x678], eax
jmp 0x3018f9f0
mov eax, dword [0x301e4698]
or byte [eax + 1], 8
mov eax, dword [0x301e4698]
cmp word [eax + 4], 0x8003
jne 0x3018fa09
mov dword [eax + 0x63c], 0x17
jmp 0x3018fa0f
mov dword [eax + 0x64c], edi
mov ecx, dword [0x301e4698]
cmp word [ecx + 4], 0x8003
jne 0x3018fa8d
mov dword [ecx + 0x638], 0x14
test byte [0x301e4ce8], 2
je 0x3018fa61
call fcn.300108fb
test eax, eax
je 0x3018fa61
mov eax, dword [0x301e4698]
test byte [eax], 4
je 0x3018fa53
mov cx, word [eax + 4]
and cx, 0xc000
cmp cx, 0x8000
je 0x3018fa61
add eax, 0x638
mov ecx, 0x168
sub ecx, dword [eax]
mov dword [eax], ecx
mov eax, dword [ebp - 0x183c]
or byte [eax], 0x80
mov eax, dword [ebp - 0x183c]
or byte [eax], 0x40
mov eax, dword [ebp - 0x183c]
or byte [eax + 1], 1
mov eax, dword [ebp - 0x183c]
and byte [eax + 1], 0xf7
mov ecx, dword [0x301e4698]
cmp dword [0x301e3340], 4
jg 0x3018fac5
cmp word [ecx + 4], 0x8001
jne 0x3018fac5
push 3
push 5
push dword [ecx + 0x18]
call dword [fcn.30001214]
push eax
push 0x1f4
call fcn.30055f82
mov ecx, dword [0x301e4698]
mov dword [ecx + 0x18], eax
mov ecx, dword [0x301e4698]
mov ax, word [ecx + 4]
and ah, 0x3f
cmp ax, 3
jne 0x3018fb2e
mov al, byte [ecx + 0x4e4]
and al, 0x1f
cmp al, 5
jne 0x3018fafb
lea eax, [ecx + 0x32e]
test byte [eax], 5
jne 0x3018fafb
mov cx, word [eax]
and cl, 0xe5
or ecx, 5
mov word [eax], cx
mov ecx, dword [0x301e4698]
mov esi, dword [0x301e42e4]
cmp esi, edi
je 0x3018fb2e
mov al, byte [esi + 0x4e4]
and al, 0x1f
cmp al, 5
jne 0x3018fb2e
lea eax, [esi + 0x32e]
test byte [eax], 5
jne 0x3018fb2e
mov cx, word [eax]
and cl, 0xe5
or ecx, 5
mov word [eax], cx
mov ecx, dword [0x301e4698]
cmp dword [0x301e3340], 5
jne 0x3018fb74
cmp word [ecx + 4], 1
jne 0x3018fb74
test byte [ecx], 2
je 0x3018fb74
mov eax, dword [ebp - 0xb64]
cmp eax, edi
je 0x3018fb74
mov dl, byte [eax + 0x114]
and dl, 0x3c
cmp dl, 0x10
jne 0x3018fb68
or byte [eax + 0x11f], 2
mov ecx, dword [0x301e4698]
mov eax, dword [eax + 0x110]
test eax, eax
jne 0x3018fb4d
xor edi, edi
mov eax, dword [ebp - 0xb64]
cmp eax, edi
mov dword [ebp - 0xa4c], eax
je 0x3018fbe0
lea ecx, [eax + 0x110]
mov esi, dword [ecx]
mov dword [ecx], edi
mov cl, byte [eax + 0x114]
and cl, 0x3c
cmp cl, 0x10
mov dword [ebp - 0xa50], esi
jne 0x3018fbc2
lea ecx, [eax + 0x115]
movzx edx, byte [ecx]
cmp edx, ebx
jl 0x3018fbc2
cmp dword [0x301e42e4], edi
je 0x3018fbc2
sub byte [ecx], bl
push eax
push dword [0x301e42e4]
jmp 0x3018fbc9
push eax
push dword [0x301e4698]
call fcn.30158f1f
cmp esi, edi
mov eax, esi
mov dword [ebp - 0xa4c], eax
jne 0x3018fb84
mov ecx, dword [0x301e4698]
cmp dword [0x301e68e4], 0x201
jne 0x3018fc03
push dword [ebp - 0xa3c]
push dword [ebp - 0xa60]
call fcn.301898e2
mov ecx, dword [0x301e4698]
cmp ecx, edi
je 0x3018fc36
test byte [ecx + 1], 0x40
je 0x3018fc36
mov eax, dword [0x301df190]
test byte [eax + 4], 1
jne 0x3018fc36
push 0xffffffffffffffff
push 1
push 0xffffffffffffffff
call fcn.300193ef
mov eax, dword [0x301df190]
mov ecx, dword [eax + 4]
dec ecx
push ecx
push eax
call fcn.300131c0
mov dword [eax + 4], edi
cmp dword [ebp - 0xac4], edi
je 0x3018fc56
push dword [ebp - 0xa64]
lea eax, [ebp - 0x195c]
push dword [ebp - 0xac4]
push eax
call fcn.300e5217
cmp dword [0x301e3340], 4
jg 0x3018fc77
push edi
push edi
push 0x30172fa9
call fcn.30021fce
push 0xc
push 0x30172ec4
call fcn.30021ec7
mov eax, dword [0x301e4920]
test byte [eax + 0x1638], 1
jne 0x3018fc8a
call fcn.3004f20f
call fcn.3000d9a6
mov esi, dword [0x301e4920]
mov al, byte [esi + 0x268]
mov dword [ebp - 0xa38], edi
test ax, 0xff
jbe 0x3018fe59
mov dword [ebp - 0xa40], 0x40c
mov eax, dword [ebp - 0xa40]
mov esi, dword [eax + esi]
mov ax, word [esi + 0x32e]
mov cx, word [esi + 0x4e4]
mov edi, eax
and edi, 0x1f
mov dword [ebp - 0xa08], edi
mov di, word [esi + 0x48e]
mov edx, ecx
and edx, 0x1f
mov ebx, edi
and ebx, 0x1f
mov dword [ebp - 0xa04], ebx
mov bx, word [esi + 4]
and bh, 0x3f
mov dword [ebp - 0xa58], edi
cmp bx, 4
je 0x3018fd10
cmp bx, 8
je 0x3018fd10
and dword [ebp - 0xa2c], 0
jmp 0x3018fd1a
mov dword [ebp - 0xa2c], 1
cmp dword [ebp - 0xa08], 4
jne 0x3018fde3
xor ebx, ebx
sub edx, ebx
je 0x3018fdc8
dec edx
je 0x3018fdaa
dec edx
je 0x3018fd78
dec edx
dec edx
je 0x3018fd45
sub edx, 4
je 0x3018fdaa
jmp 0x3018fe2a
cmp dword [ebp - 0xa2c], ebx
je 0x3018fd65
and cl, 0xf0
and al, 0xf0
or al, 0x10
or ecx, 0x10
mov word [esi + 0x32e], ax
mov word [esi + 0x4e4], cx
and di, 0xffe2
or edi, 2
mov word [esi + 0x48e], di
jmp 0x3018fe2a
cmp dword [ebp - 0xa04], 2
jne 0x3018fd93
and ax, 0xefe4
or al, 4
mov word [esi + 0x32e], ax
jmp 0x3018fe2a
test byte [ebp - 0xa04], 2
jle 0x3018fe2a
and ah, 0xef
mov word [esi + 0x32e], ax
push esi
call fcn.30163b53
mov al, byte [esi + 0x4e4]
xor al, byte [esi + 0x32e]
and eax, 0x1f
xor word [esi + 0x4e4], ax
jmp 0x3018fe2a
cmp dword [ebp - 0xa2c], ebx
je 0x3018fd65
test ah, 0x10
je 0x3018fd65
and cl, 0xe4
or ecx, 4
and ah, 0xef
jmp 0x3018fd57
cmp dword [ebp - 0xa04], 2
jne 0x3018fe2a
test edx, edx
jne 0x3018fe10
cmp dword [ebp - 0xa2c], edx
jne 0x3018fe15
cmp dword [ebp - 0xa08], 0x10
jne 0x3018fe15
and cl, 0xf0
or ecx, 0x10
mov word [esi + 0x4e4], cx
jmp 0x3018fe2a
cmp edx, 2
jne 0x3018fe1c
and al, 0xe4
jmp 0x3018fd85
xor al, cl
and eax, 0x1f
xor eax, ecx
mov word [esi + 0x4e4], ax
mov eax, dword [0x301e4920]
mov al, byte [eax + 0x268]
inc dword [ebp - 0xa38]
add dword [ebp - 0xa40], 4
mov esi, dword [0x301e4920]
and eax, 0xff
cmp dword [ebp - 0xa38], eax
jl 0x3018fcb5
mov edi, dword [esi + 0x444]
jmp 0x3018ff5a
mov eax, dword [edi + 0xc]
cmp eax, dword [esi + 0x438]
jge 0x3018ff54
cmp dword [edi + 0x10], 0xffffffff
jne 0x3018ff54
push eax
call fcn.3015804e
mov ebx, eax
test byte [ebx + 0x1c], 7
jne 0x3018ff4e
and dword [ebp - 0xa5c], 0
and dword [ebp - 0xa08], 0
mov eax, dword [ebx + 8]
test eax, eax
je 0x3018ff4e
cmp dword [eax + 0x118], 0xffffffff
jne 0x3018ff36
cmp dword [ebp - 0xa08], 0
je 0x3018fee3
mov ecx, dword [ebp - 0xa5c]
test ecx, ecx
mov esi, dword [eax + 0x110]
jne 0x3018fed3
mov dword [ebx + 8], esi
jmp 0x3018fed9
mov dword [ecx + 0x110], esi
push eax
call fcn.3015b138
mov eax, esi
jmp 0x3018fea0
mov cx, word [eax + 0x11e]
mov dl, cl
and dl, 0x1f
cmp dl, 4
mov dword [ebp - 0xa08], 1
jne 0x3018ff26
test ch, 0x10
jne 0x3018ff26
mov edx, dword [ebx + 4]
mov dx, word [edx + 4]
and dh, 0x3f
cmp dx, 4
je 0x3018ff19
cmp dx, 8
jne 0x3018ff26
and cl, 0xf0
or ecx, 0x10
mov word [eax + 0x11e], cx
mov cl, byte [eax + 0x11e]
xor cl, byte [edi + 8]
and ecx, 0x1f
xor word [edi + 8], cx
and byte [eax + 0x11f], 0xef
mov dword [ebp - 0xa5c], eax
mov eax, dword [eax + 0x110]
jmp 0x3018fea0
mov esi, dword [0x301e4920]
mov edi, dword [edi + 0x104]
test edi, edi
jne 0x3018fe64
cmp dword [0x301e3340], 6
jge 0x301900ee
mov ebx, dword [esi + 0x444]
jmp 0x3018ffef
test byte [ebx + 0x24], 1
je 0x3018ffe9
cmp dword [ebx + 0x40], 0
jne 0x3018ffe9
mov ecx, dword [ebx + 0xc]
mov eax, dword [esi + 0x444]
jmp 0x3018ff9f
cmp dword [eax + 0xc], ecx
jne 0x3018ff99
cmp dword [eax + 0x10], 0xffffffff
je 0x3018ffab
mov eax, dword [eax + 0x104]
test eax, eax
mov dword [ebp - 0xa08], eax
jne 0x3018ff8e
jmp 0x3018ffe9
push 6
pop ecx
lea eax, [ebx + 0x24]
lea esi, [ebx + 0x28]
lea edi, [ebp + 0x54]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.30013919
push dword [0x301e491c]
lea eax, [ebx + 0x24]
push eax
mov eax, dword [ebp - 0xa08]
add eax, 0x24
push eax
call fcn.30023508
push 6
pop ecx
lea esi, [ebp + 0x54]
lea edi, [ebx + 0x28]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [0x301e4920]
mov ebx, dword [ebx + 0x104]
test ebx, ebx
jne 0x3018ff77
xor edx, edx
cmp dword [esi + 0x448], edx
jle 0x3019001f
xor ecx, ecx
lea eax, [ecx + esi + 0x7b4]
and byte [eax + 1], 0xfb
mov esi, dword [0x301e4920]
inc edx
add ecx, 0x8c8
cmp edx, dword [esi + 0x448]
jl 0x3018ffff
mov al, byte [esi + 0x268]
mov edi, 0xff
xor ebx, ebx
test di, ax
jbe 0x30190095
mov edx, 0x40c
mov eax, dword [edx + esi]
mov cx, word [eax + 4]
and byte [eax + 0x864], 0xfe
and ch, 0x3f
cmp cx, 3
jne 0x3019007a
cmp dword [eax + 0x1c], 0
jne 0x3019007a
lea ecx, [eax + 0x32e]
mov si, word [ecx]
and si, 0xfe3f
add eax, 0x48e
or esi, 0x20
mov word [ecx], si
mov cx, word [eax]
and cx, 0xfe3f
or ecx, 0x20
mov word [eax], cx
mov eax, dword [0x301e4920]
mov al, byte [eax + 0x268]
mov esi, dword [0x301e4920]
inc ebx
add edx, 4
and eax, edi
cmp ebx, eax
jl 0x30190036
mov edx, dword [esi + 0x434]
jmp 0x301900ea
mov eax, dword [edx + 4]
mov cx, word [eax + 4]
and ch, 0x3f
cmp cx, 3
jne 0x301900e8
cmp dword [eax + 0x1c], 0
jne 0x301900e8
mov esi, dword [edx + 8]
test esi, esi
je 0x301900e2
lea ecx, [esi + 0x11e]
mov ax, word [ecx]
mov edi, eax
and di, 0x1e0
cmp di, 0x140
je 0x301900da
and ax, 0xfe3f
or al, 0x20
mov word [ecx], ax
mov esi, dword [esi + 0x110]
jmp 0x301900b6
mov esi, dword [0x301e4920]
mov edx, dword [edx]
test edx, edx
jne 0x3019009d
mov ecx, dword [esi + 0x434]
jmp 0x30190127
mov eax, dword [ecx + 0xc]
jmp 0x30190121
test byte [eax + 4], 2
je 0x3019011e
test byte [eax + 0x14], 1
je 0x3019011e
add esi, 0x162c
lea edi, [eax + 8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
or byte [eax + 0x14], 1
mov esi, dword [0x301e4920]
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x301900fb
mov ecx, dword [ecx]
test ecx, ecx
jne 0x301900f6
lea eax, [ebp - 0xb34]
push eax
call fcn.30149f5a
mov eax, dword [ebp - 0xab0]
mov dword [0x301e4ae8], eax
lea eax, [ebp - 0x1850]
push eax
call fcn.30186f2a
cmp dword [0x301e3340], 5
jge 0x3019016d
mov eax, dword [ebp - 0xac0]
mov dword [0x301e3f98], eax
mov eax, dword [ebp - 0xab4]
mov dword [0x301e3f94], eax
mov eax, dword [0x301e5ea4]
test eax, eax
je 0x30190183
push eax
call fcn.30053f15
and dword [0x301e5ea4], 0
xor eax, eax
inc eax
jmp 0x3018b4a8
push 6
push dword [0x301e4ae8]
call fcn.301d8d74
push 0
push 0x30303030
mov dword [0x301e3f5c], 1
call dword [sym.imp.MSO.DLL_Ordinal_6848]
mov eax, dword [ebp - 0xab0]
mov dword [0x301e4ae8], eax
jmp 0x3018b3f5