Function at 0x30199c58
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1a80
call fcn.30201cf7
mov eax, dword [0x3001d1b0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
or dword [ebp - 0xb5c], 0xffffffff
or dword [ebp - 0xb74], 0xffffffff
push ebx
push esi
xor esi, esi
mov dword [ebp - 0xc14], eax
mov eax, dword [0x302ae820]
push edi
xor edi, edi
inc edi
mov dword [ebp - 0xb9c], eax
mov eax, dword [0x3022b45c]
cmp eax, edi
mov dword [ebp - 0xb4c], esi
mov dword [ebp - 0xb24], esi
mov dword [ebp - 0xbc8], esi
mov dword [ebp - 0xb10], esi
mov dword [ebp - 0xb48], esi
mov dword [ebp - 0xbd4], esi
mov dword [ebp - 0xb14], esi
mov dword [ebp - 0xb1c], esi
mov dword [ebp - 0xb38], esi
mov dword [ebp - 0xb70], esi
mov dword [ebp - 0xb6c], esi
mov dword [ebp - 0xb68], esi
mov dword [ebp - 0xb64], esi
mov dword [0x302af380], esi
mov dword [ebp - 0xbb4], edi
mov dword [ebp - 0xba8], esi
mov dword [ebp - 0xb3c], esi
mov dword [ebp - 0xb80], edi
mov dword [ebp - 0xba0], edi
je 0x30199d19
cmp eax, 4
jne 0x30199d46
cmp dword [0x302ae904], 0x201
mov eax, dword [0x30229d54]
mov dword [ebp - 0xc10], eax
mov dword [0x30229d54], esi
jne 0x30199d46
mov dword [ebp - 0xba0], edi
mov dword [ebp - 0xb80], 2
push dword [0x302ae8d4]
lea eax, [ebp - 0x1974]
push eax
call fcn.30198bbf
test eax, eax
jne 0x30199d66
call fcn.3010a1d2
jmp 0x3019b9e7
cmp dword [0x30209e20], 5
mov dword [ebp - 0xbd0], esi
jge 0x30199d80
call dword [sym.imp.KERNEL32.dll_GetACP]
mov dword [0x30229d18], eax
push 0x54
lea eax, [ebp - 0x1a80]
push esi
push eax
mov dword [ebp - 0xb60], esi
mov dword [ebp - 0xbcc], esi
call sub.MSVCR80.dll_memset
add esp, 0xc
lea eax, [ebp - 0xc58]
push eax
call fcn.30135a74
mov eax, dword [0x302ae888]
mov eax, dword [eax]
and eax, 8
mov dword [ebp - 0xbb8], eax
mov eax, 0x2020
call fcn.30201ce6
cmp dword [0x30209e20], 5
mov dword [ebp - 0xb44], esp
mov ebx, 0x3022c73c
jge 0x30199e0a
lea eax, [ebp - 0xc34]
push eax
mov ecx, ebx
call fcn.3002f42e
push 0x180
lea eax, [ebp - 0x794]
push eax
call fcn.300dc2df
lea eax, [ebp - 0x794]
push eax
push 0x180
mov ecx, ebx
call fcn.3002f41c
mov eax, dword [0x302ae668]
mov ecx, dword [ebp - 0xb80]
mov dword [eax + 0x20], edi
mov eax, dword [0x302ae668]
mov dword [eax + 0x24], ecx
mov eax, dword [0x302ae668]
mov ecx, dword [eax + 0x20]
mov edx, dword [0x30229d78]
mov dword [edx + 0x258], ecx
mov eax, dword [eax + 0x24]
mov ecx, dword [0x30229d78]
mov dword [ecx + 0x25c], eax
mov eax, dword [0x30229d78]
or word [eax + 0x268], 0x8000
mov eax, dword [0x302ae8d0]
mov dword [ebp - 0xbb0], eax
lea eax, [ebp - 0x1a2c]
push esi
push eax
mov dword [0x302ae8d0], eax
call sub.MSVCR80.dll__setjmp3
test eax, eax
pop ecx
pop ecx
jne 0x301a0db5
cmp dword [0x30209e20], 2
jne 0x30199eb5
cmp byte [0x30225c90], al
je 0x30199eab
mov eax, dword [0x30225c88]
or eax, dword [0x30225c8c]
je 0x30199eab
movzx eax, word [0x30225c70]
push esi
push eax
call fcn.300d6154
mov dword [0x30229d18], eax
jmp 0x30199eb5
mov dword [0x30229d18], 0x4e4
fld qword [0x3020939c]
mov ecx, dword [0x30229d78]
or eax, 0xffffffff
fstp qword [ebp - 0xc]
fld qword [0x302093a4]
add ecx, 0x458
fstp qword [ebp - 0x14]
mov dword [ebp - 0xad4], eax
mov dword [ebp - 0xad8], eax
mov dword [ebp - 0xb08], eax
mov dword [ebp - 0xb28], eax
mov dword [0x3022a234], esi
mov dword [ebp - 0xb20], esi
mov dword [ebp - 0xb2c], esi
mov dword [ebp - 0xae8], esi
mov dword [ebp - 0x1928], esi
mov dword [ebp - 0x1920], esi
mov dword [ebp - 0x1924], esi
mov dword [ebp - 0x1958], esi
mov dword [ebp - 0x1960], esi
mov dword [ebp - 0x1944], esi
mov dword [ebp - 0xb54], esi
mov dword [ebp - 0x193c], esi
mov dword [ebp - 0xc88], esi
mov dword [ebp - 0xb58], esi
mov dword [ebp - 0x196c], esi
mov dword [ebp - 0x1964], esi
mov dword [ebp - 0xb34], ecx
mov dword [ebp - 0xaf8], eax
mov dword [ebp - 0xb0c], eax
call fcn.30105ba5
mov dword [ebp - 0xb30], eax
mov eax, dword [ebp - 0xad8]
mov ebx, dword [sym.imp.MSO.dll_Ordinal_6848]
xor edi, edi
mov dword [ebp - 0xaec], eax
inc edi
cmp dword [0x3022c70c], 0
jne 0x30199f90
call fcn.3007c3cc
jmp 0x30199f95
call fcn.3011c718
cmp dword [0x3022c70c], 0
mov dword [ebp - 0xad8], eax
jne 0x30199fab
call fcn.3007c3cc
jmp 0x30199fb0
call fcn.3011c708
mov dword [ebp - 0xadc], eax
mov esi, dword [ebp - 0xadc]
cmp esi, dword [ebp - 0xb30]
jg 0x3019ab82
push dword [ebp - 0xb30]
push esi
mov esi, dword [ebp - 0xb44]
push esi
call fcn.300ff1ff
mov eax, dword [ebp - 0xad8]
lea ecx, [eax - 0x880]
cmp ecx, 2
mov dword [ebp - 0xbc4], esi
ja 0x3019a006
add eax, 0x1d
mov dword [ebp - 0xad8], eax
mov ecx, esi
mov word [ecx], ax
mov eax, dword [ebp - 0xad8]
test word [0x3022cf88], 0x2000
je 0x3019a027
cmp eax, 0x131
je 0x30199f80
cmp eax, 0x104c
je 0x30199f80
cmp eax, 0xa
je 0x3019faad
cmp dword [0x30209e20], 5
mov eax, dword [0x302ae8d4]
jge 0x3019a046
test word [eax + 6], 0x400
jne 0x3019a07f
mov edx, dword [0x302ae658]
cmp word [edx + 0x132], 0
je 0x3019a085
cmp dword [ebp - 0xbb8], 0
je 0x3019a068
cmp dword [0x3022c70c], 0
je 0x3019a085
push edi
push dword [ebp - 0xadc]
push dword [ebp - 0xb44]
call fcn.30082710
mov eax, dword [0x302ae8d4]
mov edx, dword [0x302ae658]
cmp dword [ebp - 0xb20], 0
jg 0x3019abb6
cmp dword [ebp - 0xb10], 0
jg 0x3019abe2
cmp dword [ebp - 0xad8], 0x851
jne 0x3019a0dc
lea eax, [ebp - 0xbc4]
push eax
lea eax, [ebp - 0xadc]
push eax
lea eax, [ebp - 0xad8]
push eax
push dword [ebp - 0xb44]
call fcn.3019744c
mov eax, dword [0x302ae8d4]
mov edx, dword [0x302ae658]
mov esi, dword [ebp - 0xbc4]
mov ecx, dword [ebp - 0xaec]
sub ecx, 0x1025
je 0x3019a0ef
sub ecx, 8
jne 0x3019a12b
cmp dword [ebp - 0xad8], 0x1033
je 0x3019a12b
cmp dword [ebp - 0xad4], 0x1002
jne 0x3019a12b
lea eax, [ebp - 0xb58]
push eax
lea eax, [ebp - 0xc88]
push eax
push dword [ebp - 0x196c]
call fcn.301987bf
mov eax, dword [0x302ae8d4]
mov edx, dword [0x302ae658]
cmp dword [ebp - 0xad8], 0x1015
ja 0x3019aad7
je 0x3019cdd9
cmp dword [ebp - 0xad8], 0x200
ja 0x3019a859
je 0x3019b0e8
cmp dword [ebp - 0xad8], 0x40
jbe 0x3019a6ec
cmp dword [ebp - 0xad8], 0x89
ja 0x3019a452
cmp dword [ebp - 0xad8], 0x88
jae case.0x3019aaf8.4172
cmp dword [ebp - 0xad8], 0x7e
jbe 0x3019a81a
mov ecx, dword [ebp - 0xad8]
sub ecx, 0x7f
jne 0x3019a6b9
cmp dword [ebp - 0xad4], 0x103c
mov dword [ebp - 0xae0], edi
je 0x3019a1cc
cmp dword [ebp - 0xad4], 0xffffffff
jne 0x3019ae73
cmp dword [ebp - 0xb60], 0
je 0x3019ae73
cmp dword [ebp - 0xad4], 0xffffffff
jne 0x3019a207
push dword [ebp - 0xb60]
lea eax, [ebp - 0xad8]
push dword [ebp - 0xbb8]
push dword [ebp - 0xb30]
push dword [ebp - 0xadc]
push esi
push eax
call fcn.300bacf5
test eax, eax
je 0x30199fb6
jmp case.0x3019aaf8.4150
mov eax, dword [ebp - 0x1954]
add eax, 4
test byte [eax], 8
mov dword [ebp - 0xbac], eax
jne 0x3019ae7f
mov eax, dword [ebp - 0xb24]
mov cl, byte [eax + 4]
and cl, 0x20
neg cl
sbb ecx, ecx
and ecx, 0xfffffff9
add ecx, 9
mov dword [ebp - 0xb98], ecx
movzx eax, byte [eax + 4]
shr eax, 3
and eax, 3
mov dword [ebp - 0xba4], eax
mov eax, dword [esi + 4]
push eax
push 2
mov dword [ebp - 0xaf0], eax
mov dword [ebp - 0xb18], eax
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
test eax, eax
mov dword [ebp - 0xaf4], eax
je 0x3019b91d
mov eax, dword [ebp - 0xadc]
push dword [ebp - 0xaf4]
add eax, 0xfffffff8
mov dword [ebp - 0xae4], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ecx, dword [ebp - 0xae4]
cmp ecx, dword [ebp - 0xaf0]
mov dword [ebp - 0xb7c], eax
lea eax, [esi + 8]
jbe 0x3019a2a9
mov ecx, dword [ebp - 0xaf0]
push ecx
push eax
push dword [ebp - 0xb7c]
call dword [sym.imp.MSVCR80.dll_memmove]
add esp, 0xc
push dword [ebp - 0xae4]
lea eax, [ebp - 0xb7c]
push eax
call fcn.3007822a
mov eax, dword [ebp - 0xae4]
cmp dword [ebp - 0xaf0], eax
jb 0x3019a3cf
sub dword [ebp - 0xaf0], eax
cmp dword [ebp - 0xaf0], 0
je 0x3019ae8b
cmp dword [0x3022c70c], 0
jne 0x3019a301
call fcn.3007c3cc
jmp 0x3019a306
call fcn.3011c718
cmp eax, 0x3c
mov dword [ebp - 0xad8], eax
jne 0x3019a3e6
cmp dword [0x3022c70c], 0
jne 0x3019a325
call fcn.3007c3cc
jmp 0x3019a32a
call fcn.3011c708
mov dword [ebp - 0xadc], eax
mov eax, dword [ebp - 0xb30]
cmp dword [ebp - 0xadc], eax
jg 0x3019a40a
push eax
push dword [ebp - 0xadc]
push esi
call fcn.300ff1ff
mov eax, dword [0x302ae8d4]
test word [eax + 6], 0x400
jne 0x3019a38a
mov ecx, dword [0x302ae658]
xor eax, eax
cmp word [ecx + 0x132], ax
je 0x3019a38a
cmp dword [ebp - 0xbb8], eax
je 0x3019a37d
cmp dword [0x3022c70c], eax
je 0x3019a38a
push edi
push dword [ebp - 0xadc]
push esi
call fcn.30082710
mov eax, dword [ebp - 0xadc]
cmp eax, dword [ebp - 0xaf0]
jbe 0x3019a39e
mov eax, dword [ebp - 0xaf0]
push eax
push esi
push dword [ebp - 0xb7c]
call dword [sym.imp.MSVCR80.dll_memmove]
add esp, 0xc
push dword [ebp - 0xadc]
lea eax, [ebp - 0xb7c]
push eax
call fcn.3007822a
mov eax, dword [ebp - 0xadc]
cmp dword [ebp - 0xaf0], eax
jge 0x3019a3db
and dword [ebp - 0xaf0], 0
jmp 0x3019a2e4
mov eax, dword [ebp - 0xadc]
jmp 0x3019a2de
cmp dword [0x3022c70c], 0
jne 0x3019a3f6
call fcn.3007c3cc
jmp 0x3019a3fb
call fcn.3011c708
push 0
mov dword [ebp - 0xadc], eax
push 0x666c6e6c
jmp 0x3019a411
push 0
push 0x67666e6b
call ebx
xor esi, esi
push esi
push dword [ebp - 0xaf4]
mov dword [0x30229d1c], edi
call fcn.300752bf
push 0x18
push dword [ebp - 0xbac]
call fcn.3014dd39
push 0x18
push dword [ebp - 0xb24]
call fcn.3014dd39
mov dword [ebp - 0xb24], esi
mov dword [ebp - 0x1954], esi
jmp 0x30199fb6
mov ecx, dword [ebp - 0xad8]
sub ecx, 0x92
je 0x3019b066
sub ecx, 0xe
je 0x3019afae
sub ecx, 0x3d
je case.0x3019aaf8.4150
sub ecx, 0xe
je 0x3019a622
dec ecx
je 0x3019a4c1
dec ecx
jne 0x3019a6de
test byte [0x302ad074], 8
jne case.0x3019aaf8.4150
push dword [ebp - 0xadc]
call fcn.30105ba5
push eax
push esi
push dword [0x302ae888]
call fcn.30130f57
test eax, eax
jne case.0x3019aaf8.4150
push eax
push 0x67666e67
jmp 0x3019a6a1
test byte [0x302ad074], 8
jne case.0x3019aaf8.4150
cmp dword [ebp - 0xb38], 0
je 0x3019a5f8
and dword [ebp - 0xae4], 0
push eax
lea eax, [ebp - 0xad0]
push eax
call fcn.30124298
mov eax, dword [ebp - 0xb38]
mov ecx, dword [eax]
lea edx, [ebp - 0xad0]
push edx
lea edx, [ebp - 0xbc0]
push edx
push eax
call dword [ecx + 0x38]
test eax, eax
je 0x3019a5cc
push dword [ebp - 0xadc]
call fcn.30105ba5
push eax
push esi
push dword [0x302ae888]
push dword [ebp - 0xbc0]
call fcn.30130e32
test eax, eax
je 0x3019a5cc
push dword [ebp - 0xb38]
call fcn.30127d3e
mov eax, dword [0x302ae8d4]
test eax, eax
je 0x3019a553
mov ecx, dword [eax + 0x9c]
jmp 0x3019a555
xor ecx, ecx
test ecx, ecx
je 0x3019a5cc
mov edx, dword [ecx + 0x240]
test edx, edx
je 0x3019a56b
mov dword [ebp - 0xbbc], edx
jmp 0x3019a581
push ecx
lea eax, [ebp - 0xbbc]
push eax
call fcn.30126cec
test eax, eax
je 0x3019a5cc
mov eax, dword [0x302ae8d4]
push eax
lea eax, [ebp - 0xa70]
push eax
call fcn.30124298
mov eax, dword [ebp - 0xbc0]
mov ecx, dword [eax]
push 0
push edi
lea edx, [ebp - 0xbfc]
push edx
lea edx, [ebp - 0xa70]
push edx
push dword [ebp - 0xbbc]
push eax
call dword [ecx + 0x60]
test eax, eax
je 0x3019a5cc
mov eax, dword [0x302ae8d4]
mov ecx, dword [ebp - 0xbfc]
mov dword [eax + 0xc0], ecx
mov dword [ebp - 0xae4], edi
mov eax, dword [ebp - 0xb38]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
and dword [ebp - 0xb38], 0
cmp dword [ebp - 0xae4], 0
jne case.0x3019aaf8.4150
push 0
push 0x67666e65
jmp 0x3019a6a1
push dword [ebp - 0xadc]
call fcn.30105ba5
push eax
push esi
push dword [0x302ae888]
push 0
call fcn.30130e32
test eax, eax
jne 0x3019af96
push eax
push 0x67666e66
jmp 0x3019a6a1
test byte [0x302ad074], 8
jne case.0x3019aaf8.4150
lea eax, [ebp - 0x9ac]
push eax
call dword [sym.imp.MSO.dll_Ordinal_741]
mov eax, dword [0x3020a2b8]
or dword [ebp - 0x904], edi
mov dword [ebp - 0x9a4], eax
mov eax, dword [0x302ae658]
mov dword [ebp - 0x9a8], eax
lea eax, [ebp - 0x9ac]
push eax
lea eax, [ebp - 0xb38]
push eax
mov dword [ebp - 0x9ac], 0x30209dd4
call dword [sym.imp.MSO.dll_Ordinal_388]
test eax, eax
je 0x3019a69a
push dword [ebp - 0xadc]
call fcn.30105ba5
push eax
push esi
push dword [ebp - 0xb38]
call fcn.30130d72
test eax, eax
jne case.0x3019aaf8.4150
push 0
push 0x67666e63
mov dword [0x30229d1c], edi
call ebx
push 0x2020
push esi
call fcn.30124ac6
jmp 0x30199f95
sub ecx, 4
je 0x3019ae5d
dec ecx
jne case.0x3019aaf8.4131
mov cx, word [esi]
shl cx, 9
xor cx, word [eax + 6]
and cx, 0x200
jmp 0x3019ae6a
sub ecx, 0x44
je case.0x3019aaf8.4172
jmp case.0x3019aaf8.4131
je 0x3019ad05
cmp dword [ebp - 0xad8], 0x17
ja 0x3019a77f
cmp dword [ebp - 0xad8], 0x14
jae case.0x3019aaf8.4172
cmp dword [ebp - 0xad8], 5
ja 0x3019a751
mov eax, dword [ebp - 0xad8]
cmp eax, 5
je 0x3019ac71
test eax, eax
je 0x3019b0e8
cmp eax, edi
je 0x3019ac6c
cmp eax, 2
je 0x3019ac60
jbe case.0x3019aaf8.4131
cmp eax, 4
jbe 0x3019b147
jmp case.0x3019aaf8.4131
mov ecx, dword [ebp - 0xad8]
sub ecx, 9
je 0x3019b66b
sub ecx, 9
je case.0x3019aaf8.4150
dec ecx
jne case.0x3019aaf8.4131
movzx ecx, word [esi]
push ecx
push eax
call fcn.301052f4
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad8], 0x31
ja 0x3019a7e3
je 0x3019ace7
cmp dword [ebp - 0xad8], 0x19
je case.0x3019aaf8.4172
cmp dword [ebp - 0xad8], 0x25
jbe case.0x3019aaf8.4131
cmp dword [ebp - 0xad8], 0x29
jbe 0x3019acd4
cmp dword [ebp - 0xad8], 0x30
jne case.0x3019aaf8.4131
test edx, edx
je case.0x3019aaf8.4150
mov ecx, dword [edx + 0x120]
test ecx, ecx
je 0x3019ac98
mov eax, dword [edx + 0x11c]
jmp 0x3019ac9e
mov ecx, dword [ebp - 0xad8]
sub ecx, 0x32
je case.0x3019aaf8.4150
dec ecx
je 0x3019acf7
sub ecx, 0xa
jne case.0x3019aaf8.4131
lea eax, [ebp - 0xc2c]
push eax
push esi
call fcn.3008f404
mov dword [0x3022a234], edi
jmp case.0x3019aaf8.4150
je 0x3019b141
cmp dword [ebp - 0xad8], 0x42
je 0x3019ad70
cmp dword [ebp - 0xad8], 0x4d
je case.0x3019aaf8.4172
cmp dword [ebp - 0xad8], 0x5d
je 0x3019ad1f
cmp dword [ebp - 0xad8], 0x63
je case.0x3019aaf8.4150
jmp case.0x3019aaf8.4131
cmp dword [ebp - 0xad8], 0x85a
ja 0x3019a97d
je 0x3019bcd4
cmp dword [ebp - 0xad8], 0x809
ja 0x3019a91f
je case.0x3019aaf8.4150
mov ecx, dword [ebp - 0xad8]
cmp ecx, 0x209
ja 0x3019a8f3
cmp ecx, 0x209
je 0x3019b66b
cmp ecx, 0x201
je 0x3019b141
mov eax, 0x202
cmp ecx, eax
je 0x3019b12c
jbe case.0x3019aaf8.4131
cmp ecx, 0x204
jbe 0x3019b147
cmp ecx, 0x205
jne case.0x3019aaf8.4131
movzx eax, word [esi + 6]
cmp eax, 0x2a
mov dword [ebp - 0xb50], eax
je 0x3019b127
call fcn.30081558
jmp 0x3019b136
sub ecx, 0x231
je 0x3019b704
sub ecx, 0x6f
je 0x3019b6aa
sub ecx, 0xc
jne case.0x3019aaf8.4131
movzx ecx, word [esi]
mov dword [eax + 0x180], ecx
jmp case.0x3019aaf8.4150
mov eax, dword [ebp - 0xad8]
sub eax, 0x850
je 0x3019bc13
dec eax
dec eax
je 0x3019bb2f
dec eax
je 0x3019baf0
dec eax
je 0x3019ba00
dec eax
je 0x3019b8b1
dec eax
je 0x3019b875
dec eax
jne case.0x3019aaf8.4131
cmp dword [ebp - 0xad4], 0x101d
je 0x3019b80d
push 0
mov dword [0x30229d1c], edi
push 0x666c7074
jmp 0x3019ae56
mov eax, 0x1006
cmp dword [ebp - 0xad8], eax
ja 0x3019aa4b
je 0x3019c345
mov ecx, dword [ebp - 0xad8]
add eax, 0xfffffffb
cmp ecx, eax
ja 0x3019aa04
je 0x3019bfc2
cmp ecx, 0x86a
je 0x3019bf90
cmp ecx, 0x86b
je 0x3019bdfe
cmp ecx, 0x89d
jbe case.0x3019aaf8.4131
cmp ecx, 0x89f
ja case.0x3019aaf8.4131
lea eax, [ebp - 0x1974]
push eax
push dword [ebp - 0xadc]
push ecx
push esi
call fcn.30198c42
test eax, eax
jne case.0x3019aaf8.4150
push eax
mov dword [0x30229d1c], edi
push 0x33663978
jmp 0x3019ae56
mov eax, 0x1002
sub ecx, eax
je 0x3019c25a
dec ecx
je 0x3019c03e
dec ecx
jne case.0x3019aaf8.4131
mov eax, dword [ebp - 0xad4]
sub eax, 0x1003
je 0x3019c002
sub eax, 0x22
je 0x3019bfde
push 0
mov dword [0x30229d1c], edi
push 0x666c6d74
jmp 0x3019ae56
mov ecx, dword [ebp - 0xad8]
sub ecx, 0x1007
je 0x3019ca7e
dec ecx
dec ecx
je 0x3019c91c
dec ecx
je 0x3019c7a8
dec ecx
je 0x3019c77d
dec ecx
je 0x3019c6b5
dec ecx
je 0x3019c62f
sub ecx, 7
jne case.0x3019aaf8.4131
cmp dword [ebp - 0xad4], 0x1041
je 0x3019aaa2
cmp dword [ebp - 0xad4], 0x1002
jne 0x3019aabc
mov eax, dword [0x30229d78]
mov ax, word [eax + 0x268]
and ax, 0xff
cmp ax, 0xa
jb 0x3019c49a
push 0
push 0x666c6f69
mov dword [0x30229d1c], edi
call ebx
and dword [ebp - 0x1960], 0
jmp 0x3019c48e
mov ecx, dword [ebp - 0xad8]
mov eax, 0x1100
cmp ecx, eax
ja 0x3019aaff
je case.0x3019aaf8.4150
mov eax, ecx
add eax, 0xffffefea
cmp eax, 0x52
ja case.0x3019aaf8.4131
jmp dword [eax*4 + 0x301a0dc5]
cmp ecx, 0x4081
je case.0x3019aaf8.4188
cmp ecx, 0xa55a
je case.0x3019aaf8.4178
cmp dword [ebp - 0xad8], 0x851
jne 0x3019ab32
push 0
push 0x71626368
call ebx
mov edx, dword [0x302ae658]
mov eax, dword [ebp - 0xad8]
lea ecx, [eax - 0x8a8]
cmp ecx, 0x57
ja 0x3019ab61
lea ecx, [ebp - 0x1974]
push ecx
push dword [ebp - 0xadc]
push eax
push esi
call fcn.30198c42
test eax, eax
jne case.0x3019aaf8.4172
mov edx, dword [0x302ae658]
cmp dword [ebp - 0xad8], 0x8a7
jle case.0x3019aaf8.4172
or dword [edx + 0x220], 0x2000
mov dword [ebp - 0xb2c], edi
jmp 0x30199f80
push 0
push 0x666c6b6b
call ebx
cmp dword [0x3022c70c], 0
mov dword [0x30229d1c], edi
jne 0x3019fa9f
call fcn.3007b28f
add eax, esi
push eax
call fcn.3007c61d
mov dword [ebp - 0xb2c], edi
jmp 0x30199f6b
cmp dword [ebp - 0xad8], 0x1034
jne 0x3019abcd
dec dword [ebp - 0xb20]
jmp 0x30199f6b
cmp dword [ebp - 0xad8], 0x1033
jne 0x30199f6b
jmp 0x3019f5a2
mov eax, dword [ebp - 0xad8]
cmp eax, 0x853
je 0x3019ac0c
cmp eax, 0x855
je 0x3019ac0c
cmp eax, 0x852
je 0x3019ac04
cmp eax, 0x854
jne 0x3019ac12
inc dword [ebp - 0xb10]
jmp 0x3019ac12
dec dword [ebp - 0xb10]
cmp dword [ebp - 0xb48], 0
je 0x30199f6b
lea eax, [ebp - 0x1974]
push eax
push dword [ebp - 0xadc]
push dword [ebp - 0xad8]
push dword [ebp - 0xb44]
call fcn.30198c42
test eax, eax
jne 0x30199f6b
push eax
push 0x666c6b6d
mov dword [0x30229d1c], 1
call dword [sym.imp.MSO.dll_Ordinal_6848]
jmp 0x30199f6b
movsx eax, word [esi + 7]
push eax
call fcn.3008167c
jmp 0x3019ac85
fld qword [ebp - 0xc]
jmp 0x3019ac90
movzx eax, word [esi + 7]
cmp eax, 0x2a
mov dword [ebp - 0xb50], eax
je 0x3019ac8d
call fcn.30081558
lea eax, [esi + 7]
jmp 0x3019b139
fld qword [ebp - 0x14]
fstp qword [esi + 7]
jmp 0x3019b147
mov eax, dword [edx + 0x388]
test eax, eax
je case.0x3019aaf8.4150
test ecx, ecx
je 0x3019acb2
mov edx, dword [edx + 0x11c]
jmp 0x3019acb8
mov edx, dword [edx + 0x388]
mov edx, dword [edx + 0x478]
test edx, edx
je 0x3019acc7
mov edx, dword [edx + 4]
jmp 0x3019acc9
xor edx, edx
mov dword [ebp - 0xbd0], edx
jmp case.0x3019aaf8.4150
push 0
push esi
push dword [ebp - 0xad8]
call fcn.300baab5
jmp case.0x3019aaf8.4150
mov eax, dword [0x30209e20]
mov dword [ebp - 0xae0], eax
jmp 0x3019b70e
movsx ecx, word [esi]
mov dword [eax + 0x184], ecx
jmp case.0x3019aaf8.4150
movzx eax, word [esi]
shl eax, 0xa
add edx, 0x21c
xor eax, dword [edx]
and eax, 0x400
xor dword [edx], eax
jmp case.0x3019aaf8.4150
test byte [0x302ad074], 8
jne case.0x3019aaf8.4150
or word [eax + 6], 0x10
push 0
lea eax, [ebp - 0xc58]
push eax
push 0
push 0x2020
push dword [ebp - 0xadc]
push esi
call fcn.3013754a
test eax, eax
jne 0x3019ad5f
push eax
push 0x666c6c61
mov dword [0x30229d1c], edi
call ebx
mov eax, dword [ebp - 0xc4c]
mov dword [ebp - 0xb60], eax
jmp case.0x3019aaf8.4150
mov eax, dword [0x30229d18]
mov dword [ebp - 0xbac], eax
movzx eax, word [esi]
test eax, eax
mov dword [0x30229d18], eax
jne 0x3019ad93
movzx eax, word [0x30225c70]
mov dword [0x30229d18], eax
mov ecx, dword [0x30209e20]
cmp ecx, 4
jg 0x3019adcb
cmp eax, 0x4e4
jne 0x3019adad
call dword [sym.imp.KERNEL32.dll_GetACP]
jmp 0x3019adc6
cmp ecx, 4
jg 0x3019adcb
cmp eax, 0x2710
jne 0x3019adcb
push edi
call dword [sym.imp.KERNEL32.dll_GetACP]
push eax
call fcn.300d6154
mov dword [0x30229d18], eax
cmp eax, 0x8001
jne 0x3019adda
call dword [sym.imp.KERNEL32.dll_GetACP]
jmp 0x3019adf2
cmp eax, 0x8000
jne 0x3019ade8
mov eax, 0x2710
jmp 0x3019adf2
cmp eax, 0x20
jae 0x3019adf7
add eax, 0x2710
mov dword [0x30229d18], eax
cmp byte [0x30225c90], 0
je 0x3019ae36
cmp dword [0x30209e20], 2
jne 0x3019ae12
movzx eax, word [0x30225c70]
jmp 0x3019ae31
mov ecx, dword [ebp - 0xb9c]
mov esi, dword [0x302ae820]
push edi
push eax
mov dword [0x302ae820], ecx
call fcn.300d620a
mov dword [0x302ae820], esi
mov dword [0x30229d18], eax
cmp dword [0x30209e20], 5
jl case.0x3019aaf8.4150
cmp eax, dword [ebp - 0xbac]
je case.0x3019aaf8.4150
push 0
push 0x7162636b
call ebx
jmp case.0x3019aaf8.4150
xor ecx, ecx
mov ch, byte [esi]
xor cx, word [eax + 6]
and cx, 0x100
xor word [eax + 6], cx
jmp case.0x3019aaf8.4150
push 0
push 0x666c6e6a
jmp 0x3019b65e
push 0
push 0x67666e6a
jmp 0x3019b65e
push dword [ebp - 0xaf4]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
xor esi, esi
cmp dword [0x30209e20], 5
jg 0x3019aea8
mov dword [ebp - 0xae0], esi
push edi
push dword [ebp - 0xae0]
lea eax, [ebp - 0xb98]
push esi
push edi
push dword [ebp - 0xba4]
push dword [ebp - 0xb18]
push eax
push dword [ebp - 0xaf4]
call fcn.30075c37
push esi
push dword [ebp - 0xb98]
mov dword [ebp - 0xaf4], eax
push eax
call fcn.30129b85
push dword [ebp - 0xb98]
mov dword [ebp - 0xae4], eax
push dword [ebp - 0xaf4]
call fcn.300752bf
cmp dword [ebp - 0xae4], esi
je 0x3019af4c
push esi
push dword [ebp - 0xae4]
push dword [ebp - 0x1954]
call fcn.301c9a5e
test eax, eax
je 0x3019af4c
mov eax, dword [ebp - 0x1954]
mov ecx, dword [ebp - 0xb24]
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 - 0x1954]
fstp qword [eax + 5]
mov eax, dword [ebp - 0x193c]
and word [eax + 6], 0xfeff
push ecx
jmp 0x3019af62
push esi
push 0x67666e6c
mov dword [0x30229d1c], edi
call ebx
push 0x18
push dword [ebp - 0xb24]
mov eax, dword [0x30229d78]
or word [eax + 0x268], 0x100
call fcn.3014dd39
mov eax, dword [ebp - 0xae4]
cmp eax, esi
mov dword [ebp - 0xb24], esi
je 0x3019af8b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x1954], esi
jmp case.0x3019aaf8.4150
lea eax, [ebp - 0xb60]
push eax
lea eax, [ebp - 0xc38]
push eax
call fcn.3012934c
jmp case.0x3019aaf8.4150
cmp dword [0x3022b45c], 4
je case.0x3019aaf8.4150
cmp dword [0x30209e20], 5
jl 0x3019b05a
cmp dword [ebp - 0xad4], 0x1002
jne 0x3019b020
movsx eax, word [esi]
mov ecx, dword [0x302ae668]
mov dword [ecx + 0x20], eax
movsx eax, word [esi + 2]
mov ecx, dword [0x302ae668]
mov dword [ecx + 0x24], eax
mov eax, dword [0x302ae668]
mov ecx, dword [eax + 0x20]
mov edx, dword [0x30229d78]
mov dword [edx + 0x258], ecx
mov eax, dword [eax + 0x24]
mov ecx, dword [0x30229d78]
mov dword [ecx + 0x25c], eax
mov eax, dword [0x302ae668]
add eax, 0x20
push eax
call fcn.300be322
jmp 0x3019b02c
cmp dword [ebp + 8], 5
je 0x3019b02c
push esi
call fcn.300ba830
mov eax, dword [0x30229d78]
push 0
push 0
add eax, 0x138
push eax
call fcn.3015179f
mov eax, dword [0x30229d78]
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.0x3019aaf8.4150
push 0
push 0x7162636d
jmp 0x3019ae56
call fcn.300ff2a7
push dword [0x302adf40]
call fcn.30078435
cmp dword [0x30209e20], 3
mov ebx, eax
jne 0x3019b099
xor ecx, ecx
cmp word [esi], cx
jle 0x3019b099
lea eax, [esi + 5]
mov byte [eax], 0
movsx edx, word [esi]
inc ecx
add eax, 4
cmp ecx, edx
jl 0x3019b08b
push 0
push esi
push ebx
call fcn.300bac93
call fcn.3007ca02
mov eax, dword [0x302ae65c]
push dword [eax + 0x40]
call fcn.3005131c
push ebx
call fcn.3007845a
mov eax, dword [0x3022b45c]
cmp eax, edi
je 0x3019b0c8
cmp eax, 4
jne 0x3019b0ce
push ebx
call fcn.300d6bbd
cmp dword [0x3022b45c], 2
jne 0x3019b0e2
mov dword [0x302af380], ebx
jmp 0x3019fa8e
push ebx
jmp 0x3019fa89
push esi
call fcn.300ff425
cmp dword [0x30209e20], 5
mov eax, dword [esi + 4]
jg 0x3019b0ff
cdq
sub eax, edx
sar eax, 1
cmp dword [esi], 0
mov dword [ebp - 0xaf8], eax
jne 0x3019b115
cmp word [esi + 8], 0
je case.0x3019aaf8.4150
push 0
mov dword [0x30229d1c], edi
push 0x666c6b79
jmp 0x3019ae56
fld qword [ebp - 0x14]
jmp 0x3019b144
movsx eax, word [esi + 6]
push eax
call fcn.3008167c
lea eax, [esi + 6]
push eax
call fcn.300814b5
jmp 0x3019b147
fld qword [ebp - 0xc]
fstp qword [esi + 6]
cmp dword [0x30209e20], 5
movzx eax, word [esi + 2]
mov dword [ebp - 0xaf0], eax
movzx eax, word [esi]
mov dword [ebp - 0xaf4], eax
jg 0x3019b189
mov eax, dword [ebp - 0xaf8]
cmp dword [ebp - 0xaf4], eax
jl 0x3019b17f
sub dword [ebp - 0xaf4], eax
mov dword [ebp - 0xb0c], edi
jmp 0x3019b189
mov dword [ebp - 0xb0c], 2
push 3
push 0
push dword [ebp - 0xb0c]
call fcn.3019824c
cmp dword [ebp - 0xaf4], 0x7d00
mov dword [ebp - 0xb0c], eax
jge 0x3019b657
cmp dword [ebp - 0xaf4], 0xf9f
jge 0x3019b657
cmp dword [ebp - 0xaf4], 0
jl 0x3019b660
mov eax, dword [ebp - 0xaf0]
test eax, eax
jl 0x3019b660
mov ecx, dword [0x30229d78]
cmp eax, dword [ecx + 0x444]
jl 0x3019b2ba
push 0
push 0x666c6c6a
mov dword [0x30229d1c], edi
call ebx
jmp 0x3019b289
cmp eax, 0x100
jge 0x3019b2a2
mov eax, dword [ebp - 0x1944]
mov dword [ebp - 0xaec], eax
lea eax, [ebp - 0x1944]
push eax
call fcn.3014d2d0
cmp dword [ebp - 0xaec], 0
jne 0x3019b23e
mov eax, dword [0x30229d78]
mov ecx, dword [ebp - 0x1944]
mov dword [eax + 0x440], ecx
jmp 0x3019b24c
mov eax, dword [ebp - 0x1944]
mov ecx, dword [ebp - 0xaec]
mov dword [ecx], eax
mov eax, dword [0x30229d78]
inc dword [eax + 0x444]
mov eax, dword [ebp - 0x1944]
add eax, 0x128
mov cx, word [eax]
and cx, 0xfff7
or cx, 4
mov word [eax], cx
mov eax, dword [ebp - 0x1944]
add eax, 0x140
mov cx, word [eax]
and cx, 0xfff7
or cx, 4
mov word [eax], cx
mov eax, dword [0x30229d78]
mov eax, dword [eax + 0x444]
cmp dword [ebp - 0xaf0], eax
jge 0x3019b1ff
jmp 0x3019b2cb
push 0
push 0x666c6c6b
mov dword [0x30229d1c], edi
call ebx
and dword [ebp - 0x1944], 0
jmp 0x3019b2cb
push dword [ebp - 0xaf0]
call fcn.301482c3
mov dword [ebp - 0x1944], eax
mov eax, dword [ebp - 0x1944]
test eax, eax
je case.0x3019aaf8.4150
mov ecx, dword [ebp - 0xb0c]
mov edx, dword [ebp - 0xaf4]
imul ecx, ecx, 0x18
add ecx, eax
cmp edx, dword [ecx + 0x13c]
jl 0x3019b304
push 0
mov dword [0x30229d1c], edi
push 0x666c6c6c
jmp 0x3019ae56
cmp dword [ebp - 0xb0c], 2
mov edx, dword [ebp - 0xaf0]
mov dword [ebp - 0xae0], eax
jne 0x3019b321
test edx, edx
jg case.0x3019aaf8.4150
cmp dword [ebp - 0xad8], edi
mov eax, 0x201
je 0x3019b435
cmp dword [ebp - 0xad8], eax
je 0x3019b435
mov cl, byte [ecx + 0x128]
and cl, 3
cmp cl, 1
jne 0x3019b435
cmp dword [0x30209e20], 2
je 0x3019b3f1
mov eax, dword [ebp - 0x1944]
mov eax, dword [eax + 0x1c]
and eax, 7
cmp al, 3
je case.0x3019aaf8.4150
mov eax, dword [0x30229d78]
mov eax, dword [eax + 0x418]
test word [eax], 0x4000
mov eax, dword [ebp - 0xb0c]
je 0x3019b3a7
cmp eax, edi
jne 0x3019b393
lea eax, [edx + edx + 1]
jmp 0x3019b3a2
sub eax, 3
neg eax
sbb eax, eax
lea ecx, [edx + edx + 2]
not eax
and eax, ecx
add esi, 6
jmp 0x3019b3ba
mov ecx, dword [ebp - 0xaf0]
add esi, 6
dec eax
inc ecx
neg eax
sbb eax, eax
not eax
and eax, ecx
push 0
push 8
push esi
push 2
push 0
push eax
mov eax, dword [ebp - 0xaf4]
inc eax
push eax
call fcn.300a605b
mov eax, dword [ebp - 0xb0c]
mov ecx, dword [ebp - 0xae0]
add eax, 0xd
imul eax, eax, 0x18
push esi
push dword [eax + ecx]
call fcn.30184b81
jmp case.0x3019aaf8.4150
mov edi, dword [ebp - 0xb0c]
mov ecx, dword [ebp - 0xaf0]
push 0
add esi, 7
push 8
mov eax, edi
dec eax
inc ecx
neg eax
push esi
sbb eax, eax
push 2
not eax
and eax, ecx
push 0
push eax
mov eax, dword [ebp - 0xaf4]
inc eax
push eax
call fcn.300a605b
mov eax, dword [ebp - 0xae0]
add edi, 0xd
imul edi, edi, 0x18
push esi
push dword [edi + eax]
jmp 0x3019b3e7
mov ecx, dword [ebp - 0xad8]
cmp ecx, 0x7e
jg 0x3019b4fb
je 0x3019b4ef
cmp ecx, edi
je 0x3019b5e8
jle 0x3019b5ca
cmp ecx, 3
jle 0x3019b4af
cmp ecx, 4
je 0x3019b52a
cmp ecx, 5
jne 0x3019b5ca
cmp dword [ebp - 0xb50], 0
jl 0x3019b48d
cmp dword [ebp - 0xb50], edi
jg 0x3019b48d
push dword [ebp - 0xb50]
call fcn.3013fad1
jmp 0x3019b498
push dword [ebp - 0xb50]
call fcn.3014db6e
mov edi, eax
call fcn.30105ba5
sub eax, 7
push eax
lea eax, [esi + 7]
push eax
push edi
call fcn.3007ef6b
jmp 0x3019b52a
lea edi, [esi + 7]
push edi
call fcn.3008149e
mov eax, pe_nt_image_headers32
push eax
push eax
lea eax, [ebp - 0x214]
push eax
call fcn.300dcf7e
lea ecx, [ebp - 0x214]
sub eax, ecx
sar eax, 1
mov word [ebp - 0x214], ax
call fcn.30105ba5
sub eax, 7
push eax
push edi
lea eax, [ebp - 0x214]
push eax
jmp 0x3019b4a8
lea edi, [esi + 6]
push dword [edi]
call fcn.3010115e
jmp 0x3019b568
cmp ecx, eax
je 0x3019b525
jle 0x3019b5ca
cmp ecx, 0x203
jle 0x3019b55f
cmp ecx, 0x204
je 0x3019b52a
cmp dword [ebp - 0xad8], 0x205
jne 0x3019b5ca
and word [esi + 6], 0
test word [ebp - 0xad8], 0x200
je 0x3019b5f1
push 0xff
lea eax, [ebp - 0x212]
push eax
movsx eax, word [esi + 6]
push eax
add esi, 8
push esi
call fcn.3007f71a
mov word [ebp - 0x214], ax
jmp 0x3019b606
lea edi, [esi + 6]
push edi
call fcn.3008149e
mov eax, pe_nt_image_headers32
push eax
push eax
lea eax, [ebp - 0x214]
push eax
call fcn.300dcf7e
lea ecx, [ebp - 0x214]
sub eax, ecx
sar eax, 1
mov word [edi], ax
cmp byte [0x30225ca2], 0
movsx eax, ax
je 0x3019b5b2
lea ecx, [eax + eax]
push ecx
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [ebp - 0x212]
push eax
call dword [sym.imp.MSO.dll_Ordinal_836]
mov word [edi], ax
jmp 0x3019b52a
push eax
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [ebp - 0x212]
push eax
call dword [sym.imp.MSO.dll_Ordinal_836]
jmp 0x3019b52a
push 0
push 0x666c6c6e
mov dword [0x30229d1c], edi
call ebx
test word [ebp - 0xad8], 0x200
jne 0x3019b525
mov byte [esi + 7], 0
jmp 0x3019b52a
push pe_nt_image_headers32
lea eax, [ebp - 0x214]
push eax
add esi, 7
push esi
call fcn.3007f693
movzx ecx, word [ebp - 0x214]
xor eax, eax
mov word [ebp + ecx*2 - 0x212], ax
movzx ecx, word [ebp - 0x214]
push eax
lea ecx, [ecx + ecx + 4]
push ecx
lea ecx, [ebp - 0x214]
push ecx
mov ecx, dword [ebp - 0xaf0]
push 3
push eax
mov eax, dword [ebp - 0xb0c]
dec eax
inc ecx
neg eax
sbb eax, eax
not eax
and eax, ecx
push eax
mov eax, dword [ebp - 0xaf4]
inc eax
push eax
call fcn.300a605b
jmp case.0x3019aaf8.4150
push 0
push 0x67666e68
call ebx
mov dword [0x30229d1c], edi
jmp case.0x3019aaf8.4150
cmp byte [0x30225c90], 0
je case.0x3019aaf8.4150
mov eax, dword [ebp - 0xadc]
add eax, 0xfffffffc
je 0x3019b692
movsx eax, word [esi + 4]
mov dword [ebp - 0xb9c], eax
jmp case.0x3019aaf8.4150
push 0
push 0x7162636a
call ebx
mov dword [ebp - 0xb9c], 0x331
jmp case.0x3019aaf8.4150
cmp dword [0x3022b45c], 4
je case.0x3019aaf8.4150
movsx eax, word [esi]
mov ecx, dword [0x302ae668]
mov dword [ecx + 0x20], eax
mov ecx, dword [0x302ae668]
mov dword [ebp - 0xba0], eax
movsx eax, word [esi + 2]
mov dword [ecx + 0x24], eax
mov edx, dword [0x30229d78]
mov dword [ebp - 0xb80], eax
mov eax, dword [0x302ae668]
mov ecx, dword [eax + 0x20]
mov dword [edx + 0x258], ecx
mov eax, dword [eax + 0x24]
mov ecx, dword [0x30229d78]
mov dword [ecx + 0x25c], eax
jmp case.0x3019aaf8.4150
mov dword [ebp - 0xae0], 4
cmp dword [ebp - 0xad4], 0x85a
jne 0x3019b738
mov eax, dword [ebp - 0xc70]
cmp eax, dword [ebp - 0xc74]
jge 0x3019b72c
test eax, eax
jge 0x3019b738
push 0
push 0x7162636e
jmp 0x3019ae56
cmp dword [edx + 0x120], 0
je 0x3019b749
mov eax, dword [edx + 0x11c]
jmp 0x3019b74f
mov eax, dword [edx + 0x388]
test eax, eax
jne 0x3019b767
push eax
push 0x666c6d66
call ebx
mov edx, dword [0x302ae658]
mov dword [0x30229d1c], edi
mov ecx, dword [edx + 0x120]
test ecx, ecx
je 0x3019b779
mov eax, dword [edx + 0x11c]
jmp 0x3019b77f
mov eax, dword [edx + 0x388]
test eax, eax
je 0x3019b7a4
test ecx, ecx
je 0x3019b78f
mov edx, dword [edx + 0x11c]
jmp 0x3019b795
mov edx, dword [edx + 0x388]
mov edx, dword [edx + 0x478]
test edx, edx
je 0x3019b7a4
mov eax, dword [edx + 4]
jmp 0x3019b7a6
xor eax, eax
push eax
push dword [ebp - 0xae0]
lea eax, [ebp - 0xa10]
push esi
push eax
call fcn.300baf38
lea eax, [ebp - 0xa10]
push eax
call fcn.301a28f3
cmp dword [ebp - 0xad4], 0x85a
jne case.0x3019aaf8.4150
mov ecx, dword [ebp - 0xc70]
mov edx, dword [ebp - 0xc6c]
imul ecx, ecx, 0x70
mov esi, dword [ebp - 0xc78]
mov dword [edx + ecx], esi
mov ecx, dword [ebp - 0xc70]
mov edx, dword [ebp - 0xc6c]
imul ecx, ecx, 0x70
mov word [ecx + edx + 6], ax
inc dword [ebp - 0xc70]
jmp case.0x3019aaf8.4150
mov eax, dword [ebp - 0x1920]
add eax, 0x30
mov dword [ebp - 0x1934], eax
mov cx, word [esi + 0xe]
mov word [eax], cx
movsx eax, word [esi + 4]
mov ecx, dword [ebp - 0x1934]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1934]
fld qword [esi + 6]
fstp qword [eax + 8]
mov ecx, dword [ebp - 0x1934]
mov eax, dword [ecx + 4]
cmp eax, 0xffffffff
jl 0x3019b863
cmp eax, 9
jg 0x3019b863
cmp eax, 0xffffffff
jne case.0x3019aaf8.4150
cmp word [ecx + 0xe], 0xffff
jne case.0x3019aaf8.4150
push 0
mov dword [0x30229d1c], edi
push 0x666c7076
jmp 0x3019ae56
movsx eax, word [esi + 4]
mov ecx, dword [ebp - 0x1924]
mov dword [ecx + 0x3c], eax
mov cx, word [esi + 8]
mov eax, dword [ebp - 0x1924]
shl cx, 0xb
xor cx, word [eax]
and cx, 0x800
xor word [eax], cx
mov eax, dword [ebp - 0x1924]
test word [eax], 0x800
jne case.0x3019aaf8.4150
jmp 0x3019e7f7
mov eax, dword [ebp - 0xad4]
sub eax, 0x857
je 0x3019b8d7
sub eax, 0x13
jne 0x3019b904
cmp word [ebp - 0xc82], 0xa
jae 0x3019b904
push 0xa
push dword [ebp - 0x196c]
jmp 0x3019b8f8
push dword [ebp - 0x1934]
call fcn.30154529
cmp word [ebp - 0xc82], 9
jae 0x3019b904
mov eax, dword [ebp - 0x1934]
push 9
add eax, 0x14
push eax
lea eax, [ebp - 0x1974]
push eax
call fcn.3019751f
lea eax, [ebp - 0x1974]
push eax
call fcn.30196c82
cmp dword [ebp - 0xae8], 0
jg 0x3019bb17
call fcn.3010a1d2
mov eax, dword [ebp - 0xbb0]
push edi
mov dword [0x302ae8d0], eax
call fcn.3007c80e
test eax, eax
je 0x3019b93c
call fcn.3010a1d2
cmp dword [ebp - 0xb3c], 0
je 0x3019b950
push dword [ebp - 0xb3c]
call fcn.3007db7a
mov eax, dword [0x3022b45c]
cmp eax, 1
je 0x3019b95f
cmp eax, 4
jne 0x3019b96a
mov eax, dword [ebp - 0xc10]
mov dword [0x30229d54], eax
call fcn.30147d4d
lea eax, [ebp - 0x1974]
push eax
call fcn.30196bb1
mov eax, dword [0x30229d78]
mov ecx, dword [ebp - 0xb54]
mov dword [eax + 0x450], ecx
mov eax, dword [ebp - 0xc88]
test eax, eax
mov dword [ebp - 0xb40], eax
je 0x3019b9b8
mov eax, dword [ebp - 0xb40]
mov esi, dword [eax + 0x110]
push eax
call fcn.3014fb74
test esi, esi
mov dword [ebp - 0xb40], esi
jne 0x3019b99c
cmp dword [0x30209e20], 5
jge 0x3019b9d1
push 0x3022c73c
lea ecx, [ebp - 0xc34]
call fcn.3002f42e
mov eax, dword [0x302af380]
test eax, eax
je 0x3019b9e7
push eax
call fcn.3007871a
and dword [0x302af380], 0
xor eax, eax
lea esp, [ebp - 0x1a8c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.3020156b
leave
ret 8
movsx eax, word [esi + 4]
and dword [ebp - 0xae0], 0
cmp dword [ebp - 0xadc], 0xa
movsx ecx, word [esi + 8]
mov dword [ebp - 0xae4], eax
movsx eax, word [esi + 6]
jbe 0x3019ba2c
movsx edx, word [esi + 0xa]
mov dword [ebp - 0xae0], edx
lea edx, [ebp - 0x1974]
push edx
push dword [ebp - 0xae0]
push ecx
push eax
push dword [ebp - 0xae4]
call fcn.30196ce6
cmp eax, 0xffffffff
je 0x3019bae4
test eax, eax
je 0x3019ba7c
cmp eax, edi
je 0x3019ba6a
cmp eax, 2
je 0x3019bab8
cmp eax, 3
je 0x3019ba6a
push 0
push 0x71626465
call ebx
and dword [ebp - 0xb48], 0
mov dword [ebp - 0xb10], edi
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xae8], 0x14
jge 0x3019b91d
mov eax, dword [ebp - 0xae4]
test eax, eax
jl 0x3019bab8
cmp eax, 0x13
jae 0x3019bab8
mov ecx, dword [ebp - 0xad4]
mov edx, dword [ebp - 0xae8]
movzx eax, word [eax*2 + 0x3001b3f8]
mov dword [ebp + edx*4 - 0x19c4], ecx
jmp 0x3019f516
lea eax, [ebp - 0x1974]
push eax
push dword [ebp - 0xadc]
push dword [ebp - 0xad8]
push esi
call fcn.30198c42
test eax, eax
jne 0x3019bc02
push eax
push 0x666c7362
jmp 0x3019bbfa
push 0
push 0x366e6337
jmp 0x3019bbfa
cmp word [ebp - 0xc82], 8
jne case.0x3019aaf8.4150
cmp dword [ebp - 0xae8], 0
jle 0x3019b91d
lea eax, [ebp - 0x1974]
push eax
call fcn.30196c82
dec dword [ebp - 0xae8]
mov eax, dword [ebp - 0xae8]
mov eax, dword [ebp + eax*4 - 0x19c4]
jmp 0x3019f51c
cmp word [ebp - 0xc82], 8
jne case.0x3019aaf8.4150
movsx eax, word [esi + 4]
and dword [ebp - 0xae0], 0
cmp dword [ebp - 0xadc], 0xa
movsx ecx, word [esi + 8]
mov dword [ebp - 0xae4], eax
movsx eax, word [esi + 6]
jbe 0x3019bb69
movsx edx, word [esi + 0xa]
mov dword [ebp - 0xae0], edx
lea edx, [ebp - 0x1974]
push edx
push dword [ebp - 0xae0]
push ecx
push eax
push dword [ebp - 0xae4]
call fcn.30196ce6
cmp eax, 0xffffffff
je 0x3019bbf3
test eax, eax
je 0x3019bbae
cmp eax, edi
je 0x3019ba6a
cmp eax, 2
je 0x3019bbce
cmp eax, 3
je 0x3019ba6a
push 0
push 0x71626464
jmp 0x3019ba68
cmp dword [ebp - 0xae8], 0x14
jge 0x3019b91d
mov eax, dword [ebp - 0xae4]
test eax, eax
jl 0x3019bbce
cmp eax, 0x13
jb 0x3019ba98
lea eax, [ebp - 0x1974]
push eax
push dword [ebp - 0xadc]
push dword [ebp - 0xad8]
push esi
call fcn.30198c42
test eax, eax
jne 0x3019bc02
push eax
push 0x666c727a
jmp 0x3019bbfa
push 0
push 0x366e6336
mov dword [0x30229d1c], edi
call ebx
mov dword [ebp - 0xb10], edi
mov dword [ebp - 0xb48], edi
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xc7c], 0
jg case.0x3019aaf8.4150
cmp word [esi + 6], 4
jle 0x3019bc39
push 0
mov dword [0x30229d1c], edi
push 0x38677676
jmp 0x3019ae56
cmp dword [ebp - 0xbd4], 0
je 0x3019bc56
cmp dword [ebp - 0xc94], 0
jge 0x3019bc56
mov word [ebp - 0xc82], 8
jmp 0x3019bc62
movzx ax, byte [esi + 5]
mov word [ebp - 0xc82], ax
movzx ax, byte [esi + 4]
mov word [ebp - 0xc84], ax
movzx edi, word [esi + 6]
movsx eax, di
mov dword [ebp - 0xc7c], eax
shl eax, 3
push eax
call fcn.300ac872
dec edi
test di, di
mov dword [ebp - 0xc80], eax
jl case.0x3019aaf8.4150
movsx eax, di
mov ecx, eax
shl ecx, 3
lea eax, [esi + eax*4 + 0xa]
movsx edx, word [eax - 2]
mov esi, dword [ebp - 0xc80]
mov dword [esi + ecx], edx
movzx edx, word [eax]
mov esi, dword [ebp - 0xc80]
mov dword [ebp - 0xb04], edx
movsx edx, dx
mov dword [ecx + esi + 4], edx
dec edi
sub eax, 4
sub ecx, 8
test di, di
jge 0x3019bca0
jmp case.0x3019aaf8.4150
lea eax, [esi + 4]
movzx ecx, byte [eax]
mov dword [ebp - 0xc78], ecx
movzx cx, byte [eax]
cmp cx, word [ebp - 0xc82]
ja 0x3019bcfe
cmp byte [eax], 0xc
ja 0x3019bd03
and dword [ebp - 0xc78], 0
jmp case.0x3019aaf8.4150
cmp byte [eax], 0xc
jbe 0x3019bd2f
lea eax, [ebp - 0x1974]
push eax
push dword [ebp - 0xadc]
push 0x85a
push esi
call fcn.30198c42
test eax, eax
je case.0x3019aaf8.4150
push 0
push 0x71626466
jmp 0x3019ae56
cmp dword [ebp - 0xc6c], 0
movzx eax, word [esi + 6]
jne 0x3019bd50
push edi
push 0
push 0x70
push eax
lea eax, [ebp - 0xc6c]
push eax
call fcn.300ac981
jmp 0x3019bd74
mov ecx, dword [ebp - 0xc74]
mov edx, 0x7fffffff
sub edx, eax
cmp ecx, edx
jg 0x3019bd78
push 0
push 0x70
add eax, ecx
push eax
lea eax, [ebp - 0xc6c]
push eax
call fcn.3007ae60
test eax, eax
jne 0x3019bd82
call fcn.3010a1d2
jmp 0x3019bcf2
movzx eax, word [esi + 6]
imul eax, eax, 0x70
push eax
mov eax, dword [ebp - 0xc74]
imul eax, eax, 0x70
add eax, dword [ebp - 0xc6c]
push 0
push eax
call sub.MSVCR80.dll_memset
movzx ecx, word [esi + 6]
mov eax, dword [ebp - 0xc74]
add eax, ecx
mov ecx, dword [ebp - 0xc6c]
mov dword [ebp - 0xc74], eax
imul eax, eax, 0x70
lea eax, [eax + ecx - 0x70]
movzx ecx, word [esi + 6]
add esp, 0xc
dec ecx
js case.0x3019aaf8.4150
lea esi, [esi + ecx*4 + 0xa]
mov edx, dword [ebp - 0xc78]
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
dec ecx
sub esi, 4
sub eax, 0x70
test ecx, ecx
jge 0x3019bdd2
jmp case.0x3019aaf8.4150
cmp dword [0x30209e20], 6
jge 0x3019be19
push 0
mov dword [0x30229d1c], edi
push 0x666c7367
jmp 0x3019ae56
mov eax, dword [ebp - 0xad4]
sub eax, 0x1014
je 0x3019be3d
sub eax, 0x11
je 0x3019be71
push 0
mov dword [0x30229d1c], edi
push 0x666c7368
jmp 0x3019ae56
mov eax, dword [ebp - 0x1960]
movzx ecx, byte [eax + 0x32e]
and ecx, 0x1f
push ecx
push eax
push esi
call fcn.3015fc38
test eax, eax
mov eax, dword [ebp - 0x1960]
je 0x3019be66
add eax, 0x210
jmp 0x3019be6b
add eax, 0x374
mov dword [ebp - 0x196c], eax
mov eax, dword [ebp - 0x196c]
movzx eax, byte [eax + 0x11e]
and eax, 0x1f
push eax
push dword [ebp - 0x1960]
push esi
call fcn.3015fc38
test eax, eax
je case.0x3019aaf8.4150
test byte [esi + 0xc], 1
je 0x3019beaa
mov eax, dword [ebp - 0x196c]
or word [eax + 0x11e], 0x10
test byte [esi + 0xc], 4
je 0x3019bebe
mov eax, dword [ebp - 0x196c]
or word [eax + 0x11e], 2
test byte [esi + 0xc], 8
je 0x3019bed1
mov eax, dword [ebp - 0x196c]
or word [eax + 0x11e], di
test byte [esi + 0xc], 0x10
je 0x3019bee5
mov eax, dword [ebp - 0x196c]
or word [eax + 0x11e], 8
test byte [esi + 0xc], 2
je 0x3019bf31
mov eax, dword [ebp - 0x196c]
or word [eax + 0x11e], 4
mov eax, dword [ebp - 0x196c]
mov cl, byte [eax + 0x11e]
and cl, 0x1f
cmp cl, 4
jne 0x3019bf31
mov ecx, dword [ebp - 0x1960]
mov cx, word [ecx + 4]
and cx, 0x3fff
cmp cx, 4
je 0x3019bf28
cmp cx, 8
jne 0x3019bf31
or word [eax + 0x11e], 0x1000
movzx eax, word [esi + 0xe]
test ax, ax
jle case.0x3019aaf8.4150
movsx eax, ax
cmp eax, 0xff
jbe 0x3019bf5c
push 0
push 0x67666e71
mov dword [0x30229d1c], edi
call ebx
mov eax, 0xff
push 0xff
lea ecx, [ebp - 0x612]
push ecx
push eax
add esi, 0x10
push esi
call fcn.3007f71a
mov word [ebp - 0x614], ax
lea eax, [ebp - 0x614]
push eax
push dword [ebp - 0x196c]
call fcn.3015ff48
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1002
je case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1014
je case.0x3019aaf8.4150
push 0
mov dword [0x30229d1c], edi
push 0x666c7073
jmp 0x3019ae56
cmp word [esi], 0
je case.0x3019aaf8.4150
push 0
mov dword [0x30229d1c], edi
push 0x666c6d6a
jmp 0x3019ae56
mov eax, dword [ebp - 0x196c]
add eax, 0x148
push eax
push esi
call fcn.30197a71
mov eax, dword [ebp - 0x196c]
add eax, 0x148
push eax
push edi
jmp 0x3019d543
mov cl, byte [esi]
cmp cl, 4
jae 0x3019c02c
mov eax, dword [ebp - 0x1944]
test eax, eax
je 0x3019c02c
movzx ecx, cl
imul ecx, ecx, 0x18
lea eax, [ecx + eax + 0x128]
push eax
push esi
call fcn.30197a71
jmp case.0x3019aaf8.4150
push 0
mov dword [0x30229d1c], edi
push 0x39346676
jmp 0x3019ae56
cmp dword [ebp - 0xad4], eax
je 0x3019c058
push 0
mov dword [0x30229d1c], edi
push 0x666c6d6e
jmp 0x3019ae56
cmp dword [0x302ae904], 0x201
jne 0x3019c076
mov dword [ebp - 0xaf4], 3
mov dword [ebp - 0xb04], edi
jmp 0x3019c09c
movzx eax, word [esi]
cmp ax, 3
movzx ecx, word [esi + 4]
mov dword [ebp - 0xaf4], eax
mov dword [ebp - 0xb04], ecx
ja 0x3019c248
test cx, cx
jl 0x3019c248
mov eax, dword [ebp - 0x1944]
mov dword [ebp - 0xaec], eax
lea eax, [ebp - 0x1944]
push eax
call fcn.3014d2d0
push dword [ebp - 0x1944]
lea eax, [ebp - 0xb74]
push 0xc
push eax
call fcn.30196b6a
mov eax, dword [ebp - 0x1944]
or dword [eax + 4], 0xffffffff
cmp dword [0x30209e20], 5
jge 0x3019c0e7
mov eax, dword [ebp - 0x1944]
or word [eax + 0x26], 0x8000
mov eax, dword [ebp - 0xaec]
test eax, eax
mov ecx, dword [ebp - 0x1944]
jne 0x3019c104
mov eax, dword [0x30229d78]
mov dword [eax + 0x440], ecx
jmp 0x3019c106
mov dword [eax], ecx
mov eax, dword [0x30229d78]
inc dword [eax + 0x444]
cmp word [ebp - 0xb04], 0xfa0
mov eax, 0xf9f
jge 0x3019c128
movsx eax, word [ebp - 0xb04]
push eax
movsx eax, word [ebp - 0xaf4]
push eax
mov eax, dword [ebp - 0x1944]
add eax, 0x158
push eax
call fcn.301995c6
cmp dword [0x302ae904], 0x201
jne 0x3019c209
mov eax, edi
mov ecx, edi
mov dword [ebp - 0xb04], eax
movsx eax, ax
push eax
movsx eax, cx
push eax
mov eax, dword [ebp - 0x1944]
add eax, 0x140
push eax
call fcn.301995c6
cmp dword [0x302ae904], 0x201
jne 0x3019c1ad
mov eax, dword [ebp - 0x1944]
or word [eax + 0x15a], 0x200
mov eax, dword [ebp - 0x1944]
or word [eax + 0x142], 0x200
mov eax, dword [0x302ae8d4]
or word [eax + 0x17c], 0x4000
cmp dword [0x30209e20], 5
jle case.0x3019aaf8.4150
movzx eax, word [esi + 0xa]
test ax, ax
mov dword [ebp - 0xb04], eax
jle case.0x3019aaf8.4150
movsx eax, ax
push eax
movsx eax, word [esi + 8]
push eax
mov eax, dword [ebp - 0x1944]
add eax, 0x170
push eax
call fcn.301995c6
mov eax, dword [ebp - 0x1944]
or word [eax + 0x172], 0x200
mov eax, dword [0x302ae8d4]
or word [eax + 0x17c], 0x4000
jmp case.0x3019aaf8.4150
movzx ecx, word [esi + 2]
cmp cx, 3
movzx eax, word [esi + 6]
mov dword [ebp - 0xb04], eax
ja 0x3019c236
test ax, ax
jl 0x3019c236
cmp ax, 0xfa0
jl 0x3019c15c
mov eax, 0xf9f
jmp 0x3019c15f
push 0
mov dword [0x30229d1c], edi
push 0x39346674
jmp 0x3019ae56
push 0
mov dword [0x30229d1c], edi
push 0x39346673
jmp 0x3019ae56
cmp dword [0x30209e20], 5
jl 0x3019c321
mov eax, dword [esi]
mov ecx, dword [0x30229d78]
mov dword [ecx + 0x140], eax
mov eax, dword [esi + 4]
mov ecx, dword [0x30229d78]
mov dword [ecx + 0x144], eax
mov eax, dword [esi + 8]
mov ecx, dword [0x30229d78]
mov dword [ecx + 0x148], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [0x30229d78]
mov dword [ecx + 0x14c], eax
mov eax, dword [0x30229d78]
push 0
push 0
add eax, 0x138
push eax
call fcn.3015179f
mov eax, dword [0x30229d78]
cmp dword [eax + 0x158], 0
jle 0x3019c2cd
cmp dword [eax + 0x15c], 0
jg 0x3019c30e
push 0
push 0x666c6d6d
call ebx
mov eax, dword [0x30229d78]
mov dword [0x30229d1c], edi
mov dword [eax + 0x15c], edi
mov eax, dword [0x30229d78]
mov dword [eax + 0x158], edi
mov eax, dword [0x30229d78]
lea ecx, [eax + 0x158]
push ecx
add eax, 0x148
push eax
call fcn.3014de64
mov eax, dword [0x30229d78]
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 edi, edi
inc edi
mov eax, dword [0x30229d78]
add eax, 0x138
push eax
push 0xd
lea eax, [ebp - 0xb74]
push eax
call fcn.30196b6a
mov dword [ebp - 0xbd4], edi
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1002
jl 0x3019c47f
cmp dword [ebp - 0xad4], 0x1003
jle 0x3019c387
cmp dword [ebp - 0xad4], 0x1014
jne 0x3019c47f
mov eax, dword [ebp - 0x1960]
add eax, 0x4e4
mov dword [ebp - 0x193c], eax
jmp 0x3019c477
cmp dword [0x30209e20], 5
movzx ebx, word [esi]
movzx edi, word [esi + 2]
mov dword [ebp - 0xb04], ebx
jl 0x3019c3b0
cmp dword [ebp - 0xadc], 4
jbe 0x3019c3b0
movzx eax, word [esi + 4]
mov dword [ebp - 0xc04], eax
push 0x108
call fcn.3014dd24
push eax
mov dword [ebp - 0x193c], eax
call fcn.30144b09
mov eax, dword [ebp - 0x193c]
or word [eax + 6], 0x800
mov eax, dword [ebp - 0x193c]
or word [eax + 8], 0x200
mov eax, dword [ebp - 0x193c]
mov ecx, dword [ebp - 0xb54]
mov byte [eax], 0x4d
mov eax, dword [ebp - 0x193c]
or word [eax + 2], 0x100
mov eax, dword [ebp - 0x193c]
mov dword [eax + 0x104], ecx
mov ecx, dword [ebp - 0x193c]
movsx eax, di
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp - 0x193c]
movsx eax, bx
mov dword [ecx + 0x10], eax
cmp dword [0x30209e20], 5
jl 0x3019c45f
cmp dword [ebp - 0xadc], 6
movsx eax, word [ebp - 0xc04]
mov ecx, dword [ebp - 0x193c]
mov dword [ecx + 0x20], eax
jbe 0x3019c46b
mov eax, dword [ebp - 0x193c]
mov cx, word [esi + 6]
mov dx, word [eax + 6]
shl cx, 0xf
and dx, 0x7fff
or cx, dx
mov word [eax + 6], cx
jmp 0x3019c46b
mov eax, dword [ebp - 0x193c]
or word [eax + 6], 0x8000
mov eax, dword [ebp - 0x193c]
mov dword [ebp - 0xb54], eax
push eax
push 0xe
jmp 0x3019d543
push 0
push 0x666c6d75
mov dword [0x30229d1c], edi
call ebx
or dword [ebp - 0xad8], 0xffffffff
jmp case.0x3019aaf8.4150
xor cx, cx
cmp cx, ax
sbb eax, eax
neg eax
push eax
call fcn.30146867
and dword [ebp - 0xb94], 0
test eax, eax
mov dword [ebp - 0x1960], eax
je 0x3019b922
mov byte [eax + 0x4e4], 0x4d
mov eax, dword [ebp - 0x1960]
or word [eax + 0x4e6], 0x100
cmp dword [0x30209e20], 4
jle 0x3019c50a
cmp dword [ebp - 0xadc], 0x14
jb 0x3019c50a
movsx eax, word [esi + 0x12]
push 9
push 0
push eax
call fcn.3019824c
mov ecx, dword [0x30229d78]
mov edx, dword [ebp - 0x1960]
mov dword [ecx + eax*4 + 0x418], edx
jmp 0x3019c552
mov eax, dword [0x30229d78]
mov ecx, dword [eax + 0x454]
imul ecx, ecx, 0x8e4
lea eax, [ecx + eax + 0x458]
push eax
mov dword [ebp - 0x1964], eax
call fcn.301454a6
mov eax, dword [0x30229d78]
inc dword [eax + 0x454]
mov eax, dword [0x30229d78]
movzx ecx, byte [eax + 0x268]
mov edx, dword [ebp - 0x1960]
mov dword [eax + ecx*4 + 0x418], edx
mov eax, dword [0x30229d78]
inc byte [eax + 0x268]
push dword [ebp - 0x1960]
lea eax, [ebp - 0xb74]
push 5
push eax
call fcn.30196b6a
mov eax, dword [ebp - 0x1960]
mov ecx, dword [ebp - 0x1964]
mov dword [eax + 0x24], ecx
movzx ecx, byte [esi + 0x10]
mov eax, dword [ebp - 0x1960]
shl cl, 3
xor cl, byte [eax]
and ecx, 8
xor word [eax], cx
mov eax, dword [0x30229d78]
movzx eax, word [eax + 0x268]
cmp al, 2
jne 0x3019c5b5
test ax, 0x400
jne 0x3019c5b5
mov eax, dword [ebp - 0x1960]
or word [eax], 0x10
cmp dword [0x30209e20], 5
jl case.0x3019aaf8.4150
mov esi, dword [ebp - 0x191c]
test esi, esi
je 0x3019c5f4
mov edi, dword [ebp - 0x1960]
push 0x3a
pop ecx
add edi, 0x680
push 0xe8
rep movsd dword es:[edi], dword [esi]
push dword [ebp - 0x191c]
call fcn.3014dd39
and dword [ebp - 0x191c], 0
mov esi, dword [ebp - 0x1918]
test esi, esi
je case.0x3019aaf8.4150
mov edi, dword [ebp - 0x1960]
push 0x3a
pop ecx
add edi, 0x770
push 0xe8
rep movsd dword es:[edi], dword [esi]
push dword [ebp - 0x1918]
call fcn.3014dd39
and dword [ebp - 0x1918], 0
jmp case.0x3019aaf8.4150
mov eax, dword [ebp - 0xad4]
sub eax, 0x1003
je 0x3019c66b
sub eax, 0x22
je 0x3019c653
push 0
mov dword [0x30229d1c], edi
push 0x666c6f61
jmp 0x3019ae56
mov eax, dword [ebp - 0x196c]
push eax
add eax, 0x148
push eax
push esi
call fcn.301976f3
jmp case.0x3019aaf8.4150
movzx eax, word [esi]
push 3
movsx eax, ax
push 0
push eax
call fcn.3019824c
movzx ecx, ax
mov eax, dword [ebp - 0x1944]
test eax, eax
jne 0x3019c699
push eax
mov dword [0x30229d1c], edi
push 0x39346677
jmp 0x3019ae56
push dword [eax + 8]
movsx ecx, cx
imul ecx, ecx, 0x18
lea eax, [ecx + eax + 0x128]
push eax
push esi
call fcn.30197934
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], eax
je 0x3019c6cf
push 0
mov dword [0x30229d1c], edi
push 0x666c6e6e
jmp 0x3019ae56
mov eax, dword [ebp - 0x193c]
and word [eax + 8], 0xffe0
cmp dword [0x30209e20], 5
jl 0x3019c6ea
test byte [esi], 0x10
je 0x3019c705
jmp 0x3019c6ef
test byte [esi], 1
jne 0x3019c705
mov eax, dword [ebp - 0x193c]
mov cx, word [eax + 8]
and cx, 0xffe4
or cx, 4
mov word [eax + 8], cx
test byte [esi], 8
je 0x3019c716
mov eax, dword [ebp - 0x193c]
or word [eax + 6], 0x4000
test byte [esi], 2
je 0x3019c725
mov eax, dword [ebp - 0x193c]
or word [eax + 8], di
movzx eax, word [esi]
test al, 1
je 0x3019c73b
test al, 2
jne 0x3019c73b
mov eax, dword [ebp - 0x193c]
or word [eax + 8], 2
cmp dword [0x30209e20], 5
jle 0x3019c754
test byte [esi], 0x20
je 0x3019c754
mov eax, dword [ebp - 0x193c]
or word [eax + 8], 8
test byte [esi], 4
je 0x3019c764
mov eax, dword [ebp - 0x193c]
or word [eax + 8], 5
test byte [esi], 0x40
je case.0x3019aaf8.4150
mov eax, dword [ebp - 0x193c]
or word [eax + 8], 0x10
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], eax
je 0x3019c797
push 0
mov dword [0x30229d1c], edi
push 0x666c6e6d
jmp 0x3019ae56
movsx eax, word [esi]
mov ecx, dword [ebp - 0x193c]
mov dword [ecx + 0x1c], eax
jmp case.0x3019aaf8.4150
mov ecx, dword [ebp - 0xad4]
sub ecx, eax
je 0x3019c903
sub ecx, 0x17
je 0x3019c83a
sub ecx, 0x15
je 0x3019c82f
sub ecx, 0xb
je 0x3019c7d1
push 0
push 0x666c6e62
jmp 0x3019b65e
cmp dword [ebp - 0xb4c], 0
mov eax, dword [ebp - 0x1960]
je 0x3019c7eb
lea ecx, [eax + 0x40]
add eax, 0x3c
jmp 0x3019c90f
lea ecx, [eax + 0x128]
push ecx
add eax, 0x124
push eax
push esi
call fcn.30198ebe
mov eax, dword [ebp - 0x1960]
test byte [eax + 0x127], 1
je case.0x3019aaf8.4150
add eax, 0x124
movzx ecx, word [eax]
movzx edx, cl
mov byte [eax], ch
mov eax, dword [ebp - 0x1960]
mov byte [eax + 0x125], dl
jmp case.0x3019aaf8.4150
mov eax, dword [ebp - 0x1958]
jmp 0x3019c8fe
cmp dword [ebp - 0x1928], 0
jne 0x3019c84f
push 0
push 0x67666e69
jmp 0x3019b65e
mov eax, dword [ebp - 0xb34]
lea ecx, [eax + 0x148]
cmp dword [ebp - 0x1928], ecx
jne 0x3019c8a9
cmp dword [0x30209e20], 5
jge 0x3019c87f
mov eax, dword [ebp - 0x1960]
add eax, 0x680
mov dword [ebp - 0x191c], eax
jmp 0x3019c8fe
mov eax, dword [ebp - 0x191c]
test eax, eax
jne 0x3019c8fe
push 0xe8
call fcn.3014dd24
push 0
push eax
mov dword [ebp - 0x191c], eax
call fcn.30142ff7
mov eax, dword [ebp - 0x191c]
jmp 0x3019c8fe
add eax, 0x110
cmp dword [ebp - 0x1928], eax
jne case.0x3019aaf8.4150
cmp dword [0x30209e20], 5
jge 0x3019c8d6
mov eax, dword [ebp - 0x1960]
add eax, 0x770
mov dword [ebp - 0x1918], eax
jmp 0x3019c8fe
mov eax, dword [ebp - 0x1918]
test eax, eax
jne 0x3019c8fe
push 0xe8
call fcn.3014dd24
push 0
push eax
mov dword [ebp - 0x1918], eax
call fcn.30142ff7
mov eax, dword [ebp - 0x1918]
lea ecx, [eax + 8]
jmp 0x3019c90c
mov eax, dword [ebp - 0x193c]
lea ecx, [eax + 0x24]
add eax, 4
push ecx
push eax
push esi
call fcn.30198ebe
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], eax
je 0x3019c936
push 0
mov dword [0x30229d1c], edi
push 0x666c6e61
jmp 0x3019ae56
cmp dword [0x30209e20], 6
jl 0x3019c97e
mov al, byte [esi + 0xc]
xor al, byte [ebp - 0xafe]
push 0x5a0
push 0x28
and ax, 0xff
xor word [ebp - 0xafe], ax
xor eax, eax
mov ah, byte [esi + 0xe]
mov al, byte [ebp - 0xb00]
mov word [ebp - 0xb00], ax
mov eax, dword [esi + 0x10]
push eax
call fcn.3019824c
mov word [ebp - 0xafc], ax
jmp 0x3019c9bc
mov eax, dword [esi]
push edi
push eax
call fcn.300ab44c
xor al, byte [ebp - 0xafe]
push edi
and ax, 0xff
xor word [ebp - 0xafe], ax
mov eax, dword [esi + 4]
push eax
call fcn.300ab44c
xor ecx, ecx
mov ch, al
mov word [ebp - 0xafc], 0x64
mov cl, byte [ebp - 0xb00]
mov word [ebp - 0xb00], cx
movzx eax, word [esi + 8]
push 9
movsx eax, ax
push 0
push eax
call fcn.3019824c
xor al, byte [ebp - 0xb00]
xor ecx, ecx
and ax, 0xff
xor word [ebp - 0xb00], ax
movzx eax, word [esi + 0xa]
mov ch, al
xor ecx, dword [ebp - 0xafe]
and cx, 0x100
xor word [ebp - 0xafe], cx
cmp dword [0x302ae904], 0x201
jne 0x3019ca2f
test al, 2
jne 0x3019ca13
and word [ebp - 0xb00], 0xff00
jmp 0x3019ca5b
mov ax, word [esi + 0xa]
shl ax, 7
xor ax, word [ebp - 0xafe]
and ax, 0x600
xor word [ebp - 0xafe], ax
jmp 0x3019ca5b
movzx ecx, al
shr cl, 5
not cl
shr al, 4
not al
and ecx, edi
add ecx, ecx
and eax, edi
or ecx, eax
mov eax, dword [ebp - 0xafe]
shl ecx, 9
and eax, 0xfffff9ff
or ecx, eax
mov word [ebp - 0xafe], cx
mov edi, dword [ebp - 0x193c]
add edi, 0x14
lea esi, [ebp - 0xb00]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, dword [ebp - 0x193c]
and word [eax + 6], 0xf7ff
jmp case.0x3019aaf8.4150
mov edx, dword [ebp - 0xad4]
mov ecx, 0x1021
cmp edx, ecx
jg 0x3019cd7a
je 0x3019cc3e
sub edx, eax
je 0x3019cb59
sub edx, 0xe
je 0x3019cae1
sub edx, 8
je 0x3019caf6
dec edx
jne 0x3019cd8d
cmp dword [ebp - 0xaec], ecx
jne 0x3019cacf
xor ecx, ecx
cmp dword [ebp - 0xb28], ecx
jl 0x3019cacf
cmp dword [ebp - 0xb28], 3
jle 0x3019cc40
push 0
mov dword [0x30229d1c], edi
push 0x666c6d78
jmp 0x3019ae56
cmp dword [ebp - 0xaec], 0x101c
jne 0x3019cb47
cmp dword [ebp - 0xb28], 3
ja 0x3019cb47
mov eax, dword [ebp - 0xb28]
sub eax, 0
je 0x3019cb2b
dec eax
je 0x3019cb20
dec eax
je 0x3019cb15
dec eax
jne 0x3019cb3b
mov eax, dword [ebp - 0x1960]
add eax, 0x34
jmp 0x3019cb34
mov eax, dword [ebp - 0x1960]
add eax, 0x30
jmp 0x3019cb34
mov eax, dword [ebp - 0x1960]
add eax, 0x2c
jmp 0x3019cb34
mov eax, dword [ebp - 0x1960]
add eax, 0x28
push eax
push esi
call fcn.30198d4b
or dword [ebp - 0xb28], 0xffffffff
jmp case.0x3019aaf8.4150
push 0
mov dword [0x30229d1c], edi
push 0x666c6d77
jmp 0x3019ae56
cmp dword [0x302ae904], 0x201
jne 0x3019cc2d
cmp dword [ebp - 0xbb4], 0
je 0x3019cb83
push dword [ebp - 0x193c]
push esi
call fcn.30198d4b
jmp 0x3019cc17
cmp dword [ebp - 0xb3c], 0
jne 0x3019cb9c
push edi
push 4
push 0xc
call fcn.30082bcf
mov dword [ebp - 0xb3c], eax
xor eax, eax
lea edi, [ebp - 0xbe0]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0xbe0]
push eax
lea eax, [ebp - 0xb3c]
push eax
call fcn.30082a1a
mov edi, eax
lea eax, [ebp - 0xbe0]
push eax
push esi
call fcn.30198d4b
mov eax, dword [ebp - 0x1960]
lea ecx, [eax + 0x4e4]
mov eax, dword [ebp - 0x193c]
cmp eax, ecx
jne 0x3019cbef
or dword [ebp - 0xbdc], 0xffffffff
or dword [ebp - 0xbd8], 0xffffffff
jmp 0x3019cc01
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xbdc], ecx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xbd8], eax
mov eax, dword [ebp - 0xb3c]
imul edi, edi, 0xc
lea edi, [edi + eax + 8]
lea esi, [ebp - 0xbe0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor eax, eax
cmp dword [ebp - 0xbb4], eax
sete al
mov dword [ebp - 0xbb4], eax
jmp 0x3019ca6d
push dword [ebp - 0x193c]
push esi
call fcn.30198d4b
jmp 0x3019ca6d
xor ecx, ecx
mov eax, dword [ebp - 0xb28]
sub eax, ecx
je 0x3019cd4e
dec eax
je 0x3019cd43
dec eax
je 0x3019cd38
dec eax
jne 0x3019cb3b
mov eax, dword [ebp - 0xb34]
lea edx, [eax + 0x148]
cmp dword [ebp - 0x1928], edx
jne 0x3019cccf
cmp dword [0x30209e20], 5
jge 0x3019cca4
cmp dword [ebp - 0x1960], ecx
jne 0x3019cc91
push 0
push 0x71626370
call ebx
mov eax, dword [ebp - 0x1960]
add eax, 0x680
mov dword [ebp - 0x191c], eax
jmp 0x3019ccc4
cmp dword [ebp - 0x191c], ecx
jne 0x3019ccc4
push 0xe8
call fcn.3014dd24
push 0
push eax
mov dword [ebp - 0x191c], eax
call fcn.30142ff7
push dword [ebp - 0x191c]
jmp 0x3019cb35
add eax, 0x110
cmp dword [ebp - 0x1928], eax
jne 0x3019cb3b
cmp dword [0x30209e20], 5
jge 0x3019cd0d
cmp dword [ebp - 0x1960], ecx
jne 0x3019ccfa
push 0
push 0x71626371
call ebx
mov eax, dword [ebp - 0x1960]
add eax, 0x770
mov dword [ebp - 0x1918], eax
jmp 0x3019cd2d
cmp dword [ebp - 0x1918], ecx
jne 0x3019cd2d
push 0xe8
call fcn.3014dd24
push 0
push eax
mov dword [ebp - 0x1918], eax
call fcn.30142ff7
push dword [ebp - 0x1918]
jmp 0x3019cb35
mov eax, dword [ebp - 0x1928]
jmp 0x3019cb1b
mov eax, dword [ebp - 0x1928]
jmp 0x3019cb26
mov eax, dword [ebp - 0x1928]
add eax, 0x28
push eax
push esi
call fcn.30198d4b
mov ecx, dword [ebp - 0x1928]
mov dx, word [ecx]
and dx, 0x7fff
shl eax, 0xf
or dx, ax
mov word [ecx], dx
jmp 0x3019cb3b
mov eax, edx
sub eax, 0x102d
je 0x3019cdc2
sub eax, 5
je 0x3019cdba
sub eax, 0xb
je 0x3019cd9f
push 0
mov dword [0x30229d1c], edi
push 0x666c6d76
jmp 0x3019ae56
cmp dword [ebp - 0xb4c], 0
mov eax, dword [ebp - 0x1960]
je 0x3019cdb3
add eax, 0x38
jmp 0x3019cdcd
add eax, 0x120
jmp 0x3019cdcd
push dword [ebp - 0x1958]
jmp 0x3019cdce
mov eax, dword [ebp - 0x196c]
add eax, 0x140
push eax
push esi
call fcn.30198d4b
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1014
je 0x3019ce03
cmp dword [ebp - 0xad4], 0x1063
je 0x3019ce0f
push 0
mov dword [0x30229d1c], edi
push 0x666c6f70
jmp 0x3019ae56
cmp dword [ebp - 0xad4], 0x1063
jne 0x3019ce1d
mov edi, dword [0x30229d78]
add edi, 0x26c
jmp 0x3019ce29
mov edi, dword [0x30229d78]
add edi, 0x1964
push edi
push esi
call fcn.30197dba
push edi
push 9
jmp 0x3019d543
movzx eax, word [esi]
push 3
movsx eax, ax
push 0
push eax
call fcn.3019824c
mov dword [ebp - 0xb0c], eax
jmp case.0x3019aaf8.4150
movsx eax, word [esi]
mov ecx, dword [0x30229d78]
mov dword [ecx + 0x408], eax
movsx eax, word [esi + 2]
mov ecx, dword [0x30229d78]
mov dword [ecx + 0x40c], eax
movsx eax, word [esi + 4]
mov ecx, dword [0x30229d78]
mov dword [ecx + 0x410], eax
movsx eax, word [esi + 6]
mov ecx, dword [0x30229d78]
mov dword [ecx + 0x414], eax
jmp case.0x3019aaf8.4150
mov eax, dword [esi]
mov ecx, dword [0x30229d78]
mov dword [ecx + 0x1638], eax
mov eax, dword [esi + 4]
mov ecx, dword [0x30229d78]
mov dword [ecx + 0x163c], eax
jmp case.0x3019aaf8.4150
movsx eax, word [esi]
mov ecx, dword [ebp - 0x1944]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1944]
mov eax, dword [eax + 4]
test eax, eax
jl 0x3019cedb
cmp eax, 0xa
jl case.0x3019aaf8.4150
push 0
mov dword [0x30229d1c], edi
push 0x39377438
jmp 0x3019ae56
cmp dword [ebp - 0xad4], 0x1003
je 0x3019cf0b
push 0
mov dword [0x30229d1c], edi
push 0x666c6d6f
jmp 0x3019ae56
movsx eax, word [esi]
mov ecx, dword [ebp - 0x1944]
mov dword [ecx + 0x14], eax
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1003
je 0x3019cf3a
push 0
mov dword [0x30229d1c], edi
push 0x666c6d71
jmp 0x3019ae56
mov eax, dword [ebp - 0x1944]
mov ecx, dword [eax + 0x1c]
and ecx, 0xfffffffa
or ecx, 2
mov dword [eax + 0x1c], ecx
push dword [ebp - 0x1944]
call fcn.30199672
cmp byte [esi], 4
ja 0x3019cfa0
push 0xb0
call fcn.3014dd24
mov ecx, dword [ebp - 0x1944]
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]
fstp qword [eax + 0x20]
jmp case.0x3019aaf8.4150
push 0
mov dword [0x30229d1c], edi
push 0x38786a67
jmp 0x3019ae56
cmp dword [ebp - 0xad4], 0x1003
je 0x3019cfd0
push 0
mov dword [0x30229d1c], edi
push 0x666c6d72
jmp 0x3019ae56
mov eax, dword [ebp - 0x1944]
mov ecx, dword [eax + 0x1c]
and ecx, 0xfffffffb
or ecx, 3
mov dword [eax + 0x1c], ecx
mov eax, dword [ebp - 0x1944]
or dword [eax + 0x1c], 0x80
cmp byte [esi + 1], 4
je 0x3019d000
push dword [ebp - 0x1944]
call fcn.30199672
cmp dword [ebp - 0xadc], 0xc
jbe 0x3019d00f
movzx eax, word [esi + 0xc]
jmp 0x3019d011
mov eax, edi
movsx ebx, ax
push edi
lea eax, [ebx - 1]
push eax
call fcn.3007f8c2
lea eax, [eax*8 + 0x10]
push eax
call fcn.300ac872
mov ecx, dword [ebp - 0x1944]
mov dword [ecx + 0x18], eax
mov dword [eax + 4], ebx
movzx edx, byte [esi]
mov ecx, dword [ebp - 0x1944]
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 cx, 0xfff8
or dx, cx
mov word [eax], dx
mov cl, byte [esi + 2]
and cl, 1
movzx cx, cl
and dx, 0xfff7
shl cx, 3
or cx, dx
mov word [eax], cx
mov dl, byte [esi + 3]
and dl, 1
movzx dx, dl
shl dx, 4
and cx, 0xffef
or dx, cx
mov word [eax], dx
fld qword [esi + 4]
fstp qword [eax + 8]
jmp case.0x3019aaf8.4150
mov eax, dword [ebp - 0xad4]
sub eax, 0x1003
je 0x3019d0cf
sub eax, 0x22
je 0x3019d0c2
push 0
mov dword [0x30229d1c], edi
push 0x666c6d73
jmp 0x3019ae56
mov eax, dword [ebp - 0x196c]
add eax, 0x148
jmp 0x3019d0ec
movzx eax, byte [esi]
push 3
push 0
push eax
call fcn.3019824c
imul eax, eax, 0x18
mov ecx, dword [ebp - 0x1944]
lea eax, [ecx + eax + 0x128]
push eax
push esi
call fcn.30197991
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1006
je 0x3019d122
cmp dword [ebp - 0xad4], 0x1066
je 0x3019d122
push 0
mov dword [0x30229d1c], edi
push 0x666c6e65
jmp 0x3019ae56
push 0x18
call fcn.3014dd24
mov edx, eax
xor eax, eax
push 6
pop ecx
mov edi, edx
rep stosd dword es:[edi], eax
cmp word [esi + 2], 2
mov dword [ebp - 0xb24], edx
sete al
shl al, 5
xor al, byte [edx + 4]
mov edi, edx
and eax, 0x20
xor word [edx + 4], ax
movzx eax, byte [esi + 4]
movzx ecx, word [edx + 4]
shl al, 3
xor al, cl
and eax, 0x18
xor eax, ecx
mov word [edx + 4], ax
and al, 0x18
cmp al, 0x10
je 0x3019d183
test byte [edi + 4], 0x20
jne 0x3019d183
mov ax, word [edi + 4]
and ax, 0xffef
or ax, 8
mov word [edi + 4], ax
mov ax, word [esi + 4]
shr ax, 1
xor al, byte [edi + 4]
and ax, 0x80
xor word [edi + 4], ax
movzx ecx, word [edi + 4]
mov ax, word [esi + 4]
shr ax, 1
xor ax, cx
and ax, 0x100
xor ax, cx
mov word [edi + 4], ax
mov cx, word [esi + 4]
shr cx, 1
xor cx, ax
and cx, 0x200
xor cx, ax
mov word [edi + 4], cx
movzx eax, word [esi + 4]
shr ax, 1
xor ax, cx
and ax, 0x400
xor ax, cx
mov word [edi + 4], ax
movzx ecx, byte [esi]
xor cl, al
and ecx, 7
xor ecx, eax
mov word [edi + 4], cx
fld qword [esi + 6]
mov esi, 0x1066
fstp qword [edi + 6]
cmp dword [ebp - 0xad4], esi
je 0x3019d228
cmp dword [ebp - 0xad4], 0x1006
je 0x3019d20f
push 0
push 0x71626372
call ebx
mov eax, dword [ebp - 0x193c]
lea ecx, [eax + 0x24]
add eax, 4
push eax
push ecx
mov dword [ebp - 0x1954], ecx
call fcn.301ca289
mov eax, dword [ebp - 0x1954]
add eax, 4
push eax
push 0xb
lea eax, [ebp - 0xb74]
push eax
call fcn.30196b6a
mov cx, word [edi + 4]
mov eax, dword [ebp - 0x1954]
shr cx, 7
shl cl, 3
xor cl, byte [eax + 4]
and cl, 8
xor byte [eax + 4], cl
mov cl, byte [edi + 5]
mov eax, dword [ebp - 0x1954]
shl cl, 4
xor cl, byte [eax + 4]
and cl, 0x10
xor byte [eax + 4], cl
mov cx, word [edi + 4]
mov eax, dword [ebp - 0x1954]
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 - 0x1954]
shr cx, 0xa
shl cl, 6
xor cl, byte [eax + 4]
and cl, 0x40
xor byte [eax + 4], cl
mov eax, dword [ebp - 0x1954]
mov cl, byte [eax + 4]
xor cl, byte [edi + 4]
and cl, 7
xor byte [eax + 4], cl
mov eax, dword [ebp - 0x1954]
and dword [eax + 0x10], 0
fld qword [edi + 6]
cmp dword [ebp - 0xad4], esi
mov eax, dword [ebp - 0x1954]
fstp qword [eax + 5]
mov eax, dword [ebp - 0x1954]
je 0x3019d2e3
test byte [eax + 4], 8
je case.0x3019aaf8.4150
test byte [eax + 4], 8
je 0x3019d2ed
or word [eax], 1
push edi
call dword [sym.imp.MSO.dll_Ordinal_652]
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1006
je 0x3019d317
push 0
mov dword [0x30229d1c], edi
push 0x666c6e6f
jmp 0x3019ae56
mov cx, word [esi]
mov eax, dword [ebp - 0x193c]
shl cx, 0xe
xor cx, word [eax + 6]
and cx, 0x4000
xor word [eax + 6], cx
mov cx, word [esi]
mov eax, dword [ebp - 0x193c]
shl cx, 0xc
xor cx, word [eax + 6]
and cx, 0x2000
xor word [eax + 6], cx
mov eax, dword [ebp - 0x193c]
xor ecx, ecx
mov ch, byte [esi]
xor cx, word [eax + 6]
and cx, 0x400
jmp 0x3019ae6a
mov dword [ebp - 0x19ec], 0x30017a8c
call fcn.300ad101
lea eax, [ebp - 0x888]
push eax
call fcn.301ca1e3
cmp dword [0x30209e20], 6
jg 0x3019d398
mov eax, dword [0x302ae820]
and eax, 0xffff
cmp eax, 0xc87
jl 0x3019d401
push dword [0x302ae888]
push dword [ebp - 0xadc]
call fcn.30105ba5
push eax
push esi
lea eax, [ebp - 0x19ec]
push eax
call fcn.3012ed51
lea eax, [ebp - 0x86c]
push eax
push 6
mov esi, 0x3020a28c
push esi
call dword [sym.imp.MSO.dll_Ordinal_532]
test eax, eax
jne 0x3019d3eb
push eax
push 0x71626373
call ebx
lea eax, [ebp - 0x19ec]
push eax
mov ecx, esi
call fcn.3012dccf
jmp case.0x3019aaf8.4150
lea eax, [ebp - 0x19ec]
push eax
mov dword [ebp - 0x858], 0x100000f4
call fcn.3012dd1d
mov eax, dword [ebp - 0x86c]
or word [ebp - 0x888], di
cmp eax, 4
je 0x3019d422
cmp eax, 5
je 0x3019d422
cmp eax, 6
je 0x3019d422
cmp eax, 7
jne 0x3019d42e
lea eax, [ebp - 0x86c]
push eax
call fcn.301c964a
mov eax, dword [ebp - 0xad4]
sub eax, 0x1006
je 0x3019d521
sub eax, 0x17
je 0x3019d49b
sub eax, 0x15
je 0x3019d48d
sub eax, 0xb
je 0x3019d462
push 0
push 0x666c6e77
mov dword [0x30229d1c], edi
call ebx
jmp 0x3019d53b
cmp dword [ebp - 0xb4c], 0
mov edi, dword [ebp - 0x1960]
push 0x37
lea esi, [ebp - 0x888]
pop ecx
je 0x3019d482
add edi, 0x40
jmp 0x3019d533
add edi, 0x128
jmp 0x3019d533
mov edi, dword [ebp - 0x1958]
add edi, 8
jmp 0x3019d52a
xor ecx, ecx
cmp dword [ebp - 0x1928], ecx
jne 0x3019d4ad
push ecx
push 0x666c6e78
jmp 0x3019d455
mov eax, dword [ebp - 0xb34]
lea edx, [eax + 0x148]
cmp dword [ebp - 0x1928], edx
jne 0x3019d4e9
cmp dword [ebp - 0x191c], ecx
jne 0x3019d4e1
push 0xe8
call fcn.3014dd24
push 0
push eax
mov dword [ebp - 0x191c], eax
call fcn.30142ff7
mov edi, dword [ebp - 0x191c]
jmp 0x3019d493
add eax, 0x110
cmp dword [ebp - 0x1928], eax
jne 0x3019d53b
cmp dword [ebp - 0x1918], ecx
jne 0x3019d516
push 0xe8
call fcn.3014dd24
push 0
push eax
mov dword [ebp - 0x1918], eax
call fcn.30142ff7
mov edi, dword [ebp - 0x1918]
jmp 0x3019d493
mov edi, dword [ebp - 0x193c]
add edi, 0x24
push 0x37
lea esi, [ebp - 0x888]
pop ecx
mov dword [ebp - 0x1954], edi
rep movsd dword es:[edi], dword [esi]
push dword [ebp - 0x1954]
push 8
lea eax, [ebp - 0xb74]
push eax
call fcn.30196b6a
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1004
je case.0x3019aaf8.4150
push 0
mov dword [0x30229d1c], edi
push 0x666c6f63
jmp 0x3019ae56
cmp dword [ebp - 0x1928], 0
je 0x3019d71b
cmp dword [ebp - 0xad4], 0x101d
jne 0x3019d71b
movzx eax, word [esi]
mov esi, 0x3022c73c
mov ecx, esi
movsx edi, ax
call fcn.3002f44e
dec eax
push eax
push 0
push edi
call fcn.3019824c
push edi
mov ecx, esi
call fcn.3002f455
mov ecx, dword [ebp - 0x1928]
mov byte [ecx + 2], al
mov eax, dword [ebp - 0x1928]
cmp byte [eax + 2], 0xff
jne 0x3019d710
cmp dword [0x30209e20], 6
jge 0x3019d627
mov ecx, dword [0x30229d18]
cmp ecx, 0x3a4
je 0x3019d627
cmp ecx, 0x3b5
je 0x3019d627
cmp ecx, 0x3b6
je 0x3019d627
cmp ecx, 0x3a8
je 0x3019d627
cmp ecx, 0x2711
je 0x3019d627
cmp ecx, 0x2713
je 0x3019d627
cmp ecx, 0x2712
je 0x3019d627
cmp ecx, 0x272f
je 0x3019d627
cmp ecx, 0x2729
jne 0x3019d64f
cmp edi, 0x1b
jl 0x3019d64f
cmp edi, 0x1f
jle 0x3019d645
cmp edi, 0x23
jle 0x3019d679
cmp edi, 0x24
je 0x3019d645
cmp edi, 0x31
jle 0x3019d64f
cmp edi, 0x3a
jg 0x3019d64f
mov byte [eax + 2], 0x13
mov eax, dword [ebp - 0x1928]
cmp byte [eax + 2], 0xff
jne 0x3019d710
test byte [0x3022cf88], 1
jne 0x3019d710
lea ecx, [edi - 0x3b]
cmp ecx, 0x16
ja case.default.0x3019d672
jmp dword [ecx*4 + 0x301a0f11]
mov byte [eax + 2], 0x1a
jmp 0x3019d649
mov byte [eax + 2], 1
jmp 0x3019d70a
mov byte [eax + 2], 2
jmp 0x3019d70a
mov byte [eax + 2], 3
jmp 0x3019d70a
mov byte [eax + 2], 4
jmp 0x3019d70a
mov byte [eax + 2], 9
jmp 0x3019d70a
mov byte [eax + 2], 0xa
jmp 0x3019d70a
mov byte [eax + 2], 0xb
jmp 0x3019d70a
mov byte [eax + 2], 0xc
jmp 0x3019d70a
mov byte [eax + 2], 0xd
jmp 0x3019d70a
mov byte [eax + 2], 0xe
jmp 0x3019d70a
mov byte [eax + 2], 0x11
jmp 0x3019d70a
mov byte [eax + 2], 0x12
jmp 0x3019d70a
mov byte [eax + 2], 0x13
jmp 0x3019d70a
mov byte [eax + 2], 0x14
jmp 0x3019d70a
mov byte [eax + 2], 0x15
jmp 0x3019d70a
mov byte [eax + 2], 0x16
jmp 0x3019d70a
mov byte [eax + 2], 0x19
jmp 0x3019d70a
mov byte [eax + 2], 0x1a
jmp 0x3019d70a
mov byte [eax + 2], 0x1b
jmp 0x3019d70a
mov byte [eax + 2], 0x1f
jmp 0x3019d70a
mov byte [eax + 2], 0x1c
jmp 0x3019d70a
mov byte [eax + 2], 0x1d
jmp 0x3019d70a
mov byte [eax + 2], 0
mov eax, dword [ebp - 0x1928]
or word [eax + 2], 0x100
jmp case.0x3019aaf8.4150
push 0
mov dword [0x30229d1c], edi
push 0x666c6f66
jmp 0x3019ae56
cmp dword [ebp - 0xad4], 0x1025
je 0x3019d74b
push 0
mov dword [0x30229d1c], edi
push 0x666c6f68
jmp 0x3019ae56
mov eax, dword [ebp - 0x196c]
or word [eax + 0x14a], 0x8000
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1003
je 0x3019d77d
push 0
mov dword [0x30229d1c], edi
push 0x666c6f6e
jmp 0x3019ae56
mov eax, dword [0x30229d78]
add eax, 0x1800
push eax
call fcn.3014af76
push 0x24
call fcn.3014dd24
mov edi, eax
push edi
call fcn.30144980
movsx eax, word [esi]
mov dword [edi], eax
lea eax, [edi + 4]
movzx ecx, byte [eax]
xor cl, byte [esi + 2]
push edi
push 0xa
and ecx, 2
xor word [eax], cx
movzx ecx, word [eax]
movzx edx, byte [esi + 2]
and dword [edi + 0x1c], 0
xor dl, cl
and edx, 1
xor edx, ecx
mov word [eax], dx
mov eax, dword [ebp - 0x1944]
mov eax, dword [eax + 0xc]
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x1944]
mov dword [eax + 0xc], edi
lea eax, [ebp - 0xb74]
push eax
call fcn.30196b6a
inc dword [ebp - 0xbc8]
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1006
je 0x3019d812
push 0
mov dword [0x30229d1c], edi
push 0x666c6f6f
jmp 0x3019ae56
mov cl, byte [esi + 1]
mov eax, dword [ebp - 0x193c]
mov dx, word [eax + 8]
and cl, 3
movzx cx, cl
shl cx, 7
and dx, 0xfe7f
or cx, dx
mov word [eax + 8], cx
mov cl, byte [esi]
mov eax, dword [ebp - 0x193c]
mov dx, word [eax + 8]
and cl, 3
movzx cx, cl
shl cx, 5
and dx, 0xff9f
or cx, dx
mov word [eax + 8], cx
mov eax, dword [ebp - 0x193c]
and word [eax + 8], 0xfdff
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1002
je 0x3019d887
push 0
mov dword [0x30229d1c], edi
push 0x666c6f73
jmp 0x3019ae56
mov eax, dword [0x30229d78]
add eax, 0x26c
push eax
push esi
call fcn.30197d55
mov eax, dword [0x30229d78]
add eax, 0x26c
push eax
push 6
jmp 0x3019d543
cmp dword [ebp - 0xad4], 0x1014
je 0x3019d8c8
push 0
mov dword [0x30229d1c], edi
push 0x666c6f74
jmp 0x3019ae56
xor ecx, ecx
xor eax, eax
cmp dword [ebp - 0xb4c], eax
sete cl
cmp dword [ebp - 0xadc], eax
mov dword [ebp - 0xb4c], ecx
je 0x3019d8ef
movsx ecx, word [esi]
mov edx, dword [ebp - 0x1960]
mov dword [edx + 0x18], ecx
cmp dword [ebp - 0xb4c], eax
mov eax, dword [ebp - 0x1960]
je 0x3019d902
add eax, 0x38
jmp 0x3019d907
add eax, 0x120
push eax
push 0xf
jmp 0x3019d543
mov cx, word [esi]
mov eax, dword [0x30229d78]
shl cx, 0xf
sar cx, 0xf
shl cx, 0xa
add eax, 0x268
xor cx, word [eax]
xor edx, edx
and cx, 0x400
xor word [eax], cx
mov cx, word [esi]
mov eax, dword [0x302ae8d4]
shl cx, 0xe
sar cx, 0xf
add eax, 0x17c
shl cl, 2
xor cl, byte [eax]
and ecx, 4
xor word [eax], cx
mov eax, dword [0x30229d78]
lea ecx, [eax + 0x26a]
movzx eax, word [eax + 0x268]
shr ax, 9
xor al, byte [ecx]
and eax, edi
xor word [ecx], ax
mov cl, byte [esi]
mov eax, dword [0x30229d78]
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 [0x30229d78]
and cl, 3
add eax, 0x268
mov dx, word [eax]
movzx cx, cl
shl cx, 0xc
and dx, 0xcfff
or cx, dx
mov word [eax], cx
cmp dword [0x30209e20], 6
mov eax, dword [0x30229d78]
jl 0x3019d9eb
mov cx, word [esi]
shl cx, 0xb
add eax, 0x268
mov dx, word [eax]
sar cx, 0xf
shl cx, 0xf
and dx, 0x7fff
or cx, dx
mov word [eax], cx
jmp case.0x3019aaf8.4150
or word [eax + 0x268], 0x8000
jmp case.0x3019aaf8.4150
movsx eax, word [esi]
push eax
call fcn.3019955c
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1014
jne 0x3019da82
cmp dword [0x30209e20], 4
mov ecx, dword [0x30229d78]
jg 0x3019da2b
cmp byte [ecx + 0x268], 2
jne 0x3019da82
movzx eax, word [esi]
test ax, ax
jle 0x3019da3d
movzx edx, word [esi + 2]
mov dword [ebp - 0xb04], edx
mov edx, dword [ebp - 0x1960]
je 0x3019da4e
movsx ecx, word [ebp - 0xb04]
jmp 0x3019da54
mov ecx, dword [ecx + 0x444]
inc ecx
mov dword [edx + 8], ecx
mov ecx, dword [ebp - 0x1960]
movsx eax, ax
mov dword [ecx + 0x4e0], eax
mov ecx, dword [ebp - 0x1960]
mov dword [ecx + 0x4dc], eax
mov eax, dword [ebp - 0x1960]
and word [eax], 0xffef
jmp case.0x3019aaf8.4150
push 0
mov dword [0x30229d1c], edi
push 0x666c6f76
jmp 0x3019ae56
movzx eax, word [esi]
push edi
push 0
push eax
mov dword [ebp - 0xb1c], edi
mov dword [ebp - 0xb14], eax
call fcn.3019824c
mov edx, dword [0x30229d78]
mov ecx, eax
imul ecx, ecx, 0x8e4
cmp eax, 2
lea ecx, [ecx + edx + 0x458]
mov dword [ebp - 0xb14], eax
mov dword [ebp - 0x1964], ecx
jl case.0x3019aaf8.4150
push 0
push 0x71626374
jmp 0x3019ae56
cmp dword [ebp - 0xad4], 0x1014
je 0x3019db00
push 0
mov dword [0x30229d1c], edi
push 0x67666e6d
jmp 0x3019ae56
cmp dword [0x302ae904], 0x201
jne 0x3019dbee
movzx eax, word [esi + 2]
movsx eax, ax
push 0x1f4
push eax
call fcn.3007f8d4
movzx eax, ax
movsx eax, ax
push 0
push eax
call fcn.3007f8c2
movzx ebx, ax
movzx eax, word [esi]
mov dword [ebp - 0xb04], eax
movsx eax, ax
push 0x64
push eax
call fcn.3007f8d4
movzx eax, ax
mov dword [ebp - 0xb04], eax
movsx eax, ax
push 0xffffffffffffff9c
push eax
call fcn.3007f8c2
movzx eax, ax
mov dword [ebp - 0xb04], eax
movzx eax, byte [esi + 6]
shr eax, 3
and eax, edi
add eax, eax
push eax
push edi
push dword [ebp - 0x1960]
call fcn.3014dc8e
mov eax, dword [ebp - 0x1960]
movzx ecx, byte [eax]
xor cl, byte [esi + 6]
and ecx, 2
xor word [eax], cx
movzx ecx, byte [esi + 6]
mov eax, dword [ebp - 0x1960]
shr cl, 2
xor cl, byte [eax]
and ecx, edi
xor word [eax], cx
movzx ecx, byte [esi + 6]
mov eax, dword [ebp - 0x1960]
shl cl, 2
xor cl, byte [eax]
and ecx, 4
xor word [eax], cx
test byte [esi + 6], 8
je 0x3019dc5a
movzx eax, byte [esi + 6]
mov ecx, dword [ebp - 0x1960]
shr eax, 4
and eax, edi
mov dword [ebp - 0xba8], eax
movsx eax, word [esi + 4]
push edi
mov dword [ecx + 0x650], eax
push dword [ebp - 0x1960]
call fcn.301984ee
jmp 0x3019dc5a
movzx eax, word [esi]
movzx ebx, word [esi + 2]
push 0
push edi
push dword [ebp - 0x1960]
mov dword [ebp - 0xb04], eax
call fcn.3014dc8e
mov eax, dword [ebp - 0x1960]
movzx ecx, byte [eax]
xor cl, byte [esi + 4]
and ecx, 2
xor word [eax], cx
movzx ecx, byte [esi + 4]
mov eax, dword [ebp - 0x1960]
shr cl, 2
xor cl, byte [eax]
and ecx, edi
xor word [eax], cx
movzx ecx, byte [esi + 4]
mov eax, dword [ebp - 0x1960]
shl cl, 2
xor cl, byte [eax]
and ecx, 4
xor word [eax], cx
movzx ecx, byte [esi + 4]
mov eax, dword [ebp - 0x1960]
shr cl, 3
xor cl, byte [eax + 2]
and ecx, edi
xor word [eax + 2], cx
mov ecx, dword [ebp - 0x1960]
movsx eax, bx
mov dword [ecx + 0x18], eax
movsx eax, word [ebp - 0xb04]
mov ecx, dword [ebp - 0x1960]
mov dword [ecx + 0x14], eax
cmp dword [ebp - 0xb1c], 0
je case.0x3019aaf8.4150
mov eax, dword [ebp - 0xb14]
mov ecx, dword [0x30229d78]
imul eax, eax, 0x8e4
lea eax, [ecx + eax + 0x458]
mov ecx, dword [ebp - 0x1960]
mov dword [ecx + 0x24], eax
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1014
push 0
je 0x3019dcc8
mov dword [0x30229d1c], edi
push 0x666c6f78
jmp 0x3019ae56
push 2
push dword [ebp - 0x1960]
call fcn.3014dc8e
movzx ecx, byte [esi]
mov eax, dword [ebp - 0x1960]
add cl, cl
xor cl, byte [eax]
and ecx, 2
xor word [eax], cx
movzx ecx, byte [esi]
mov eax, dword [ebp - 0x1960]
shr cl, 1
xor cl, byte [eax]
and ecx, edi
xor word [eax], cx
movzx ecx, byte [esi]
mov eax, dword [ebp - 0x1960]
shr cl, 2
xor cl, byte [eax + 2]
and ecx, edi
xor word [eax + 2], cx
jmp 0x3019dc76
cmp dword [ebp - 0xad4], 0x1014
je 0x3019dd32
push 0
mov dword [0x30229d1c], edi
push 0x666c6f79
jmp 0x3019ae56
xor ebx, ebx
push ebx
push 3
push dword [ebp - 0x1960]
call fcn.3014dc8e
movzx eax, byte [esi]
mov ecx, dword [ebp - 0x1960]
mov dword [ecx + 0x67c], eax
mov eax, dword [ebp - 0x1960]
mov dword [eax + 0x1c], ebx
mov eax, dword [ebp - 0x1960]
mov dword [eax + 0x20], ebx
movsx eax, word [esi + 2]
push 3
push ebx
push eax
call fcn.3019824c
mov ecx, dword [ebp - 0x1960]
mov dword [ecx + 0x660], eax
movsx eax, word [esi + 4]
mov ecx, dword [ebp - 0x1960]
mov dword [ecx + 0x66c], eax
movsx eax, word [esi + 6]
mov ecx, dword [ebp - 0x1960]
mov dword [ecx + 0x670], eax
movsx eax, word [esi + 8]
mov ecx, dword [ebp - 0x1960]
mov dword [ecx + 0x674], eax
movsx eax, word [esi + 0xa]
mov ecx, dword [ebp - 0x1960]
mov dword [ecx + 0x18], eax
movzx eax, byte [esi + 1]
mov ecx, dword [ebp - 0x1960]
mov dword [ecx + 0x678], eax
movzx ecx, byte [esi + 0x14]
mov eax, dword [ebp - 0x1960]
xor cl, byte [eax + 2]
and ecx, edi
xor word [eax + 2], cx
fld qword [esi + 0xc]
mov eax, dword [ebp - 0x1960]
cmp dword [ebp - 0xb1c], ebx
fstp qword [eax + 0x664]
jmp 0x3019dc7d
cmp dword [ebp - 0xad4], 0x1014
je 0x3019de14
push 0
mov dword [0x30229d1c], edi
push 0x666c6f7a
jmp 0x3019ae56
mov eax, dword [ebp - 0x1960]
mov dword [eax + 0x4e0], edi
push dword [ebp - 0x1960]
call fcn.30172629
test eax, eax
je 0x301a0d9f
movsx eax, word [esi]
mov ecx, dword [ebp - 0x1960]
mov ecx, dword [ecx + 0x628]
mov dword [ebp - 0xae4], eax
mov dword [ecx + 0x24], eax
shl eax, 2
push eax
mov dword [ebp - 0xae0], ecx
call fcn.300ac872
mov ecx, dword [ebp - 0xae0]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebp - 0xae4]
shl eax, 2
push eax
call fcn.300ac872
mov ecx, dword [ebp - 0xae0]
add esi, 2
push esi
push 2
push edi
push dword [ebp - 0xae4]
mov dword [ecx + 0x20], eax
push dword [ebp - 0xae4]
push dword [ecx + 0x1c]
call fcn.30104ff3
test eax, eax
jne case.0x3019aaf8.4150
push eax
mov dword [0x30229d1c], edi
push 0x35716c79
jmp 0x3019ae56
cmp dword [ebp - 0xad4], 0x1014
je 0x3019decd
push 0
mov dword [0x30229d1c], edi
push 0x666c7062
jmp 0x3019ae56
mov eax, dword [ebp - 0x1960]
and dword [eax + 0x67c], 0
cmp dword [0x30209e20], 5
jge 0x3019df4c
cmp dword [0x302ae904], 0x201
movzx ebx, word [esi]
jne 0x3019df2f
movzx eax, byte [esi + 4]
and eax, edi
add eax, eax
push eax
push 3
push dword [ebp - 0x1960]
call fcn.3014dc8e
test byte [esi + 4], 1
je 0x3019df3e
movsx eax, word [esi + 2]
mov ecx, dword [ebp - 0x1960]
add eax, eax
push 3
mov dword [ecx + 0x64c], eax
push dword [ebp - 0x1960]
call fcn.301984ee
jmp 0x3019df3e
push 0
push 3
push dword [ebp - 0x1960]
call fcn.3014dc8e
mov ecx, dword [ebp - 0x1960]
movsx eax, bx
mov dword [ecx + 0x20], eax
jmp 0x3019df87
push 0
push 3
push dword [ebp - 0x1960]
call fcn.3014dc8e
movsx eax, word [esi]
mov ecx, dword [ebp - 0x1960]
mov dword [ecx + 0x20], eax
movsx eax, word [esi + 2]
mov ecx, dword [ebp - 0x1960]
mov dword [ecx + 0x1c], eax
movzx ecx, byte [esi + 4]
mov eax, dword [ebp - 0x1960]
xor cl, byte [eax + 2]
and ecx, edi
xor word [eax + 2], cx
cmp dword [ebp - 0xb1c], 0
je 0x3019dfb2
mov eax, dword [ebp - 0xb14]
mov ecx, dword [0x30229d78]
imul eax, eax, 0x8e4
lea eax, [ecx + eax + 0x458]
mov ecx, dword [ebp - 0x1960]
mov dword [ecx + 0x24], eax
cmp dword [0x30209e20], 6
jl case.0x3019aaf8.4150
movzx ecx, byte [esi + 4]
mov eax, dword [ebp - 0x1960]
add eax, 0x86c
shr cl, 1
xor cl, byte [eax]
and ecx, edi
xor word [eax], cx
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1014
je 0x3019dffa
push 0
mov dword [0x30229d1c], edi
push 0x666c7063
jmp 0x3019ae56
cmp dword [0x302ae904], 0x201
jne 0x3019e095
movzx eax, byte [esi + 2]
and eax, 4
shr eax, 1
push eax
push 4
push dword [ebp - 0x1960]
call fcn.3014dc8e
mov cx, word [esi + 2]
mov eax, dword [ebp - 0x1960]
shl cx, 0xf
sar cx, 0xf
add cl, cl
xor cl, byte [eax]
and ecx, 2
xor word [eax], cx
mov cx, word [esi + 2]
mov eax, dword [ebp - 0x1960]
shl cx, 0xe
sar cx, 0xf
xor cl, byte [eax]
and ecx, edi
xor word [eax], cx
test byte [esi + 2], 4
je 0x3019dc76
mov ax, word [esi + 2]
mov ecx, dword [ebp - 0x1960]
shl ax, 0xc
movsx eax, ax
sar eax, 0xf
mov dword [ebp - 0xba8], eax
movsx eax, word [esi]
push 4
mov dword [ecx + 0x650], eax
push dword [ebp - 0x1960]
call fcn.301984ee
jmp 0x3019dc76
push 0
push 4
jmp 0x3019dcca
cmp dword [ebp - 0xad4], 0x1014
push 0
je 0x3019e0bc
mov dword [0x30229d1c], edi
push 0x666c7064
jmp 0x3019ae56
push 5
push dword [ebp - 0x1960]
call fcn.3014dc8e
cmp dword [0x30209e20], 5
jle 0x3019e109
movsx eax, word [esi]
mov ecx, dword [ebp - 0x1960]
mov dword [ecx + 0x658], eax
movsx eax, word [esi + 2]
mov ecx, dword [ebp - 0x1960]
mov dword [ecx + 0x65c], eax
movzx ecx, byte [esi + 4]
mov eax, dword [ebp - 0x1960]
shr cl, 2
xor cl, byte [eax + 2]
and ecx, edi
xor word [eax + 2], cx
jmp 0x3019e130
mov eax, dword [ebp - 0x1960]
mov dword [eax + 0x658], 0x64
mov eax, dword [ebp - 0x1960]
mov dword [eax + 0x65c], edi
mov eax, dword [ebp - 0x1960]
and word [eax + 2], 0xfffe
mov cx, word [esi + 4]
mov eax, dword [ebp - 0x1960]
mov dx, word [esi + 4]
shl cx, 0xe
xor cx, word [eax]
shl dx, 0xe
and cx, 0x7fff
xor cx, dx
mov word [eax], cx
mov cx, word [esi + 4]
mov eax, dword [ebp - 0x1960]
shl cx, 0xe
xor cx, word [eax]
and cx, 0x4000
xor word [eax], cx
jmp 0x3019dc76
cmp dword [ebp - 0xad4], 0x1014
push 0
je 0x3019e190
mov dword [0x30229d1c], edi
push 0x666c7065
jmp 0x3019ae56
xor eax, eax
cmp dword [ebp - 0xad8], 0x103e
setne al
lea eax, [eax + eax + 6]
push eax
push dword [ebp - 0x1960]
call fcn.3014dc8e
cmp dword [ebp - 0xb1c], 0
je 0x3019e1da
mov eax, dword [ebp - 0xb14]
mov ecx, dword [0x30229d78]
imul eax, eax, 0x8e4
lea eax, [ecx + eax + 0x458]
mov ecx, dword [ebp - 0x1960]
mov dword [ecx + 0x24], eax
mov cx, word [esi]
mov eax, dword [ebp - 0x1960]
mov eax, dword [eax + 0x24]
shl cx, 0xf
sar cx, 0xf
xor edx, edx
mov dh, cl
add eax, 0x1e0
xor dx, word [eax]
and dx, 0x100
xor word [eax], dx
mov cx, word [esi]
mov eax, dword [ebp - 0x1960]
shl cx, 0xe
sar cx, 0xf
xor cl, byte [eax + 2]
and ecx, edi
xor word [eax + 2], cx
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1014
je 0x3019e23f
push 0
mov dword [0x30229d1c], edi
push 0x666c7066
jmp 0x3019ae56
push 2
push 7
push dword [ebp - 0x1960]
call fcn.3014dc8e
mov cx, word [esi]
mov eax, dword [ebp - 0x1960]
shl cx, 0xf
sar cx, 0xf
shl cx, 0xa
xor cx, word [eax]
and cx, 0x400
xor word [eax], cx
cmp dword [0x30209e20], 6
jl 0x3019dc76
mov cx, word [esi]
mov eax, dword [ebp - 0x1960]
shl cx, 0xe
sar cx, 0xf
shl cx, 9
xor cx, word [eax]
and cx, 0x200
jmp 0x3019e16a
cmp dword [ebp - 0xad4], 0x1014
je 0x3019e2bb
push 0
mov dword [0x30229d1c], edi
push 0x666c7067
jmp 0x3019ae56
lea eax, [ebp - 0xb94]
push eax
push dword [ebp - 0x1960]
push esi
call fcn.301980d7
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1014
je 0x3019e2f1
push 0
mov dword [0x30229d1c], edi
push 0x666c7068
jmp 0x3019ae56
movsx eax, word [esi]
mov dword [ebp - 0xb28], eax
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1014
je 0x3019e329
cmp dword [ebp - 0xad4], 0x1041
je 0x3019e329
push 0
mov dword [0x30229d1c], edi
push 0x666c7069
jmp 0x3019ae56
lea eax, [ebp - 0xc00]
push eax
push dword [ebp - 0x1964]
lea eax, [ebp - 0x1924]
push eax
lea eax, [ebp - 0x1920]
push eax
lea eax, [ebp - 0x1928]
push eax
push dword [ebp - 0x1960]
push esi
call fcn.301981d2
test eax, eax
jne 0x3019e371
push eax
push 0x71626375
call ebx
or dword [ebp - 0xad8], 0xffffffff
and dword [ebp - 0x1958], 0
push dword [ebp - 0x1964]
lea eax, [ebp - 0xb74]
push 0
push dword [ebp - 0xc00]
push 0
push 4
push eax
call fcn.30196b8a
jmp case.0x3019aaf8.4150
movsx eax, word [esi]
push edi
push 0
push eax
call fcn.3019824c
mov edi, dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, eax
mov eax, dword [0x30229d78]
imul ecx, ecx, 0x8e4
lea ecx, [ecx + eax + 0x458]
mov dword [ebp - 0x1964], 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 [0x30229d78]
add eax, dword [ecx + 0x150]
mov ecx, dword [ebp - 0x1964]
mov dword [ecx + 0x18], eax
mov eax, dword [esi + 6]
mov ecx, dword [0x30229d78]
push ebx
push dword [ecx + 0x15c]
movsx eax, ax
push eax
call edi
mov ecx, dword [0x30229d78]
add eax, dword [ecx + 0x154]
mov ecx, dword [ebp - 0x1964]
mov dword [ecx + 0x1c], eax
mov eax, dword [esi + 0xa]
mov ecx, dword [0x30229d78]
push ebx
push dword [ecx + 0x158]
movsx eax, ax
push eax
call edi
mov ecx, dword [ebp - 0x1964]
mov dword [ecx + 0x20], eax
mov eax, dword [esi + 0xe]
mov ecx, dword [0x30229d78]
push ebx
push dword [ecx + 0x15c]
movsx eax, ax
push eax
call edi
mov ecx, dword [ebp - 0x1964]
mov dword [ecx + 0x24], eax
movsx eax, word [esi]
push eax
push 0
jmp 0x3019d543
mov eax, dword [ebp - 0xad4]
sub eax, 0x1015
je 0x3019e4f6
sub eax, 0x10
je 0x3019e49a
sub eax, 8
je 0x3019e49a
sub eax, 0x14
je 0x3019e492
push 0
push 0x666c706c
call ebx
mov dword [0x30229d1c], edi
jmp 0x3019c48e
mov eax, dword [ebp - 0x1964]
jmp 0x3019e508
mov eax, dword [ebp - 0x196c]
add eax, 4
push eax
push esi
call fcn.30198086
cmp dword [ebp - 0xad4], 0x1025
jne case.0x3019aaf8.4150
cmp dword [0x30209e20], 6
jge case.0x3019aaf8.4150
mov eax, dword [ebp - 0x196c]
cmp word [eax + 8], 0
jne 0x3019e4df
cmp word [eax + 0xa], 0
je case.0x3019aaf8.4150
add eax, 0x11e
mov cx, word [eax]
and cx, 0xff5f
or cx, 0x140
jmp 0x3019d9e3
lea eax, [ebp - 0x19c4]
push eax
push dword [ebp - 0xae8]
call fcn.301976c0
add eax, 4
push eax
push esi
call fcn.30198086
jmp case.0x3019aaf8.4150
mov eax, dword [ebp - 0x1928]
test eax, eax
je 0x3019e69f
cmp dword [ebp - 0xad4], 0x101d
jne 0x3019e69f
cmp dword [0x30209e20], 6
jl 0x3019e544
movzx ecx, word [esi + 0x1a]
jmp 0x3019e557
mov eax, dword [esi + 4]
push edi
push eax
call fcn.300ab44c
movzx ecx, ax
mov eax, dword [ebp - 0x1928]
mov di, word [eax]
mov dl, byte [esi]
and dl, 0xf
movzx dx, dl
and di, 0xfff0
or dx, di
mov word [eax], dx
mov al, byte [esi + 1]
and al, 0xf
movzx dx, al
mov eax, dword [ebp - 0x1928]
mov di, word [eax]
shl dx, 4
and di, 0xff0f
or dx, di
mov word [eax], dx
mov al, byte [esi + 2]
and al, 0xf
xor edx, edx
mov dh, al
mov eax, dword [ebp - 0x1928]
mov di, word [eax]
and di, 0xf0ff
or dx, di
mov word [eax], dx
movzx eax, byte [esi + 3]
push eax
call fcn.301984a7
mov edx, dword [ebp - 0x1928]
mov dword [edx + 8], eax
movzx edx, byte [esi + 0x18]
mov eax, dword [ebp - 0x1928]
add dl, dl
xor dl, byte [eax + 0xc]
and edx, 2
xor word [eax + 0xc], dx
mov eax, dword [ebp - 0x1928]
test byte [eax + 0xc], 2
je 0x3019e5e4
push 0x4d
jmp 0x3019e5e8
movsx ecx, cx
push ecx
lea ecx, [eax + 0x10]
call fcn.300285e8
movzx ecx, byte [esi + 0x18]
mov eax, dword [ebp - 0x1928]
add cl, cl
xor cl, byte [eax + 0xc]
and ecx, 4
xor word [eax + 0xc], cx
cmp dword [0x30209e20], 6
jl 0x3019e62c
mov cx, word [esi + 0x1c]
mov eax, dword [ebp - 0x1928]
shl cx, 3
xor cx, word [eax + 0xc]
and cx, 0x7f8
xor word [eax + 0xc], cx
jmp 0x3019e651
movzx eax, byte [esi + 0x18]
shr eax, 2
and eax, 7
push eax
call fcn.30068dfb
mov ecx, dword [ebp - 0x1928]
shl eax, 3
xor ax, word [ecx + 0xc]
and ax, 0x7f8
xor word [ecx + 0xc], ax
mov cx, word [esi + 0x18]
mov eax, dword [ebp - 0x1928]
shl cx, 6
xor cx, word [eax + 0xc]
and cx, 0x800
xor word [eax + 0xc], cx
cmp dword [0x30209e20], 6
mov eax, dword [ebp - 0x1928]
jl 0x3019e694
mov cx, word [esi + 0x18]
shr cx, 1
xor cx, word [eax + 0xc]
and cx, 0x6000
xor word [eax + 0xc], cx
jmp case.0x3019aaf8.4150
and word [eax + 0xc], 0x9fff
jmp case.0x3019aaf8.4150
push 0
mov dword [0x30229d1c], edi
push 0x666c706f
jmp 0x3019ae56
cmp dword [ebp - 0xad4], 0x101d
je 0x3019e6cf
push 0
mov dword [0x30229d1c], edi
push 0x666c7070
jmp 0x3019ae56
cmp dword [ebp - 0x1920], 0
movzx edi, word [esi + 0x28]
jne 0x3019e716
cmp dword [ebp - 0x1924], 0
jne 0x3019e6ee
push 0
push 0x71626376
call ebx
call fcn.3019827a
mov ecx, dword [ebp - 0x1924]
push 0
push 3
mov dword [ebp - 0x1920], eax
push 0
mov dword [ecx + 0x14], eax
push 4
lea eax, [ebp - 0x1974]
push eax
call fcn.301973fa
mov eax, dword [ebp - 0x1920]
mov word [eax + 0x28], di
fld qword [esi]
mov eax, dword [ebp - 0x1920]
fstp qword [eax]
mov eax, dword [ebp - 0x1920]
fld qword [esi + 8]
fstp qword [eax + 8]
mov eax, dword [ebp - 0x1920]
fld qword [esi + 0x10]
fstp qword [eax + 0x10]
mov eax, dword [ebp - 0x1920]
fld qword [esi + 0x18]
fstp qword [eax + 0x18]
mov eax, dword [ebp - 0x1920]
fld qword [esi + 0x20]
jmp 0x3019cf98
cmp dword [ebp - 0xad4], 0x101d
jne 0x3019e802
mov eax, dword [ebp - 0x1924]
test eax, eax
je 0x3019e802
movsx ecx, word [esi + 2]
mov dword [eax + 4], ecx
movsx eax, word [esi]
mov ecx, dword [ebp - 0x1924]
mov dword [ecx + 0x10], eax
movsx eax, word [esi + 4]
mov ecx, dword [ebp - 0x1924]
mov dword [ecx + 0xc], eax
movzx ecx, byte [esi + 6]
mov eax, dword [ebp - 0x1924]
xor cl, byte [eax]
and ecx, edi
xor word [eax], cx
movzx ecx, byte [esi + 6]
mov eax, dword [ebp - 0x1924]
xor cl, byte [eax]
and ecx, 2
xor word [eax], cx
movzx ecx, byte [esi + 6]
mov eax, dword [ebp - 0x1924]
xor cl, byte [eax]
and ecx, 4
xor word [eax], cx
cmp word [ebp - 0xc82], 9
jae case.0x3019aaf8.4150
mov eax, dword [ebp - 0x1924]
cmp dword [eax + 4], edi
je case.0x3019aaf8.4150
and word [eax], 0xf7ff
mov eax, dword [ebp - 0x1924]
mov ecx, dword [eax + 4]
mov dword [eax + 8], ecx
jmp case.0x3019aaf8.4150
push 0
mov dword [0x30229d1c], edi
push 0x666c7072
jmp 0x3019ae56
cmp dword [ebp - 0xad4], 0x101d
jne 0x3019e94a
mov eax, dword [ebp - 0x1924]
test eax, eax
je 0x3019e94a
movzx ecx, word [esi]
mov dword [eax + 0x1c], ecx
movzx eax, word [esi + 2]
mov ecx, dword [ebp - 0x1924]
mov dword [ecx + 0x20], eax
movzx eax, word [esi + 4]
mov ecx, dword [ebp - 0x1924]
mov dword [ecx + 0x24], eax
movzx eax, word [esi + 6]
mov ecx, dword [ebp - 0x1924]
mov dword [ecx + 0x28], eax
movzx eax, word [esi + 8]
mov ecx, dword [ebp - 0x1924]
mov dword [ecx + 0x2c], eax
movzx eax, word [esi + 0xa]
mov ecx, dword [ebp - 0x1924]
mov dword [ecx + 0x30], eax
movzx eax, word [esi + 0xc]
mov ecx, dword [ebp - 0x1924]
mov dword [ecx + 0x34], eax
movzx eax, word [esi + 0xe]
mov ecx, dword [ebp - 0x1924]
mov dword [ecx + 0x38], eax
movzx ecx, byte [esi + 0x10]
mov eax, dword [ebp - 0x1924]
shl cl, 3
xor cl, byte [eax]
and ecx, 8
xor word [eax], cx
movzx ecx, byte [esi + 0x10]
mov eax, dword [ebp - 0x1924]
shl cl, 3
xor cl, byte [eax]
and ecx, 0x10
xor word [eax], cx
movzx ecx, byte [esi + 0x10]
mov eax, dword [ebp - 0x1924]
shl cl, 3
xor cl, byte [eax]
and ecx, 0x20
xor word [eax], cx
movzx ecx, byte [esi + 0x10]
mov eax, dword [ebp - 0x1924]
shl cl, 3
xor cl, byte [eax]
and ecx, 0x40
xor word [eax], cx
mov cl, byte [esi + 0x10]
mov eax, dword [ebp - 0x1924]
shl cl, 3
xor cl, byte [eax]
and cx, 0x80
xor word [eax], cx
mov cx, word [esi + 0x10]
mov eax, dword [ebp - 0x1924]
shl cx, 3
xor cx, word [eax]
and cx, 0x100
xor word [eax], cx
mov cx, word [esi + 0x10]
mov eax, dword [ebp - 0x1924]
shl cx, 3
xor cx, word [eax]
and cx, 0x200
xor word [eax], cx
mov cx, word [esi + 0x10]
mov eax, dword [ebp - 0x1924]
shl cx, 3
xor cx, word [eax]
and cx, 0x400
jmp 0x3019dfd4
push 0
mov dword [0x30229d1c], edi
push 0x666c7077
jmp 0x3019ae56
cmp dword [ebp - 0xad4], 0x101d
je 0x3019e2f1
push 0
mov dword [0x30229d1c], edi
push 0x666c7078
jmp 0x3019ae56
cmp dword [ebp - 0xad4], 0x1014
je case.0x3019aaf8.4150
push 0
mov dword [0x30229d1c], edi
push 0x666c7079
jmp 0x3019ae56
mov ecx, dword [ebp - 0xad4]
cmp ecx, 0x1014
je 0x3019e9d0
cmp ecx, 0x1002
je 0x3019e9d0
cmp ecx, 0x86a
je 0x3019e9d0
push 0
mov dword [0x30229d1c], edi
push 0x666c707a
jmp 0x3019ae56
cmp ecx, 0x1002
movzx eax, word [esi]
jne 0x3019ea00
test ax, ax
je 0x3019e9ee
cmp ax, di
je 0x3019e9ee
cmp dword [0x30209e20], 6
jge 0x3019ea00
push 0
mov dword [0x30229d1c], edi
push 0x666c7161
jmp 0x3019ae56
movsx eax, ax
mov dword [ebp - 0xb08], eax
jmp case.0x3019aaf8.4150
mov ecx, dword [ebp - 0xad4]
mov edx, dword [ebp - 0x1960]
mov eax, 0x1015
cmp ecx, eax
jg 0x3019eabe
je 0x3019eb0b
mov eax, ecx
sub eax, 0x857
je 0x3019ea8d
sub eax, 0x13
je 0x3019ea4b
sub eax, 0x798
je 0x3019ea4b
sub eax, 0x12
jne 0x3019ead8
mov ecx, 0x86a
cmp dword [ebp - 0xad4], ecx
jne 0x3019eb78
cmp dword [0x30209e20], 6
jl 0x3019ea81
test edx, edx
jne 0x3019eb78
cmp dword [ebp - 0xb08], edx
je 0x3019ea81
cmp dword [ebp - 0xb08], edi
jne 0x3019eb78
push 0
push 0x666c7164
jmp 0x3019eb6e
cmp dword [0x30209e20], 6
jge 0x3019eaa2
push 0
push 0x666c7167
jmp 0x3019eb6e
mov edi, dword [ebp - 0x1934]
add edi, 0x14
push edi
push esi
mov dword [ebp - 0xb40], edi
call fcn.30198fae
push edi
jmp 0x3019ebdc
mov eax, ecx
sub eax, 0x1024
je 0x3019ebe3
sub eax, 0x1d
je 0x3019eb5a
dec eax
dec eax
je 0x3019eb0b
push 0
push 0x666c7162
mov dword [0x30229d1c], edi
call ebx
mov eax, dword [0x30229d78]
add eax, 0x1800
push 6
push eax
mov dword [ebp - 0x196c], eax
call fcn.301499fd
or dword [ebp - 0xb08], 0xffffffff
jmp case.0x3019aaf8.4150
mov eax, dword [0x30229d78]
add eax, 0x1800
push 5
push eax
mov dword [ebp - 0x196c], eax
call fcn.301499fd
lea eax, [ebp - 0x19c4]
push eax
push dword [ebp - 0xae8]
call fcn.301976c0
mov ecx, dword [0x30229d78]
add ecx, 0x26c
cmp eax, ecx
jne 0x3019ebca
mov eax, dword [ebp - 0x196c]
or word [eax + 0x12c], 0x1000
jmp 0x3019ebca
cmp dword [0x30209e20], 5
jge 0x3019ea4b
push 0
push 0x666c7163
mov dword [0x30229d1c], edi
call ebx
jmp 0x3019eaff
cmp dword [ebp - 0xaec], 0x1024
je 0x3019ebe8
mov eax, dword [0x30229d78]
xor ecx, ecx
add eax, 0x1800
cmp dword [ebp - 0xad4], 0x1002
mov dword [ebp - 0x196c], eax
setne cl
dec ecx
and ecx, 0xfffffffb
add ecx, 6
push ecx
push eax
call fcn.301499fd
mov eax, dword [ebp - 0x196c]
add eax, 0x114
mov cx, word [eax]
and cx, 0xffdb
or cx, 0x18
mov word [eax], cx
push dword [ebp - 0x196c]
push esi
call fcn.30198fae
push dword [ebp - 0x196c]
push 2
jmp 0x3019d543
mov ecx, 0x86a
cmp dword [ebp - 0xb08], 3
ja 0x3019ed45
jne 0x3019ec04
cmp dword [0x30209e20], 6
jl 0x3019ed45
mov eax, dword [ebp - 0xb08]
sub eax, 0
je 0x3019eca4
dec eax
je 0x3019ec6f
dec eax
je 0x3019ec48
dec eax
jne 0x3019ecb4
mov eax, dword [0x30229d78]
add eax, 0x1800
push 6
push eax
mov dword [ebp - 0x196c], eax
call fcn.301499fd
mov eax, dword [ebp - 0x196c]
or word [eax + 0x114], 0x3c
jmp 0x3019ecb4
mov eax, dword [0x30229d78]
add eax, 0x1800
push edi
push eax
mov dword [ebp - 0x196c], eax
call fcn.301499fd
mov eax, dword [ebp - 0x196c]
and word [eax + 0x114], 0xffc3
jmp 0x3019ecb4
lea eax, [edx + 0x374]
cmp dword [ebp - 0xad4], ecx
mov dword [ebp - 0x196c], eax
jne 0x3019ecba
mov cx, word [edx + 0x4ec]
and cx, 0x1f
je 0x3019ecac
add eax, 0x11e
mov dx, word [eax]
and dx, 0xffe0
or dx, cx
mov word [eax], dx
jmp 0x3019ecc1
lea eax, [edx + 0x210]
jmp 0x3019ec75
and word [eax + 0x11e], 0xffe0
mov eax, dword [ebp - 0x196c]
push eax
push esi
call fcn.30198fae
push dword [ebp - 0x196c]
lea eax, [ebp - 0xb74]
push 2
push eax
call fcn.30196b6a
cmp dword [ebp - 0xb08], 2
jne 0x3019ed1d
mov eax, dword [0x30229d78]
push 5
lea esi, [eax + 0x1924]
lea edi, [eax + 0x1670]
pop ecx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x30229d78]
push 5
lea esi, [eax + 0x1670]
lea edi, [eax + 0x1c64]
pop ecx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x30229d78]
or word [eax + 0x1c6c], 0x1000
jmp 0x3019eaff
cmp dword [ebp - 0xb08], 3
jne 0x3019eaff
mov eax, dword [0x30229d78]
push 5
lea esi, [eax + 0x1924]
lea edi, [eax + 0x1c64]
pop ecx
rep movsd dword es:[edi], dword [esi]
jmp 0x3019eaff
push 0
push 0x666c7165
jmp 0x3019c486
mov eax, dword [0x30209e20]
cmp eax, 5
movzx esi, word [esi]
jge 0x3019ed6b
inc esi
cmp eax, 5
jge 0x3019ed6b
cmp si, 4
jl 0x3019ed6b
inc esi
test si, si
jge 0x3019ed74
xor esi, esi
jmp 0x3019ed7a
add esi, dword [ebp - 0xbd0]
mov eax, dword [ebp - 0xae8]
test eax, eax
mov dword [ebp - 0xaf4], esi
jle 0x3019b91d
movzx ecx, word [ebp - 0xc82]
push ecx
push dword [ebp + eax*4 - 0x19c8]
call fcn.30197470
test eax, eax
jne 0x3019edf8
mov ecx, dword [edx + 0x120]
test ecx, ecx
je 0x3019edb8
mov eax, dword [edx + 0x11c]
jmp 0x3019edbe
mov eax, dword [edx + 0x388]
test eax, eax
je 0x3019edec
test ecx, ecx
je 0x3019edce
mov edx, dword [edx + 0x11c]
jmp 0x3019edd4
mov edx, dword [edx + 0x388]
mov edx, dword [edx + 0x478]
test edx, edx
je 0x3019ede3
mov edx, dword [edx + 4]
jmp 0x3019ede5
xor edx, edx
movsx eax, si
cmp eax, edx
jle 0x3019edf8
push 0
push 0x66797579
jmp 0x3019b65e
mov eax, dword [ebp - 0xad4]
sub eax, 0x101d
je 0x3019ef0b
sub eax, 8
je 0x3019ee1a
push 0
push 0x666c7168
jmp 0x3019b65e
mov eax, dword [ebp - 0x196c]
movzx ecx, byte [eax + 0x114]
shr cl, 2
and ecx, 0xf
jne 0x3019ee81
mov eax, dword [0x30229d78]
mov cx, word [ebp - 0xaf4]
mov word [eax + 0x1670], cx
mov eax, dword [0x30229d78]
and word [eax + 0x1678], 0xfffe
mov eax, dword [0x30229d78]
and word [eax + 0x1678], 0xf7ff
mov eax, dword [0x30229d78]
push 5
lea esi, [eax + 0x1670]
lea edi, [eax + 0x17c0]
pop ecx
rep movsd dword es:[edi], dword [esi]
cmp dword [0x30209e20], 6
jl 0x3019ee87
jmp case.0x3019aaf8.4150
cmp cx, 0xf
jne 0x3019eeba
mov eax, dword [0x30229d78]
mov cx, word [ebp - 0xaf4]
mov word [eax + 0x1c64], cx
mov eax, dword [0x30229d78]
and word [eax + 0x1c6c], 0xfffe
mov eax, dword [0x30229d78]
and word [eax + 0x1c6c], 0xf7ff
jmp case.0x3019aaf8.4150
mov word [eax + 0x124], si
mov eax, dword [ebp - 0x196c]
and word [eax + 0x12c], 0xfffe
cmp cx, 0xc
mov eax, dword [ebp - 0x196c]
jne 0x3019eefd
add eax, 0x12c
mov cx, word [eax]
and cx, 0x7f8
cmp cx, 0x7f0
jne case.0x3019aaf8.4150
or word [eax], 0x800
jmp case.0x3019aaf8.4150
and word [eax + 0x12c], 0xf7ff
jmp case.0x3019aaf8.4150
mov eax, dword [ebp - 0x1928]
mov word [eax + 4], si
mov eax, dword [ebp - 0x1928]
and word [eax + 0xc], 0xfffe
jmp case.0x3019aaf8.4150
lea eax, [ebp - 0xb78]
push eax
lea eax, [ebp - 0xc64]
push eax
push esi
call fcn.30197d08
cmp dword [ebp - 0xad4], 0x85a
jne 0x3019ef7e
push dword [ebp - 0xc78]
lea eax, [ebp - 0x1974]
push dword [ebp - 0xb78]
push eax
call fcn.301974c7
cmp eax, 0xffffffff
mov dword [ebp - 0xb78], eax
jne 0x3019ef71
push 0
push 0x71626377
call ebx
cmp dword [ebp - 0xb78], 0xffffffff
je case.0x3019aaf8.4150
push dword [ebp - 0xb78]
lea eax, [ebp - 0xc64]
push eax
call fcn.30199512
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1025
jne 0x3019efcd
cmp dword [edx + 0x120], 0
je 0x3019efb2
mov edx, dword [edx + 0x11c]
jmp 0x3019efb8
mov edx, dword [edx + 0x388]
test edx, edx
je 0x3019efcd
push dword [ebp - 0x196c]
push esi
call fcn.301993fe
jmp case.0x3019aaf8.4150
push 0
mov dword [0x30229d1c], edi
push 0x666c716e
jmp 0x3019ae56
cmp dword [ebp - 0xad4], 0x1025
je 0x3019effd
push 0
mov dword [0x30229d1c], edi
push 0x666c716f
jmp 0x3019ae56
movzx ecx, word [esi]
movsx eax, cx
test eax, eax
jle 0x3019f04d
cmp eax, 4
jle 0x3019f016
cmp eax, 7
je 0x3019f016
cmp eax, 0xc
jne 0x3019f04d
mov eax, dword [ebp - 0x196c]
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 - 0x196c]
mov byte [ecx + 0x115], al
movsx eax, word [esi + 4]
mov ecx, dword [ebp - 0x196c]
mov dword [ecx + 0x118], eax
jmp 0x3019f05c
push 0
push 0x666c7170
mov dword [0x30229d1c], edi
call ebx
push dword [ebp - 0x196c]
call fcn.30147e83
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1002
je 0x3019f08a
push 0
mov dword [0x30229d1c], edi
push 0x666c7171
jmp 0x3019ae56
cmp dword [0x30209e20], 5
mov eax, dword [esi]
mov ebx, dword [sym.imp.KERNEL32.dll_MulDiv]
jl 0x3019f135
mov ecx, dword [0x30229d78]
push 0xfa0
push dword [ecx + 0x158]
push eax
call ebx
mov ecx, dword [esi + 4]
mov edi, eax
mov eax, dword [0x30229d78]
add edi, dword [eax + 0x150]
push 0xfa0
push dword [eax + 0x15c]
mov dword [ebp - 0xc0c], edi
push ecx
call ebx
mov ecx, dword [esi + 8]
mov ebx, eax
mov eax, dword [0x30229d78]
add ebx, dword [eax + 0x154]
push 0xfa0
push dword [eax + 0x158]
mov dword [ebp - 0xc08], ebx
push ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov esi, dword [esi + 0xc]
mov ecx, eax
mov eax, dword [0x30229d78]
add ecx, dword [eax + 0x150]
push 0xfa0
push dword [eax + 0x15c]
mov dword [ebp - 0xbe8], ecx
push esi
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, dword [0x30229d78]
add eax, dword [ecx + 0x154]
jmp 0x3019f19f
mov ecx, dword [0x302ae91c]
push 0x5a0
push dword [ecx + 0x1c]
push eax
call ebx
mov ecx, dword [0x302ae91c]
push 0x5a0
push dword [ecx + 0x20]
mov edi, eax
mov eax, dword [esi + 4]
push eax
mov dword [ebp - 0xc0c], edi
call ebx
mov ecx, dword [0x302ae91c]
push 0x5a0
push dword [ecx + 0x1c]
mov ebx, eax
mov eax, dword [esi + 8]
push eax
mov dword [ebp - 0xc08], ebx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov esi, dword [esi + 0xc]
mov dword [ebp - 0xbe8], eax
mov eax, dword [0x302ae91c]
push 0x5a0
push dword [eax + 0x20]
push esi
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, dword [0x30229d78]
push eax
push dword [ebp - 0xbe8]
add ecx, 0x1800
push ebx
push edi
push ecx
mov dword [ebp - 0xbe4], eax
mov dword [ebp - 0x196c], ecx
call fcn.3014349c
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x102d
je 0x3019f1e9
push 0
mov dword [0x30229d1c], edi
push 0x666c7173
jmp 0x3019ae56
movzx eax, byte [esi + 2]
inc al
shl al, 4
xor ecx, ecx
and eax, 0xffff00f0
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 ax, cx
mov ecx, dword [ebp - 0xc40]
and cx, 0xfe00
or ax, cx
mov ecx, dword [ebp - 0x196c]
mov word [ebp - 0xc40], ax
mov word [ecx + 0x144], ax
jmp case.0x3019aaf8.4150
mov eax, dword [ebp - 0xad4]
sub eax, 0x1002
je 0x3019f331
sub eax, 0x12
je 0x3019f2ec
dec eax
je 0x3019f2a8
sub eax, 0x10
je 0x3019f279
sub eax, 0x1c
je 0x3019f2ec
push 0
mov dword [0x30229d1c], edi
push 0x666c7174
jmp 0x3019ae56
mov eax, dword [ebp - 0x196c]
lea ecx, [eax + 0x28]
mov dword [ebp - 0x1958], ecx
test byte [esi + 2], 1
jne 0x3019f341
mov cx, word [eax + 4]
and cx, 0xff1f
or cx, 0x10
mov word [eax + 4], cx
jmp 0x3019f341
lea eax, [ebp - 0x19c4]
push eax
push dword [ebp - 0xae8]
call fcn.301976c0
lea ecx, [eax + 0x28]
mov dword [ebp - 0x1958], ecx
test byte [esi + 2], 1
jne 0x3019f341
cmp dword [0x30209e20], 4
jg 0x3019f2e1
push 0
push 0x71626378
call ebx
or word [esi + 2], di
jmp 0x3019f341
and word [eax + 0x110], 0xdfff
jmp 0x3019f292
cmp dword [ebp - 0xaec], 0x1035
jne 0x3019f331
cmp dword [ebp - 0xb5c], 2
jl 0x3019f316
push 0
push 0x67666e6f
mov dword [0x30229d1c], edi
call ebx
mov dword [ebp - 0xb5c], edi
mov eax, dword [ebp - 0xb5c]
mov ecx, dword [0x30229d78]
imul eax, eax, 0x8e4
lea eax, [eax + ecx + 0x480]
jmp 0x3019f33b
mov eax, dword [0x30229d78]
add eax, 0x160
mov dword [ebp - 0x1958], eax
mov cx, word [esi + 2]
mov eax, dword [ebp - 0x1958]
shl cx, 9
xor cx, word [eax + 6]
and cx, 0x400
xor word [eax + 6], cx
mov cx, word [esi + 2]
mov eax, dword [ebp - 0x1958]
shl cx, 0xb
xor cx, word [eax + 6]
and cx, 0x800
xor word [eax + 6], cx
mov eax, dword [ebp - 0x1958]
mov cx, word [eax + 6]
mov dx, word [esi]
and cx, 0xfff
shl dx, 0xc
or cx, dx
mov word [eax + 6], cx
push dword [ebp - 0x1958]
push 7
jmp 0x3019d543
cmp dword [ebp - 0xad4], 0x102d
je 0x3019f3bf
push 0
mov dword [0x30229d1c], edi
push 0x666c7264
jmp 0x3019ae56
mov eax, dword [ebp - 0x196c]
mov cx, word [eax + 4]
and cx, 0xff3f
or cx, 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.0x3019aaf8.4150
mov eax, dword [ebp - 0xad4]
sub eax, 0x1015
je 0x3019f422
sub eax, 0x10
je 0x3019f413
sub eax, 8
je 0x3019f413
push 0
mov dword [0x30229d1c], edi
push 0x666c7266
jmp 0x3019ae56
mov eax, dword [ebp - 0x196c]
or word [eax + 0x114], di
jmp 0x3019f434
lea eax, [ebp - 0x19c4]
push eax
push dword [ebp - 0xae8]
call fcn.301976c0
mov cx, word [eax + 4]
and cx, 0xfff3
or cx, 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.0x3019aaf8.4150
cmp dword [ebp - 0xb2c], 0
je 0x3019f46c
inc dword [ebp - 0xb20]
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xae8], 0x14
jge 0x3019b91d
mov eax, dword [ebp - 0xaec]
mov ecx, 0x1025
cmp eax, ecx
jg 0x3019f53a
je 0x3019f4d5
add ecx, 0xfffffff7
cmp eax, ecx
jg 0x3019f527
je 0x3019f590
cmp eax, 0x857
je 0x3019f4d5
cmp eax, 0x1001
jle 0x3019f581
cmp eax, 0x1004
jle 0x3019f4d5
cmp eax, 0x1006
je 0x3019f4d5
cmp eax, 0x1013
jle 0x3019f581
cmp eax, 0x1015
jg 0x3019f581
cmp dword [ebp - 0xb74], 0xffffffff
je 0x301a0da6
lea eax, [ebp - 0x1974]
push eax
lea eax, [ebp - 0xb74]
push eax
call fcn.30196bf3
test eax, eax
je 0x301a0da6
mov eax, dword [ebp - 0xad4]
mov ecx, dword [ebp - 0xae8]
mov dword [ebp + ecx*4 - 0x19c4], eax
mov eax, dword [ebp - 0xaec]
inc dword [ebp - 0xae8]
mov dword [ebp - 0xad4], eax
jmp case.0x3019aaf8.4150
sub eax, 0x101d
je 0x3019f4d5
sub eax, 4
je 0x3019f590
sub eax, 3
je 0x3019f590
jmp 0x3019f581
mov ecx, 0x1041
cmp eax, ecx
jg 0x3019f564
je 0x3019f4d5
cmp eax, 0x102d
je 0x3019f4d5
cmp eax, 0x1032
je 0x3019f4d5
cmp eax, 0x103b
jle 0x3019f581
cmp eax, 0x103d
jmp 0x3019f4cf
sub eax, 0x1043
je 0x3019f4d5
sub eax, 0x20
je 0x3019f4d5
sub eax, 3
je 0x3019f4d5
push 0
push 0x67666e70
mov dword [0x30229d1c], edi
call ebx
cmp dword [ebp - 0xad8], 0xffffffff
je 0x3019f5a2
push 0
push 0x71626379
call ebx
inc dword [ebp - 0xb20]
jmp 0x30199f6b
xor edx, edx
cmp dword [ebp - 0xae8], edx
jle 0x3019b91d
movzx eax, word [ebp - 0xad4]
dec dword [ebp - 0xae8]
mov ecx, dword [ebp - 0xae8]
mov esi, dword [ebp + ecx*4 - 0x19c4]
movsx eax, ax
mov ecx, 0x1014
sub eax, ecx
mov dword [ebp - 0xad4], esi
je 0x3019f913
dec eax
je 0x3019f8e6
sub eax, 0x10
je 0x3019f631
sub eax, 8
je 0x3019f631
sub eax, 0x14
je 0x3019f626
dec eax
dec eax
jne 0x3019f948
mov eax, dword [ebp - 0x1944]
mov esi, dword [0x30229d78]
mov edi, dword [eax + 0xc]
add esi, 0x1924
add edi, 8
jmp 0x3019f90c
mov dword [ebp - 0x1964], edx
jmp 0x3019f948
cmp esi, 0x1002
je 0x3019f674
cmp esi, ecx
je 0x3019f674
cmp esi, 0x1041
je 0x3019f674
cmp esi, 0x86a
je 0x3019f674
mov eax, dword [0x30229d78]
add eax, 0x1800
cmp dword [ebp - 0x196c], eax
jne 0x3019f948
lea eax, [ebp - 0x1974]
push eax
call fcn.30196cae
jmp 0x3019f948
mov eax, dword [ebp - 0x196c]
movzx eax, byte [eax + 0x114]
shr al, 2
and eax, 0xf
movsx edx, ax
cmp edx, 6
mov dword [ebp - 0xae0], edx
jg 0x3019f74f
je 0x3019f6bb
test edx, edx
je 0x3019f64d
cmp edx, edi
je 0x3019f713
jle 0x3019f76e
cmp edx, 3
jle 0x3019f78e
cmp edx, 4
jne 0x3019f76e
cmp esi, 0x1002
je 0x3019f6cf
cmp esi, 0x86a
jne 0x3019f948
mov eax, dword [ebp - 0x1960]
lea ecx, [eax + 0x210]
cmp dword [ebp - 0x196c], ecx
je 0x3019f948
add eax, 0x374
cmp dword [ebp - 0x196c], eax
je 0x3019f948
cmp dword [ebp - 0xc88], 0
push 0x164
jne 0x3019f733
call fcn.3014dd24
mov dword [ebp - 0xc88], eax
jmp 0x3019f744
cmp esi, 0x102d
jne 0x3019f724
push 0
push 0x7162637a
call ebx
mov eax, dword [0x30229d78]
add eax, 0x169c
jmp 0x3019f8d8
call fcn.3014dd24
mov ecx, dword [ebp - 0xb58]
mov dword [ecx + 0x110], eax
mov dword [ebp - 0xb58], eax
jmp 0x3019f8d8
cmp edx, 7
je 0x3019f78e
cmp edx, 0xc
je 0x3019f64d
cmp edx, 0xf
je 0x3019f64d
cmp edx, 0x1066
je 0x3019f782
push 0
push 0x666c726f
mov dword [0x30229d1c], edi
call ebx
jmp 0x3019f64d
and dword [ebp - 0x1954], 0
jmp 0x3019f948
cmp dword [0x30209e20], 2
jne 0x3019f805
cmp dword [0x302ae904], edi
je 0x3019f805
mov esi, dword [ebp - 0x196c]
add esi, 0x11c
movzx eax, word [esi]
movzx ecx, al
shr cl, 1
or cl, al
xor cl, al
and ecx, edi
xor ecx, eax
mov word [esi], cx
mov eax, dword [ebp - 0x196c]
and word [eax + 0x11c], 0xfffd
cmp dword [ebp - 0xad4], 0x1002
je 0x3019f7e7
push 0
push 0x71626462
call ebx
mov edx, dword [ebp - 0xae0]
push edx
call fcn.301984cc
imul eax, eax, 0x164
mov ecx, dword [0x30229d78]
lea eax, [eax + ecx + 0x868]
jmp 0x3019f8d8
cmp esi, ecx
je 0x3019f820
cmp esi, 0x1041
je 0x3019f820
push 0
push 0x71626461
call ebx
mov edx, dword [ebp - 0xae0]
cmp dword [0x30209e20], 5
jge 0x3019f88b
mov ecx, dword [0x30229d78]
mov al, byte [ecx + 0x268]
and ax, 0xff
cmp ax, di
jbe 0x3019f86a
mov eax, dword [ebp - 0x196c]
add eax, 0x114
mov cl, byte [eax]
xor ebx, ebx
and cl, 0x3c
cmp cl, 0xc
setne bl
add ebx, 8
shl bl, 2
xor bl, byte [eax]
and ebx, 0x3c
xor word [eax], bx
mov ecx, dword [0x30229d78]
push edx
call fcn.301984cc
imul eax, eax, 0x164
movzx edx, byte [ecx + 0x268]
imul edx, edx, 0x8e4
add eax, ecx
lea eax, [edx + eax - 0x7c]
jmp 0x3019f8d8
mov eax, dword [ebp - 0x1964]
cmp eax, dword [ebp - 0xb34]
je 0x3019f8bf
mov eax, dword [ebp - 0x196c]
add eax, 0x114
mov cl, byte [eax]
xor ebx, ebx
and cl, 0x3c
cmp cl, 0xc
setne bl
add ebx, 8
shl bl, 2
xor bl, byte [eax]
and ebx, 0x3c
xor word [eax], bx
push edx
call fcn.301984cc
imul eax, eax, 0x164
mov ecx, dword [ebp - 0x1964]
lea eax, [eax + ecx + 0x410]
push eax
push dword [ebp - 0x196c]
call fcn.301987a9
jmp 0x3019f948
mov esi, dword [0x30229d78]
lea eax, [ebp - 0x19c4]
push eax
push dword [ebp - 0xae8]
add esi, 0x1924
call fcn.301976c0
mov edi, eax
add edi, 0x114
push 5
pop ecx
rep movsd dword es:[edi], dword [esi]
jmp 0x3019f948
cmp dword [ebp - 0xb94], edx
je 0x3019f948
mov ecx, dword [ebp - 0x1960]
movzx eax, word [ecx]
and dword [ebp - 0xb94], 0
test al, 0x42
je 0x3019f948
cmp byte [ecx + 0x771], 0xff
jne 0x3019f948
cmp byte [ecx + 0x776], 0
jne 0x3019f948
or ax, 0x800
mov word [ecx], ax
lea eax, [ebp - 0x1974]
push eax
call fcn.30196c82
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1014
je 0x3019f983
cmp dword [ebp - 0xad4], 0x1041
je 0x3019f983
push 0
mov dword [0x30229d1c], edi
push 0x666c7275
jmp 0x3019ae56
mov eax, dword [ebp - 0xb5c]
push edi
push 0
inc eax
push eax
call fcn.3019824c
mov dword [ebp - 0xb5c], eax
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xad4], 0x1025
je 0x3019f9bc
push 0
mov dword [0x30229d1c], edi
push 0x666c7276
jmp 0x3019ae56
cmp byte [0x30225ca2], 0
movzx eax, byte [esi + 2]
push eax
lea ecx, [ebp - 0x414]
push ecx
push eax
je 0x3019f9f6
add esi, 3
push esi
push dword [0x30229d18]
call fcn.3007f221
lea ecx, [ebp - 0x414]
push ecx
push eax
call fcn.3014fcdf
mov ecx, dword [ebp - 0xb40]
jmp 0x3019fa1c
lea eax, [esi + 3]
push eax
push dword [0x30229d18]
call fcn.3007f221
lea eax, [ebp - 0x414]
push eax
movzx eax, byte [esi + 2]
push eax
call fcn.3014fcdf
mov ecx, dword [ebp - 0x196c]
mov dword [ecx + 0x158], eax
jmp case.0x3019aaf8.4150
call fcn.3008fc06
test eax, eax
je 0x3019b922
jmp case.0x3019aaf8.4150
cmp dword [ebp - 0xaec], 0x92
je 0x3019fa48
push 0
push 0x7162636f
call ebx
mov eax, dword [0x3022b45c]
cmp eax, edi
je 0x3019fa56
cmp eax, 4
jne case.0x3019aaf8.4150
call fcn.3007ca02
mov eax, dword [0x3022b6d8]
push dword [eax + 0x40]
call fcn.3005131c
call fcn.300783e5
push eax
call fcn.30078435
mov edi, eax
push esi
push edi
call fcn.3019876b
push edi
call fcn.3007845a
push edi
call fcn.300d6bbd
push edi
call fcn.3007871a
call fcn.3007ca2e
and dword [ebp - 0xb2c], 0
jmp 0x30199f6b
push 5
push dword [0x302ae8d0]
call dword [sym.imp.MSVCR80.dll_longjmp]
mov eax, dword [0x30229d78]
movzx ecx, byte [eax + 0x268]
and dword [ebp - 0xae0], 0
lea esi, [eax + 0x418]
mov edx, esi
lea ecx, [eax + ecx*4 + 0x418]
jmp 0x3019fad9
cmp dword [edx], 0
je 0x3019fadf
add edx, 4
cmp edx, ecx
jb 0x3019fad1
jmp 0x3019fae5
mov dword [ebp - 0xae0], edi
cmp dword [ebp - 0xae0], 0
je 0x3019fb2a
lea ecx, [eax + 0x440]
cmp esi, ecx
mov dword [0x30229d1c], edi
mov dword [ebp - 0xb18], ecx
jae 0x3019fb23
mov eax, dword [esi]
test eax, eax
je 0x3019fb13
push eax
call fcn.301433a0
and dword [esi], 0
add esi, 4
cmp esi, dword [ebp - 0xb18]
jb 0x3019fb04
mov eax, dword [0x30229d78]
mov byte [eax + 0x268], 0
lea eax, [ebp - 0x1974]
push eax
call fcn.301975dd
mov eax, dword [ebp - 0xb38]
xor esi, esi
cmp eax, esi
je 0x3019fb48
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [ebp - 0xb1c], esi
je 0x3019fb5f
push 0x3001b488
push 0x180b9
call fcn.301038b5
cmp dword [ebp - 0xb20], esi
jg 0x3019fb6f
cmp dword [ebp - 0xae8], esi
jle 0x3019fb7d
push esi
push 0x666c736c
mov dword [0x30229d1c], edi
call ebx
mov eax, dword [0x30229d78]
cmp byte [eax + 0x268], 0
jne 0x3019fbb4
push esi
call fcn.30146867
mov ecx, dword [0x30229d78]
mov dword [ebp - 0x1960], eax
mov dword [ecx + 0x418], eax
mov eax, dword [0x30229d78]
mov byte [eax + 0x268], 1
mov eax, dword [0x30229d78]
lea ecx, [eax + 0x454]
cmp dword [ecx], esi
jne 0x3019fbd0
push dword [ebp - 0xb34]
mov dword [ecx], edi
call fcn.301454a6
mov eax, dword [0x30229d78]
mov ecx, dword [eax + 0x418]
and dword [ebp - 0xaec], 0
mov dword [0x3022bb74], ecx
mov ecx, dword [eax + 0x41c]
mov dword [0x3022bbf8], ecx
mov ecx, dword [ebp - 0xb54]
mov dword [eax + 0x450], ecx
mov eax, dword [0x30229d78]
mov esi, dword [eax + 0x440]
jmp 0x3019fd37
mov eax, dword [esi + 4]
and dword [ebp - 0xaf8], 0
test eax, eax
jl 0x3019fc30
cmp eax, 0xa
jge 0x3019fc30
mov ecx, dword [0x30229d78]
mov eax, dword [ecx + eax*4 + 0x418]
mov dword [esi + 4], eax
jmp 0x3019fc34
and dword [esi + 4], 0
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x14]
and eax, 7
cmp eax, 2
mov dword [ebp - 0xae4], ecx
je 0x3019fc4d
cmp eax, 3
jne 0x3019fcb0
cmp ecx, edi
jl 0x3019fc71
mov eax, dword [0x30229d78]
cmp ecx, dword [eax + 0x444]
jg 0x3019fc71
mov eax, dword [ebp - 0xae4]
dec eax
push eax
call fcn.3014d2a9
test byte [eax + 0x1c], 7
je 0x3019fc77
mov dword [ebp - 0xaf8], edi
cmp dword [ebp - 0xaf8], 0
je 0x3019fcaa
push 0
push 0x38786a68
mov dword [0x30229d1c], edi
call ebx
push esi
call fcn.3014d08a
push 0
push esi
call fcn.3014d391
mov eax, dword [0x30229d78]
dec dword [eax + 0x444]
jmp 0x3019fd29
mov ecx, dword [ebp - 0xae4]
test ecx, ecx
jle 0x3019fcf6
test byte [esi + 0x1c], 0x40
je 0x3019fcc0
and dword [esi + 0x14], 0
jmp 0x3019fcf6
mov eax, dword [ebp - 0xae4]
dec eax
push eax
call fcn.3014d2a9
mov dword [esi + 0x14], eax
or dword [eax + 0x1c], 0x40
push 4
lea eax, [esi + 0x12a]
pop ecx
or word [eax], 0x200
add eax, 0x18
dec ecx
jne 0x3019fcdd
mov eax, dword [0x302ae8d4]
or word [eax + 0x17c], 0x4000
mov eax, dword [esi + 0x1c]
and eax, 7
cmp al, 3
jne 0x3019fd2f
mov eax, dword [esi + 0x18]
mov al, byte [eax]
and al, 7
cmp al, 4
jne 0x3019fd2f
push esi
mov dword [0x30229d1c], edi
call fcn.301ce626
cmp dword [ebp - 0xaec], 0
jne 0x3019fd29
push 0
push 0x666c736d
call ebx
mov esi, dword [ebp - 0xaec]
mov dword [ebp - 0xaec], esi
mov esi, dword [esi]
test esi, esi
jne 0x3019fc0b
cmp dword [0x3022b45c], edi
jne 0x3019fdc5
push dword [ebp - 0xb80]
lea eax, [ebp - 0xc2c]
push dword [ebp - 0xba0]
push eax
call fcn.301988ec
cmp dword [0x30209e20], 5
jge 0x3019fdc5
mov eax, dword [0x30229d78]
lea ecx, [eax + 0x148]
cmp dword [ecx], esi
jne 0x3019fdc5
cmp dword [eax + 0x14c], esi
jne 0x3019fdc5
mov eax, dword [0x302ae87c]
movzx edx, word [eax + 0x72]
sub edx, dword [ebp - 0xc2c]
mov esi, dword [ebp - 0xc24]
lea edx, [edx + esi - 1]
mov dword [ebp - 0xc1c], edx
movzx eax, word [eax + 0x72]
sub eax, dword [ebp - 0xc28]
mov edx, dword [ebp - 0xc20]
lea eax, [edx + eax - 1]
mov dword [ebp - 0xc18], eax
push ecx
lea eax, [ebp - 0xc1c]
push eax
call fcn.3014ddbe
mov eax, dword [0x3022bbf8]
test eax, eax
je 0x3019fdf5
test byte [eax], 0x10
je 0x3019fdf5
push 0
push 0xd
call fcn.3014e39e
mov ecx, dword [0x3022bbf8]
inc eax
cdq
sub eax, edx
sar eax, 1
inc eax
mov dword [ecx + 8], eax
mov eax, dword [0x3022bbf8]
and word [eax], 0xffef
mov esi, 0x201
cmp dword [0x302ae904], esi
jne 0x3019fe41
mov eax, dword [0x30229d78]
or word [eax + 0x17b8], di
mov eax, dword [0x3022bb74]
mov cx, word [eax + 4]
and cx, 0x3fff
cmp cx, 3
jne 0x3019fe41
mov eax, dword [eax + 0x24]
add eax, 0x28
push eax
call fcn.30142fdb
mov eax, dword [0x3022bb74]
mov eax, dword [eax + 0x24]
push 0
add eax, 0x28
push eax
call fcn.30142fae
mov eax, dword [0x302ae904]
cmp eax, esi
je 0x301a015f
cmp eax, 0x202
je 0x301a015f
cmp eax, 0x580
je 0x301a015f
cmp eax, 0x680
je 0x301a015f
and dword [ebp - 0xaec], 0
push 0
push 0xd
call fcn.3014e39e
mov ecx, dword [0x3022bb74]
test ecx, ecx
mov dword [ebp - 0xaf8], eax
je 0x3019fe9e
test word [ecx], 0x4000
je 0x3019fe9e
add eax, eax
mov dword [ebp - 0xaf8], eax
mov eax, dword [0x30229d78]
mov esi, dword [eax + 0x440]
mov ecx, edi
mov dword [ebp - 0xaf0], ecx
jmp 0x3019ff7f
test byte [esi + 0x1c], 7
je 0x3019fed6
and dword [esi + 0x144], 0
and dword [esi + 0x15c], 0
and dword [esi + 0x12c], 0
jmp 0x3019ff7d
mov dword [esi + 0x12c], ecx
mov eax, dword [esi + 0x134]
test eax, eax
je 0x3019ff21
movzx ecx, word [eax]
lea ecx, [ecx + ecx + 4]
push ecx
push dword [ebp - 0xb44]
push eax
call fcn.3002660a
mov eax, dword [ebp - 0xb44]
movzx edx, word [eax]
xor ecx, ecx
push ecx
lea edx, [edx + edx + 4]
push edx
push eax
push 3
push ecx
push dword [ebp - 0xaf0]
push ecx
call fcn.300a605b
mov ecx, dword [ebp - 0xaf0]
mov eax, dword [esi + 0x154]
cmp eax, dword [ebp - 0xaec]
mov dword [esi + 0x144], ecx
jle 0x3019ff3b
mov dword [ebp - 0xaec], eax
mov eax, dword [0x3022bb74]
test eax, eax
je 0x3019ff66
test word [eax], 0x4000
je 0x3019ff66
mov eax, dword [esi + 0x184]
inc ecx
cmp eax, dword [ebp - 0xaec]
mov dword [esi + 0x174], ecx
jle 0x3019ff66
mov dword [ebp - 0xaec], eax
and dword [esi + 0x15c], 0
or word [esi + 0x15a], 0x200
inc ecx
mov dword [ebp - 0xaf0], ecx
mov esi, dword [esi]
test esi, esi
jne 0x3019feb6
mov eax, dword [0x302ae8d4]
or word [eax + 0x17c], 0x4000
mov eax, dword [0x30229d78]
mov eax, dword [eax + 0x440]
test eax, eax
je 0x3019ffb8
mov eax, dword [eax + 0x16c]
cmp eax, dword [ebp - 0xaec]
jle 0x3019ffb8
mov dword [ebp - 0xaec], eax
push edi
push edi
push dword [ebp - 0xaec]
xor esi, esi
push esi
call fcn.30085d79
push esi
push edi
push dword [ebp - 0xaf8]
push esi
call fcn.30085d79
mov eax, dword [0x30229d78]
mov dword [0x30229f78], esi
mov esi, dword [eax + 0x440]
jmp 0x301a012e
test byte [esi + 0x1c], 7
jne 0x301a012c
movzx edx, byte [esi + 0x159]
mov ecx, dword [esi + 0x15c]
mov eax, dword [esi + 0x144]
mov dword [ebp - 0xba4], edx
movzx edx, byte [esi + 0x129]
mov dword [ebp - 0xb18], edx
xor edx, edx
cmp dword [0x30229d54], edx
mov dword [ebp - 0xae0], ecx
movzx ecx, byte [esi + 0x141]
je 0x301a006b
mov dword [ebp - 0xb8c], eax
mov dword [ebp - 0xb90], eax
mov dword [ebp - 0xbf4], eax
mov dword [ebp - 0xbf8], eax
mov eax, dword [0x3022b72c]
dec eax
mov dword [ebp - 0xb88], edi
mov dword [ebp - 0xb84], eax
mov dword [ebp - 0xbec], edx
mov dword [ebp - 0xbf0], edx
jmp 0x301a00a1
mov dword [ebp - 0xb84], eax
mov dword [ebp - 0xb88], eax
mov dword [ebp - 0xbec], eax
mov dword [ebp - 0xbf0], eax
mov eax, dword [0x3022b728]
dec eax
mov dword [ebp - 0xb90], edi
mov dword [ebp - 0xb8c], eax
mov dword [ebp - 0xbf4], edx
mov dword [ebp - 0xbf8], edx
lea eax, [ebp - 0xb90]
push eax
push ecx
call fcn.300850bb
lea eax, [ebp - 0xbf8]
push eax
push dword [ebp - 0xb18]
call fcn.300850bb
mov eax, dword [0x30229d78]
cmp esi, dword [eax + 0x440]
jne 0x301a012c
cmp dword [0x30229d54], 0
mov eax, dword [ebp - 0xae0]
je 0x301a00fc
mov dword [ebp - 0xb8c], eax
mov dword [ebp - 0xb90], eax
mov eax, dword [0x3022b72c]
dec eax
mov dword [ebp - 0xb88], edi
mov dword [ebp - 0xb84], eax
jmp 0x301a011a
mov dword [ebp - 0xb84], eax
mov dword [ebp - 0xb88], eax
mov eax, dword [0x3022b728]
dec eax
mov dword [ebp - 0xb90], edi
mov dword [ebp - 0xb8c], eax
lea eax, [ebp - 0xb90]
push eax
push dword [ebp - 0xba4]
call fcn.300850bb
mov esi, dword [esi]
test esi, esi
jne 0x3019ffec
cmp dword [ebp - 0xaec], esi
jle 0x301a02dc
push esi
push esi
call fcn.3009881c
push dword [ebp - 0xaf8]
push dword [ebp - 0xaec]
call fcn.3009881c
jmp 0x301a02dc
and dword [ebp - 0xb18], 0
cmp dword [0x30229f08], 0
jle 0x301a019a
mov eax, dword [0x3022b680]
dec eax
push eax
push dword [0x3022b454]
call fcn.3007f8c2
push eax
mov eax, dword [0x30229f08]
dec eax
push eax
push dword [0x3022a6f4]
call fcn.3007f8c2
push eax
call fcn.3009881c
mov eax, dword [0x3022b45c]
cmp eax, edi
je 0x301a01a8
cmp eax, 4
jne 0x301a020c
mov eax, dword [0x3022bb74]
test eax, eax
je 0x301a0205
mov ax, word [eax + 4]
and ax, 0x3fff
cmp ax, 5
jne 0x301a0205
push dword [0x30229d54]
push dword [0x30229f78]
call fcn.3008586f
test eax, eax
je 0x301a020c
push dword [0x30229d54]
lea eax, [ebp - 0xc3c]
push edi
push 0
push eax
mov eax, dword [0x30229f78]
push eax
push eax
call fcn.300a8052
push dword [0x30229d54]
mov eax, dword [0x30229f78]
push edi
push eax
push eax
call fcn.30085d79
jmp 0x301a020c
and dword [0x30229f78], 0
mov eax, dword [0x30229d78]
mov esi, dword [eax + 0x440]
test esi, esi
je 0x301a02dc
mov edi, dword [ebp - 0xb18]
mov ebx, 0x200
test byte [esi + 0x1c], 7
je 0x301a0249
xor eax, eax
mov dword [esi + 0x144], eax
mov dword [esi + 0x15c], eax
mov dword [esi + 0x12c], eax
jmp 0x301a02c9
cmp dword [0x302ae904], 0x201
je 0x301a025e
cmp dword [esi + 0x144], 0
jne 0x301a029b
cmp dword [0x30229d54], 0
je 0x301a027c
inc edi
push edi
call fcn.30085825
test eax, eax
je 0x301a0267
cmp edi, dword [0x30229f78]
je 0x301a0267
jmp 0x301a028f
inc edi
push edi
call fcn.3008584a
test eax, eax
je 0x301a027c
cmp edi, dword [0x30229f78]
je 0x301a027c
mov dword [esi + 0x12c], edi
mov dword [esi + 0x144], edi
mov eax, dword [0x30229f78]
or word [esi + 0x12a], bx
or word [esi + 0x142], bx
or word [esi + 0x15a], bx
mov dword [esi + 0x15c], eax
mov eax, dword [0x302ae8d4]
or word [eax + 0x17c], 0x4000
mov esi, dword [esi]
test esi, esi
jne 0x301a022a
mov ebx, dword [sym.imp.MSO.dll_Ordinal_6848]
xor edi, edi
inc edi
mov ecx, dword [0x30229d78]
movzx eax, word [ecx + 0x268]
mov dl, al
and dx, 0xff
cmp dx, di
jbe 0x301a039c
mov esi, dword [0x3022bb74]
xor edx, edx
cmp word [esi + 4], 5
mov dword [ebp - 0xaf8], edi
sete dl
and ax, 0xff
cmp ax, di
mov dword [ebp - 0xb18], edx
jbe 0x301a039c
mov esi, 0x41c
mov eax, dword [esi + ecx]
xor ecx, ecx
cmp word [eax + 4], 5
sete cl
xor ecx, dword [ebp - 0xb18]
je 0x301a037e
mov eax, dword [0x302ae904]
cmp eax, 0x201
je 0x301a0359
cmp eax, 0x202
je 0x301a0359
cmp eax, 0x580
je 0x301a0359
cmp eax, 0x680
jne 0x301a0362
push 0
push 0x666c7464
call ebx
push edi
push 0
push 0
call fcn.3014572c
mov eax, dword [ebp - 0xc14]
mov dword [0x30229d1c], edi
mov dword [eax], 0x1002b
mov ecx, dword [0x30229d78]
movzx eax, byte [ecx + 0x268]
inc dword [ebp - 0xaf8]
add esi, 4
cmp dword [ebp - 0xaf8], eax
jl 0x301a0323
mov eax, dword [0x302ae904]
cmp eax, 0x201
je 0x301a03af
cmp eax, 0x202
jne 0x301a03b5
mov dword [0x30229d74], edi
xor ebx, ebx
push ebx
call fcn.3016536f
cmp dword [0x30209e20], 6
jge 0x301a043c
mov eax, dword [0x30229d78]
mov esi, dword [eax + 0x450]
jmp 0x301a0414
mov eax, dword [esi + 0xc]
mov ecx, dword [0x30229d78]
cmp eax, dword [ecx + 0x444]
jge 0x301a040e
push eax
call fcn.301482c3
cmp eax, ebx
je 0x301a040e
mov eax, dword [eax + 4]
cmp word [eax + 4], di
jne 0x301a040e
test byte [esi + 0x24], 1
je 0x301a040e
cmp dword [esi + 0x40], 3
jne 0x301a040e
or word [esi], 0xff00
and word [esi + 2], 0xfeff
mov esi, dword [esi + 0x104]
cmp esi, ebx
jne 0x301a03d3
mov eax, dword [0x3022bb74]
mov cx, word [eax + 4]
and cx, 0x3fff
cmp cx, 3
jne 0x301a043c
cmp dword [eax + 0x4e0], ebx
jle 0x301a043c
or word [eax + 0x86c], 2
call fcn.300a7bfe
mov ecx, dword [0x3022bb74]
mov dword [ecx + 0xc], eax
mov eax, dword [0x3022bbf8]
cmp eax, ebx
je 0x301a045f
mov ecx, dword [0x3022bb74]
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov eax, dword [0x3022bbf8]
cmp eax, ebx
jne 0x301a0475
mov eax, dword [0x30229d78]
mov esi, dword [eax + 0x444]
jmp 0x301a0479
mov esi, dword [eax + 8]
dec esi
cmp dword [0x302ae904], 0x201
mov ecx, dword [0x3022bb74]
jne 0x301a05e3
mov ax, word [ecx + 4]
and ax, 0xc000
cmp ax, 0x8000
jne 0x301a05e3
movzx eax, word [ecx]
test al, 0x42
je 0x301a04e6
mov ecx, dword [ecx + 0x24]
lea eax, [ecx + 0x180]
movzx ecx, byte [ecx + 0x110]
xor cl, byte [eax]
and ecx, 0xf
xor word [eax], cx
mov eax, dword [0x3022bb74]
mov ecx, dword [eax + 0x24]
lea eax, [ecx + 0x180]
mov cx, word [ecx + 0x110]
xor cx, word [eax]
and cx, 0xf00
xor word [eax], cx
mov ecx, dword [0x3022bb74]
mov ax, word [ecx + 4]
and ax, 0x3fff
cmp ax, 4
mov eax, dword [ecx + 0x650]
cdq
jne 0x301a0510
push 6
pop ebx
idiv ebx
push 0x64
imul eax, dword [ecx + 0xc]
push eax
call fcn.3007f8d4
xor ebx, ebx
jmp 0x301a051c
and edx, 3
add eax, edx
sar eax, 2
imul eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x1960]
test byte [ecx], 0x40
je 0x301a052a
imul eax, esi
push 0x7d0
push eax
call fcn.3007f8d4
push 0x14
push eax
call fcn.3007f8c2
mov ecx, dword [0x3022bb74]
mov dword [ecx + 0x650], eax
mov eax, dword [0x3022bb74]
push edi
add eax, 0x770
push eax
call fcn.30142ff7
mov eax, dword [0x3022bb74]
push edi
add eax, 0x680
push eax
call fcn.30142ff7
mov ecx, dword [ebp - 0x1960]
mov eax, dword [ecx + 0x24]
cmp byte [eax + 0x29], 0xff
je 0x301a059b
mov eax, dword [eax + 0x28]
mov dword [ecx + 0x770], eax
mov eax, dword [ebp - 0x1960]
mov eax, dword [eax + 0x24]
add eax, 0x28
push eax
call fcn.30142fdb
mov ecx, dword [ebp - 0x1960]
cmp dword [ebp - 0xba8], ebx
je 0x301a05b4
mov eax, dword [ecx + 0x24]
mov eax, dword [eax + 0x138]
mov dword [ecx + 0x680], eax
jmp 0x301a05be
mov eax, dword [0x3022bb74]
or word [eax], 0x800
mov eax, dword [0x3022bb74]
cmp word [eax + 4], 0x8003
jne 0x301a05d7
mov dword [eax + 0x644], 0x17
jmp 0x301a05dd
mov dword [eax + 0x654], ebx
mov ecx, dword [0x3022bb74]
cmp word [ecx + 4], 0x8003
jne 0x301a0660
mov dword [ecx + 0x640], 0x14
test byte [0x3022cf84], 2
je 0x301a062f
call fcn.30140b32
test eax, eax
je 0x301a062f
mov eax, dword [0x3022bb74]
test byte [eax], 4
je 0x301a0621
mov cx, word [eax + 4]
and cx, 0xc000
cmp cx, 0x8000
je 0x301a062f
add eax, 0x640
mov ecx, 0x168
sub ecx, dword [eax]
mov dword [eax], ecx
mov eax, dword [ebp - 0x1960]
or word [eax], 0x80
mov eax, dword [ebp - 0x1960]
or word [eax], 0x40
mov eax, dword [ebp - 0x1960]
or word [eax], 0x100
mov eax, dword [ebp - 0x1960]
and word [eax], 0xf7ff
mov ecx, dword [0x3022bb74]
cmp dword [0x30209e20], 4
jg 0x301a0698
cmp word [ecx + 4], 0x8001
jne 0x301a0698
push 3
push 5
push dword [ecx + 0x18]
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
push 0x1f4
call fcn.3007f8d4
mov ecx, dword [0x3022bb74]
mov dword [ecx + 0x18], eax
mov ecx, dword [0x3022bb74]
mov ax, word [ecx + 4]
and ax, 0x3fff
cmp ax, 3
jne 0x301a0706
mov al, byte [ecx + 0x4ec]
and al, 0x1f
cmp al, 5
jne 0x301a06d1
lea eax, [ecx + 0x32e]
test byte [eax], 5
jne 0x301a06d1
mov cx, word [eax]
and cx, 0xffe5
or cx, 5
mov word [eax], cx
mov ecx, dword [0x3022bb74]
mov esi, dword [0x3022bbf8]
cmp esi, ebx
je 0x301a0706
mov al, byte [esi + 0x4ec]
and al, 0x1f
cmp al, 5
jne 0x301a0706
lea eax, [esi + 0x32e]
test byte [eax], 5
jne 0x301a0706
mov cx, word [eax]
and cx, 0xffe5
or cx, 5
mov word [eax], cx
mov ecx, dword [0x3022bb74]
cmp dword [0x30209e20], 5
jne 0x301a074b
cmp word [ecx + 4], di
jne 0x301a074b
test byte [ecx], 2
je 0x301a074b
mov eax, dword [ebp - 0xc88]
cmp eax, ebx
je 0x301a074b
mov cl, byte [eax + 0x114]
and cl, 0x3c
cmp cl, 0x10
jne 0x301a073b
or word [eax + 0x11e], 0x200
mov eax, dword [eax + 0x110]
cmp eax, ebx
jne 0x301a0724
mov ecx, dword [0x3022bb74]
mov eax, dword [ebp - 0xc88]
cmp eax, ebx
mov dword [ebp - 0xb40], eax
je 0x301a078d
mov ecx, dword [ebp - 0xb40]
lea eax, [ecx + 0x110]
mov esi, dword [eax]
push ecx
mov dword [eax], ebx
push dword [0x3022bb74]
mov dword [ebp - 0xb58], esi
call fcn.3014a012
cmp esi, ebx
mov dword [ebp - 0xb40], esi
jne 0x301a075b
mov ecx, dword [0x3022bb74]
cmp dword [0x302ae904], 0x201
jne 0x301a07b0
push dword [ebp - 0xb3c]
push dword [ebp - 0xb54]
call fcn.30199a08
mov ecx, dword [0x3022bb74]
cmp ecx, ebx
je 0x301a07e3
test word [ecx], 0x4000
je 0x301a07e3
mov eax, dword [0x3022b108]
test byte [eax + 4], 1
jne 0x301a07e3
push 0xffffffffffffffff
push edi
push 0xffffffffffffffff
call fcn.300a5deb
mov eax, dword [0x3022b108]
mov ecx, dword [eax + 4]
dec ecx
push ecx
push eax
call fcn.300a6307
mov dword [eax + 4], ebx
cmp dword [ebp - 0xbcc], ebx
je 0x301a0803
push dword [ebp - 0xb60]
lea eax, [ebp - 0x1a80]
push dword [ebp - 0xbcc]
push eax
call fcn.300acfcc
cmp dword [0x30209e20], 4
jg 0x301a0824
push ebx
push ebx
push 0x30179bb6
call fcn.3014e26e
push 0xc
push 0x30179abf
call fcn.3014e8bd
mov eax, dword [0x30229d78]
test byte [eax + 0x1678], 1
jne 0x301a0837
call fcn.301a3c1c
call fcn.30147d4d
mov eax, dword [0x30229d78]
mov al, byte [eax + 0x268]
mov dword [ebp - 0xb30], ebx
test ax, 0xff
jbe 0x301a0a23
mov dword [ebp - 0xb2c], 0x418
mov eax, dword [ebp - 0xb2c]
mov ecx, dword [0x30229d78]
mov esi, dword [eax + ecx]
movzx ecx, word [esi + 0x4ec]
mov eax, ecx
and eax, 0x1f
mov dword [ebp - 0xb34], eax
movzx eax, word [esi + 0x32e]
mov edx, eax
and edx, 0x1f
mov dword [ebp - 0xae0], edx
movzx edx, word [esi + 0x492]
mov ebx, edx
and ebx, 0x1f
mov dword [ebp - 0xaf8], ebx
mov bx, word [esi + 4]
and bx, 0x3fff
cmp bx, 4
mov dword [ebp - 0xb18], edx
je 0x301a08ca
cmp bx, 8
je 0x301a08ca
and dword [ebp - 0xae4], 0
jmp 0x301a08d0
mov dword [ebp - 0xae4], edi
cmp dword [ebp - 0xae0], 4
jne 0x301a09a1
mov ebx, dword [ebp - 0xb34]
sub ebx, 0
je 0x301a0967
dec ebx
je 0x301a0945
dec ebx
je 0x301a091b
dec ebx
dec ebx
je 0x301a08fc
sub ebx, 4
je 0x301a0945
jmp 0x301a09fe
cmp dword [ebp - 0xae4], 0
je 0x301a0990
and ax, 0xfff0
and cx, 0xfff0
or ax, 0x10
or cx, 0x10
jmp 0x301a0982
cmp dword [ebp - 0xaf8], 2
jne 0x301a092d
and ax, 0xefe4
jmp 0x301a09e3
test byte [ebp - 0xaf8], 2
jle 0x301a09fe
and ax, 0xefff
mov word [esi + 0x32e], ax
push esi
call fcn.3015fef0
movzx eax, byte [esi + 0x4ec]
xor al, byte [esi + 0x32e]
and eax, 0x1f
xor word [esi + 0x4ec], ax
jmp 0x301a09fe
cmp dword [ebp - 0xae4], 0
je 0x301a0990
test ax, 0x1000
je 0x301a0990
and cx, 0xffe4
or cx, 4
and ax, 0xefff
mov word [esi + 0x32e], ax
mov word [esi + 0x4ec], cx
and dx, 0xffe2
or dx, 2
mov word [esi + 0x492], dx
jmp 0x301a09fe
cmp dword [ebp - 0xaf8], 2
jne 0x301a09fe
cmp dword [ebp - 0xb34], 0
jne 0x301a09d6
cmp dword [ebp - 0xae4], 0
jne 0x301a09df
cmp dword [ebp - 0xae0], 0x10
jne 0x301a09df
and cx, 0xfff0
or cx, 0x10
mov word [esi + 0x4ec], cx
jmp 0x301a09fe
cmp dword [ebp - 0xb34], 2
jne 0x301a09f0
and ax, 0xffe4
or ax, 4
mov word [esi + 0x32e], ax
jmp 0x301a09fe
xor al, cl
and eax, 0x1f
xor eax, ecx
mov word [esi + 0x4ec], ax
mov eax, dword [0x30229d78]
movzx eax, byte [eax + 0x268]
inc dword [ebp - 0xb30]
add dword [ebp - 0xb2c], 4
cmp dword [ebp - 0xb30], eax
jl 0x301a0861
mov eax, dword [0x30229d78]
mov ebx, dword [eax + 0x450]
jmp 0x301a0b46
mov eax, dword [ebx + 0xc]
mov ecx, dword [0x30229d78]
cmp eax, dword [ecx + 0x444]
jge 0x301a0b40
cmp dword [ebx + 0x10], 0xffffffff
jne 0x301a0b40
push eax
call fcn.301482c3
test eax, eax
mov dword [ebp - 0xaf8], eax
je 0x301a0b40
test byte [eax + 0x1c], 7
jne 0x301a0b40
and dword [ebp - 0xae4], 0
and dword [ebp - 0xae0], 0
mov eax, dword [eax + 8]
jmp 0x301a0b38
cmp dword [eax + 0x118], 0xffffffff
jne 0x301a0b23
cmp dword [ebp - 0xae0], 0
je 0x301a0ac7
mov ecx, dword [ebp - 0xae4]
test ecx, ecx
mov esi, dword [eax + 0x110]
jne 0x301a0ab7
mov ecx, dword [ebp - 0xaf8]
mov dword [ecx + 8], esi
jmp 0x301a0abd
mov dword [ecx + 0x110], esi
push eax
call fcn.3014fb74
mov eax, esi
jmp 0x301a0b38
movzx ecx, word [eax + 0x11e]
mov dl, cl
and dl, 0x1f
cmp dl, 4
mov dword [ebp - 0xae0], edi
jne 0x301a0b12
test cx, 0x1000
jne 0x301a0b12
mov edx, dword [ebp - 0xaf8]
mov edx, dword [edx + 4]
mov dx, word [edx + 4]
and dx, 0x3fff
cmp dx, 4
je 0x301a0b03
cmp dx, 8
jne 0x301a0b12
and cx, 0xfff0
or cx, 0x10
mov word [eax + 0x11e], cx
movzx ecx, byte [eax + 0x11e]
xor cl, byte [ebx + 8]
and ecx, 0x1f
xor word [ebx + 8], cx
and word [eax + 0x11e], 0xefff
mov dword [ebp - 0xae4], eax
mov eax, dword [eax + 0x110]
test eax, eax
jne 0x301a0a86
mov ebx, dword [ebx + 0x104]
test ebx, ebx
jne 0x301a0a33
cmp dword [0x30209e20], 6
jge 0x301a0cff
mov eax, dword [0x30229d78]
mov ebx, dword [eax + 0x450]
jmp 0x301a0beb
test byte [ebx + 0x24], 1
je 0x301a0be5
cmp dword [ebx + 0x40], 0
jne 0x301a0be5
mov eax, dword [0x30229d78]
mov ecx, dword [ebx + 0xc]
mov eax, dword [eax + 0x450]
jmp 0x301a0b98
cmp dword [eax + 0xc], ecx
jne 0x301a0b92
cmp dword [eax + 0x10], 0xffffffff
je 0x301a0ba4
mov eax, dword [eax + 0x104]
test eax, eax
mov dword [ebp - 0xae0], eax
jne 0x301a0b87
jmp 0x301a0be5
push 6
pop ecx
lea eax, [ebx + 0x24]
lea esi, [ebx + 0x28]
lea edi, [ebp - 0x7ac]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.301c944e
push dword [0x302ae8d4]
lea eax, [ebx + 0x24]
push eax
mov eax, dword [ebp - 0xae0]
add eax, 0x24
push eax
call fcn.301c93df
push 6
pop ecx
lea esi, [ebp - 0x7ac]
lea edi, [ebx + 0x28]
rep movsd dword es:[edi], dword [esi]
xor edi, edi
inc edi
mov ebx, dword [ebx + 0x104]
test ebx, ebx
jne 0x301a0b6b
mov eax, dword [0x30229d78]
xor edx, edx
cmp dword [eax + 0x454], edx
jle 0x301a0c29
xor ecx, ecx
mov eax, dword [0x30229d78]
lea eax, [ecx + eax + 0x7d0]
and word [eax], 0xfbff
mov eax, dword [0x30229d78]
inc edx
add ecx, 0x8e4
cmp edx, dword [eax + 0x454]
jl 0x301a0c04
mov eax, dword [0x30229d78]
mov al, byte [eax + 0x268]
xor esi, esi
test ax, 0xff
jbe 0x301a0ca3
mov edx, 0x418
mov eax, dword [0x30229d78]
mov eax, dword [eax + edx]
mov cx, word [eax + 4]
and word [eax + 0x86c], 0xfffe
and cx, 0x3fff
cmp cx, 3
jne 0x301a0c8f
cmp dword [eax + 0x1c], 0
jne 0x301a0c8f
lea ecx, [eax + 0x32e]
mov bx, word [ecx]
and bx, 0xfe3f
or bx, 0x20
add eax, 0x492
mov word [ecx], bx
mov cx, word [eax]
and cx, 0xfe3f
or cx, 0x20
mov word [eax], cx
mov eax, dword [0x30229d78]
movzx eax, byte [eax + 0x268]
inc esi
add edx, 4
cmp esi, eax
jl 0x301a0c41
mov eax, dword [0x30229d78]
mov edx, dword [eax + 0x440]
jmp 0x301a0cfb
mov eax, dword [edx + 4]
mov cx, word [eax + 4]
and cx, 0x3fff
cmp cx, 3
jne 0x301a0cf9
cmp dword [eax + 0x1c], 0
jne 0x301a0cf9
mov esi, dword [edx + 8]
jmp 0x301a0cf5
lea ecx, [esi + 0x11e]
movzx eax, word [ecx]
mov ebx, eax
and bx, 0x1e0
cmp bx, 0x140
je 0x301a0cef
and ax, 0xfe3f
or ax, 0x20
mov word [ecx], ax
mov esi, dword [esi + 0x110]
test esi, esi
jne 0x301a0ccd
mov edx, dword [edx]
test edx, edx
jne 0x301a0cb0
mov eax, dword [0x30229d78]
mov edx, dword [eax + 0x440]
jmp 0x301a0d42
mov eax, dword [edx + 0xc]
jmp 0x301a0d3c
test byte [eax + 4], 2
je 0x301a0d39
test byte [eax + 0x10], 1
je 0x301a0d39
mov esi, dword [0x30229d78]
push 5
add esi, 0x1670
lea edi, [eax + 8]
pop ecx
rep movsd dword es:[edi], dword [esi]
or word [eax + 0x10], 1
xor edi, edi
inc edi
mov eax, dword [eax + 0x20]
test eax, eax
jne 0x301a0d11
mov edx, dword [edx]
test edx, edx
jne 0x301a0d0c
lea eax, [ebp - 0xc58]
push eax
call fcn.30135a87
mov eax, dword [ebp - 0xbb0]
mov dword [0x302ae8d0], eax
lea eax, [ebp - 0x1974]
push eax
call fcn.30196bb1
cmp dword [0x30209e20], 5
jge 0x301a0d82
push 0x3022c73c
lea ecx, [ebp - 0xc34]
call fcn.3002f42e
mov eax, dword [0x302af380]
test eax, eax
je 0x301a0d98
push eax
call fcn.3007871a
and dword [0x302af380], 0
mov eax, edi
jmp 0x3019b9e9
push 6
jmp 0x3019faa1
push 0
push 0x366e6335
mov dword [0x30229d1c], edi
call ebx
mov eax, dword [ebp - 0xbb0]
mov dword [0x302ae8d0], eax
jmp 0x3019b93c