Function at 0x10088fa0
Capabilities:
Encrypt data using dpapi
Encrypt or decrypt data via bcrypt

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x220c
call fcn.100e19b0
mov eax, dword [0x10102008]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x10103d94], 0x10
lea edx, [ebp - 0x2070]
push ebx
push esi
push edi
mov ecx, 0x10103d80
mov dword [ebp - 0x2020], 0
cmovae ecx, dword [0x10103d80]
push 0
push 6
mov dword [ebp - 0x2010], 0
mov dword [ebp - 0x200c], 0xf
mov dword [ebp - 0x2068], 0
mov dword [ebp - 0x2058], 0
mov dword [ebp - 0x2054], 0xf
mov dword [ebp - 0x2050], 0
mov dword [ebp - 0x2040], 0
mov dword [ebp - 0x203c], 0xf
mov dword [ebp - 0x2038], 0
mov dword [ebp - 0x2028], 0
mov dword [ebp - 0x2024], 0xf
call fcn.10082160
add esp, 8
test eax, eax
jne 0x1008a530
sub esp, 0x18
mov ecx, esp
push 0x10103f18
call fcn.100b3780
lea ecx, [ebp - 0x2134]
call fcn.10084cd0
add esp, 0x18
cmp dword [eax + 0x14], 0x10
jb 0x10089084
mov eax, dword [eax]
push 0
lea ecx, [ebp - 0x206c]
mov edx, eax
push ecx
mov ecx, dword [ebp - 0x2070]
push 0
push 1
push 0xffffffffffffffff
call fcn.1005eb70
mov edx, dword [ebp - 0x2120]
add esp, 0x14
test eax, eax
setne bl
cmp edx, 0x10
jb 0x100890e2
mov ecx, dword [ebp - 0x2134]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100890d8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6a0
push edx
push ecx
call fcn.100bfa23
add esp, 8
test bl, bl
jne 0x1008a530
push dword [ebp - 0x206c]
call fcn.10027a20
add esp, 4
cmp eax, 0x64
jne 0x1008a52c
push 0
push dword [ebp - 0x206c]
call fcn.10028470
push 1
push dword [ebp - 0x206c]
mov esi, eax
call fcn.10028470
push 2
push dword [ebp - 0x206c]
mov edi, eax
call fcn.10028470
add esp, 0x18
mov edx, eax
mov dword [ebp - 0x20e0], edx
test esi, esi
je 0x1008a52c
test edi, edi
je 0x1008a52c
test edx, edx
je 0x1008a52c
mov ecx, esi
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10089154
sub ecx, ebx
je 0x1008a515
mov ecx, edi
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10089168
sub ecx, ebx
je 0x1008a515
mov ecx, edx
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10089180
sub ecx, edx
je 0x1008a515
mov ecx, esi
mov dword [ebp - 0x20d8], 0
mov dword [ebp - 0x20c8], 0
mov dword [ebp - 0x20c4], 0xf
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100891b2
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x20d8]
call fcn.100b3d90
lea eax, [ebp - 0x20d8]
push eax
lea ecx, [ebp - 0x2020]
call fcn.100b36c0
mov edx, dword [ebp - 0x20c4]
cmp edx, 0x10
jb 0x10089214
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008920a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6af
push edx
push ecx
call fcn.100bfa23
add esp, 8
cmp dword [ebp - 0x200c], 0x10
lea eax, [ebp - 0x2020]
push dword [ebp - 0x2010]
cmovae eax, dword [ebp - 0x2020]
lea ecx, [ebp - 0x20d8]
push eax
mov dword [ebp - 0x20d8], 0
mov dword [ebp - 0x20c8], 0
mov dword [ebp - 0x20c4], 0xf
call fcn.100b3d90
lea eax, [ebp - 0x20d8]
push eax
lea ecx, [ebp - 0x2020]
call fcn.100b36c0
mov edx, dword [ebp - 0x20c4]
cmp edx, 0x10
jb 0x100892a4
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008929a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6af
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov ecx, edi
mov dword [ebp - 0x20d8], 0
mov dword [ebp - 0x20c8], 0
mov dword [ebp - 0x20c4], 0xf
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100892c7
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x20d8]
call fcn.100b3d90
lea eax, [ebp - 0x20d8]
push eax
lea ecx, [ebp - 0x2068]
call fcn.100b36c0
mov edx, dword [ebp - 0x20c4]
cmp edx, 0x10
jb 0x10089329
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008931f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6af
push edx
push ecx
call fcn.100bfa23
add esp, 8
sub esp, 0x18
lea eax, [ebp - 0x2020]
mov ecx, esp
push eax
call fcn.100b3780
sub esp, 0x18
mov ecx, esp
push 2
push 0x100fc84c
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.100b3d90
call fcn.10086350
add esp, 0x30
test eax, eax
jle 0x10089841
sub esp, 0x18
lea eax, [ebp - 0x2020]
mov ecx, esp
push eax
call fcn.100b3780
sub esp, 0x18
mov ecx, esp
push 2
push 0x100fc84c
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.100b3d90
call fcn.10086350
add esp, 0x30
mov dword [ebp - 0x20d8], 0
mov dword [ebp - 0x20c8], 0
mov dword [ebp - 0x20c4], 0xf
lea ecx, [eax - 1]
cmp dword [ebp - 0x2010], ecx
lea eax, [ebp - 0x2020]
cmovb ecx, dword [ebp - 0x2010]
cmp dword [ebp - 0x200c], 0x10
push ecx
cmovae eax, dword [ebp - 0x2020]
lea ecx, [ebp - 0x20d8]
push eax
call fcn.100b3d90
lea eax, [ebp - 0x20d8]
push eax
lea ecx, [ebp - 0x2038]
call fcn.100b36c0
mov edx, dword [ebp - 0x20c4]
cmp edx, 0x10
jb 0x10089448
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008943e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6af
push edx
push ecx
call fcn.100bfa23
add esp, 8
cmp dword [ebp - 0x200c], 0x10
lea esi, [ebp - 0x2020]
cmovae esi, dword [ebp - 0x2020]
lea ecx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x10089460
sub esp, 0x18
lea eax, [ebp - 0x2020]
sub esi, ecx
mov ecx, esp
push eax
call fcn.100b3780
sub esp, 0x18
mov ecx, esp
push 2
push 0x100fc84c
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.100b3d90
call fcn.10086350
add esp, 0x30
mov dword [ebp - 0x20d8], 0
mov dword [ebp - 0x20c8], 0
mov dword [ebp - 0x20c4], 0xf
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x2010]
cmp eax, ecx
jb 0x1008a6aa
sub eax, ecx
cmp eax, esi
cmovb esi, eax
cmp dword [ebp - 0x200c], 0x10
lea eax, [ebp - 0x2020]
cmovae eax, dword [ebp - 0x2020]
add eax, ecx
lea ecx, [ebp - 0x20d8]
push esi
push eax
call fcn.100b3d90
lea eax, [ebp - 0x20d8]
push eax
lea ecx, [ebp - 0x2020]
call fcn.100b36c0
mov edx, dword [ebp - 0x20c4]
cmp edx, 0x10
jb 0x1008954c
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10089542
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6af
push edx
push ecx
call fcn.100bfa23
add esp, 8
sub esp, 0x18
lea eax, [ebp - 0x2020]
mov ecx, esp
push eax
call fcn.100b3780
sub esp, 0x18
mov ecx, esp
push 1
push 0x100fc850
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.100b3d90
call fcn.10086350
add esp, 0x30
test eax, eax
jle 0x10089746
sub esp, 0x18
lea eax, [ebp - 0x2020]
mov ecx, esp
push eax
call fcn.100b3780
sub esp, 0x18
mov ecx, esp
push 1
push 0x100fc850
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.100b3d90
call fcn.10086350
add esp, 0x30
mov dword [ebp - 0x20d8], 0
mov dword [ebp - 0x20c8], 0
mov dword [ebp - 0x20c4], 0xf
lea ecx, [eax - 1]
cmp dword [ebp - 0x2010], ecx
lea eax, [ebp - 0x2020]
cmovb ecx, dword [ebp - 0x2010]
cmp dword [ebp - 0x200c], 0x10
push ecx
cmovae eax, dword [ebp - 0x2020]
lea ecx, [ebp - 0x20d8]
push eax
call fcn.100b3d90
mov ecx, dword [ebp - 0x2028]
mov eax, 0x7fffffff
sub eax, ecx
cmp eax, 2
jb 0x1008a6a5
cmp dword [ebp - 0x2024], 0x10
lea eax, [ebp - 0x2038]
push 2
cmovae eax, dword [ebp - 0x2038]
push 0x100fc84c
push ecx
push eax
push ecx
push dword [ebp - 0x20dc]
lea ecx, [ebp - 0x211c]
call fcn.100b6510
lea eax, [ebp - 0x20d8]
push eax
lea eax, [ebp - 0x211c]
push eax
push dword [ebp - 0x20dc]
lea ecx, [ebp - 0x20f8]
call fcn.100b6330
lea eax, [ebp - 0x20f8]
push eax
lea ecx, [ebp - 0x2020]
call fcn.100b36c0
mov edx, dword [ebp - 0x20e4]
cmp edx, 0x10
jb 0x100896cf
mov ecx, dword [ebp - 0x20f8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100896c5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6af
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x2108]
cmp edx, 0x10
jb 0x10089709
mov ecx, dword [ebp - 0x211c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100896ff
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6af
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x20c4]
cmp edx, 0x10
jb 0x10089841
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10089837
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6af
jmp 0x10089837
mov ecx, dword [ebp - 0x2028]
mov eax, 0x7fffffff
sub eax, ecx
cmp eax, 2
jb 0x1008a6a5
cmp dword [ebp - 0x2024], 0x10
lea eax, [ebp - 0x2038]
push 2
cmovae eax, dword [ebp - 0x2038]
push 0x100fc84c
push ecx
push eax
push ecx
push dword [ebp - 0x20dc]
lea ecx, [ebp - 0x20f8]
call fcn.100b6510
lea eax, [ebp - 0x2020]
push eax
lea edx, [ebp - 0x20f8]
lea ecx, [ebp - 0x20d8]
call fcn.100b41e0
add esp, 4
lea ecx, [ebp - 0x2020]
push eax
call fcn.100b36c0
mov edx, dword [ebp - 0x20c4]
cmp edx, 0x10
jb 0x100897ec
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100897e2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6a0
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x20e4]
mov dword [ebp - 0x20c8], 0
mov dword [ebp - 0x20c4], 0xf
mov byte [ebp - 0x20d8], 0
cmp edx, 0x10
jb 0x10089841
mov ecx, dword [ebp - 0x20f8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10089837
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6a0
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov ebx, dword [ebp - 0x206c]
mov edx, 2
mov ecx, ebx
call fcn.10027fe0
mov esi, eax
movzx eax, word [esi + 8]
test al, 0x10
jne 0x1008988d
mov ecx, eax
and ecx, 0x202
cmp ecx, 0x202
jne 0x10089878
cmp byte [esi + 0xa], 1
jne 0x10089878
mov eax, dword [esi + 0x10]
jmp 0x10089885
test al, 1
jne 0x10089889
mov dl, 1
mov ecx, esi
call fcn.100222a0
test eax, eax
jne 0x1008988d
xor edi, edi
jmp 0x100898a3
mov eax, dword [esi + 0xc]
mov ecx, 0x4000
test word [esi + 8], cx
je 0x100898a1
mov edi, dword [esi]
add edi, eax
jmp 0x100898a3
mov edi, eax
test ebx, ebx
je 0x100898e5
mov ecx, dword [ebx]
mov edx, dword [ebx + 0x50]
test ecx, ecx
jne 0x100898b5
movzx eax, dl
jmp 0x100898cf
cmp byte [ecx + 0x40], 0
jne 0x100898ca
cmp edx, 0xc0a
je 0x100898ca
mov eax, dword [ecx + 0x38]
and eax, edx
jmp 0x100898cf
call fcn.100054c0
mov ecx, dword [ebx]
mov dword [ebx + 0x50], eax
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x100898e5
push eax
call dword [0x10102c44]
add esp, 4
mov ebx, dword [ebp - 0x20e0]
cmp byte [ebx], 0x76
jne 0x10089aa8
cmp byte [ebx + 1], 0x31
jne 0x10089aa8
cmp byte [ebx + 2], 0x30
je 0x1008990e
cmp byte [ebx + 2], 0x31
jne 0x10089aa8
lea edx, [ebp - 0x20e0]
mov dword [ebp - 0x20e0], 0
call fcn.10088c80
test eax, eax
je 0x1008a530
mov edx, dword [ebp - 0x20e0]
lea eax, [ebp - 0x2008]
push eax
call fcn.10088e10
add esp, 4
test eax, eax
je 0x1008a530
lea esi, [ebp - 0x2008]
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x10089951
push 0
push 0
push 0x100fc808
push 0x10105a3c
sub esi, ecx
call dword [sym.imp.bcrypt.dll_BCryptOpenAlgorithmProvider]
test eax, eax
jne 0x1008998b
push eax
push 0x20
push str.ChainingModeGCM
push str.ChainingMode
push dword [0x10105a3c]
call dword [sym.imp.bcrypt.dll_BCryptSetProperty]
push 0
push esi
lea eax, [ebp - 0x2008]
push eax
push 0
push 0
push 0x10105a00
push dword [0x10105a3c]
call dword [sym.imp.bcrypt.dll_BCryptGenerateSymmetricKey]
mov ecx, dword [0x10105a5c]
test ecx, ecx
jne 0x100899d1
push 0x400
call fcn.100c5213
mov ecx, eax
add esp, 4
mov dword [0x10105a5c], ecx
test ecx, ecx
je 0x1008a530
lea eax, [ebx + 3]
mov dword [ebp - 0x2070], 0
mov dword [ebp - 0x20b8], eax
xorps xmm0, xmm0
push 0
lea eax, [ebx - 0x10]
movlpd qword [ebp - 0x20b0], xmm0
add eax, edi
movlpd qword [ebp - 0x20a0], xmm0
mov dword [ebp - 0x20a8], eax
lea eax, [ebp - 0x2070]
push eax
push 0x400
push ecx
push 0
push 0
lea eax, [ebp - 0x20c0]
movlpd qword [ebp - 0x2098], xmm0
push eax
lea eax, [edi - 0x1f]
movlpd qword [ebp - 0x2090], xmm0
push eax
lea eax, [ebx + 0xf]
movlpd qword [ebp - 0x2088], xmm0
push eax
push dword [0x10105a00]
mov dword [ebp - 0x20c0], 0x40
mov dword [ebp - 0x20bc], 1
mov dword [ebp - 0x20b4], 0xc
mov dword [ebp - 0x20a4], 0x10
call dword [sym.imp.bcrypt.dll_BCryptDecrypt]
mov ecx, dword [0x10105a5c]
mov eax, dword [ebp - 0x2070]
push ecx
mov byte [eax + ecx], 0
lea ecx, [ebp - 0x2134]
call fcn.100b3740
push eax
lea ecx, [ebp - 0x2050]
call fcn.100b36c0
lea ecx, [ebp - 0x2134]
call fcn.100b3670
jmp 0x10089b9e
lea eax, [ebp - 0x2080]
mov dword [ebp - 0x2074], ebx
push eax
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x2078]
mov dword [ebp - 0x2078], edi
push eax
call dword [sym.imp.CRYPT32.dll_CryptUnprotectData]
test eax, eax
je 0x10089b05
mov esi, dword [ebp - 0x2080]
test esi, esi
je 0x10089af6
push esi
push dword [ebp - 0x207c]
lea eax, [ebp - 0x408]
push eax
call fcn.100c1ff0
add esp, 0xc
mov byte [ebp + esi - 0x408], 0
mov eax, 1
jmp 0x10089b07
xor eax, eax
test eax, eax
je 0x10089b9e
lea ecx, [ebp - 0x408]
mov dword [ebp - 0x20d8], 0
mov dword [ebp - 0x20c8], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x20c4], 0xf
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10089b36
sub ecx, edx
lea eax, [ebp - 0x408]
push ecx
push eax
lea ecx, [ebp - 0x20d8]
call fcn.100b3d90
lea eax, [ebp - 0x20d8]
push eax
lea ecx, [ebp - 0x2050]
call fcn.100b36c0
mov edx, dword [ebp - 0x20c4]
cmp edx, 0x10
jb 0x10089b9e
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10089b94
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6af
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov ecx, dword [ebp + 0x1c]
lea eax, [ebp + 8]
mov edx, dword [ebp + 8]
cmp ecx, 0x10
mov esi, dword [ebp + 0x18]
cmovae eax, edx
cmp esi, 1
jne 0x10089bbe
cmp byte [eax], 0x30
jne 0x10089bbe
mov al, 1
jmp 0x10089bc0
xor al, al
test al, al
je 0x1008a00c
mov ecx, dword [ebp - 0x2010]
mov eax, 0x7fffffff
sub eax, ecx
cmp eax, 1
jb 0x1008a6a5
cmp dword [ebp - 0x200c], 0x10
lea eax, [ebp - 0x2020]
push ecx
cmovae eax, dword [ebp - 0x2020]
push eax
push 1
push 0x100fc858
push ecx
push dword [ebp - 0x20dc]
lea ecx, [ebp - 0x20f8]
call fcn.100b6510
push 0x100fc854
lea ecx, [ebp - 0x20f8]
call fcn.100b3600
lea ecx, [ebp - 0x2194]
movups xmm1, xmmword [eax]
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov esi, dword [0x10103b6c]
mov eax, esi
mov edx, dword [0x10103b68]
movq qword [ebp - 0x2184], xmm0
cmp dword [ebp - 0x2180], 0x10
mov ebx, dword [ebp - 0x2184]
movd edi, xmm1
push ebx
movups xmmword [ebp - 0x2194], xmm1
cmovae ecx, edi
sub eax, edx
push ecx
cmp ebx, eax
ja 0x10089c9e
lea eax, [ebx + edx]
cmp esi, 0x10
mov dword [0x10103b68], eax
mov eax, 0x10103b58
cmovae eax, dword [0x10103b58]
lea esi, [eax + edx]
push esi
call fcn.100c1ff0
add esp, 0xc
mov byte [ebx + esi], 0
jmp 0x10089cbc
mov byte [ebp - 0x20fc], 0
mov ecx, 0x10103b58
push dword [ebp - 0x20fc]
push ebx
call fcn.100b4e20
mov edi, dword [ebp - 0x2194]
mov eax, dword [ebp - 0x2180]
cmp eax, 0x10
jb 0x10089cf2
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10089ce8
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6a0
push ecx
push edi
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x20e4]
cmp edx, 0x10
jb 0x10089d2c
mov ecx, dword [ebp - 0x20f8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10089d22
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6a0
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov ecx, dword [ebp - 0x2058]
mov eax, 0x7fffffff
sub eax, ecx
cmp eax, 1
jb 0x1008a6a5
cmp dword [ebp - 0x2054], 0x10
lea eax, [ebp - 0x2068]
push ecx
cmovae eax, dword [ebp - 0x2068]
push eax
push 1
push 0x100fc858
push ecx
push dword [ebp - 0x20dc]
lea ecx, [ebp - 0x20f8]
call fcn.100b6510
push 0x100fc854
lea ecx, [ebp - 0x20f8]
call fcn.100b3600
lea ecx, [ebp - 0x21ac]
movups xmm1, xmmword [eax]
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov esi, dword [0x10103b6c]
mov eax, esi
mov edx, dword [0x10103b68]
movq qword [ebp - 0x219c], xmm0
cmp dword [ebp - 0x2198], 0x10
mov ebx, dword [ebp - 0x219c]
movd edi, xmm1
push ebx
movups xmmword [ebp - 0x21ac], xmm1
cmovae ecx, edi
sub eax, edx
push ecx
cmp ebx, eax
ja 0x10089e02
lea eax, [ebx + edx]
cmp esi, 0x10
mov dword [0x10103b68], eax
mov eax, 0x10103b58
cmovae eax, dword [0x10103b58]
lea esi, [eax + edx]
push esi
call fcn.100c1ff0
add esp, 0xc
mov byte [ebx + esi], 0
jmp 0x10089e20
mov byte [ebp - 0x2100], 0
mov ecx, 0x10103b58
push dword [ebp - 0x2100]
push ebx
call fcn.100b4e20
mov edi, dword [ebp - 0x21ac]
mov eax, dword [ebp - 0x2198]
cmp eax, 0x10
jb 0x10089e56
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10089e4c
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6a0
push ecx
push edi
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x20e4]
cmp edx, 0x10
jb 0x10089e90
mov ecx, dword [ebp - 0x20f8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10089e86
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6a0
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov ecx, dword [ebp - 0x2040]
mov eax, 0x7fffffff
sub eax, ecx
cmp eax, 1
jb 0x1008a6a5
cmp dword [ebp - 0x203c], 0x10
lea eax, [ebp - 0x2050]
push ecx
cmovae eax, dword [ebp - 0x2050]
push eax
push 1
push 0x100fc858
push ecx
push dword [ebp - 0x20dc]
lea ecx, [ebp - 0x20f8]
call fcn.100b6510
push 0x100fc854
lea ecx, [ebp - 0x20f8]
call fcn.100b3600
lea ecx, [ebp - 0x21c4]
movups xmm1, xmmword [eax]
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov esi, dword [0x10103b6c]
mov eax, esi
mov edx, dword [0x10103b68]
movq qword [ebp - 0x21b4], xmm0
cmp dword [ebp - 0x21b0], 0x10
mov ebx, dword [ebp - 0x21b4]
movd edi, xmm1
push ebx
movups xmmword [ebp - 0x21c4], xmm1
cmovae ecx, edi
sub eax, edx
push ecx
cmp ebx, eax
ja 0x10089f66
lea eax, [ebx + edx]
cmp esi, 0x10
mov dword [0x10103b68], eax
mov eax, 0x10103b58
cmovae eax, dword [0x10103b58]
lea esi, [eax + edx]
push esi
call fcn.100c1ff0
add esp, 0xc
mov byte [ebx + esi], 0
jmp 0x10089f84
mov byte [ebp - 0x2104], 0
mov ecx, 0x10103b58
push dword [ebp - 0x2104]
push ebx
call fcn.100b4e20
mov edi, dword [ebp - 0x21c4]
mov eax, dword [ebp - 0x21b0]
cmp eax, 0x10
jb 0x10089fba
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10089fb0
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6a0
push ecx
push edi
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x20e4]
cmp edx, 0x10
jb 0x10089ff4
mov ecx, dword [ebp - 0x20f8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10089fea
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6a0
push edx
push ecx
call fcn.100bfa23
add esp, 8
push 0x100f3fa4
mov ecx, 0x10103b58
call fcn.100b3600
mov ecx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp + 8]
cmp ecx, 0x10
lea eax, [ebp + 8]
cmovae eax, edx
cmp esi, 1
jne 0x1008a023
cmp byte [eax], 0x31
jne 0x1008a023
mov al, 1
jmp 0x1008a025
xor al, al
test al, al
je 0x1008a50f
mov ecx, dword [0x10103b68]
mov eax, 0x7fffffff
sub eax, ecx
cmp eax, 3
jb 0x1008a6a5
cmp dword [0x10103b6c], 0x10
mov eax, 0x10103b58
push 3
cmovae eax, dword [0x10103b58]
push 0x100fc864
push ecx
push eax
push ecx
push dword [ebp - 0x20dc]
lea ecx, [ebp - 0x2134]
call fcn.100b6510
push 0x100fc860
lea ecx, [ebp - 0x2134]
call fcn.100b3600
lea edx, [ebp - 0x20d8]
lea ecx, [ebp - 0x20f8]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x20d8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x20c8], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp + 0x20]
push eax
call fcn.100b41e0
add esp, 4
mov ecx, eax
push 0x100fc860
call fcn.100b3600
lea edx, [ebp - 0x217c]
lea ecx, [ebp - 0x211c]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x217c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x216c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x2020]
push eax
call fcn.100b41e0
add esp, 4
mov ecx, eax
push 0x100fc860
call fcn.100b3600
lea edx, [ebp - 0x2164]
lea ecx, [ebp - 0x21f4]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2164], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x2154], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x2068]
push eax
call fcn.100b41e0
add esp, 4
mov ecx, eax
push 0x100fc860
call fcn.100b3600
lea edx, [ebp - 0x214c]
lea ecx, [ebp - 0x21dc]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x214c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x213c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x2050]
push eax
call fcn.100b41e0
add esp, 4
mov ecx, eax
push 0x100fc85c
call fcn.100b3600
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x220c], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov ecx, 0x10103b58
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x220c]
push eax
movq qword [ebp - 0x21fc], xmm0
call fcn.100b36c0
mov edx, dword [ebp - 0x21f8]
cmp edx, 0x10
jb 0x1008a22d
mov ecx, dword [ebp - 0x220c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008a223
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6a0
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x21c8]
cmp edx, 0x10
jb 0x1008a267
mov ecx, dword [ebp - 0x21dc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008a25d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6a0
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x2138]
mov dword [ebp - 0x21cc], 0
mov dword [ebp - 0x21c8], 0xf
mov byte [ebp - 0x21dc], 0
cmp edx, 0x10
jb 0x1008a2bc
mov ecx, dword [ebp - 0x214c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008a2b2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6a0
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x21e0]
mov dword [ebp - 0x213c], 0
mov dword [ebp - 0x2138], 0xf
mov byte [ebp - 0x214c], 0
cmp edx, 0x10
jb 0x1008a311
mov ecx, dword [ebp - 0x21f4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008a307
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6a0
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x2150]
mov dword [ebp - 0x21e4], 0
mov dword [ebp - 0x21e0], 0xf
mov byte [ebp - 0x21f4], 0
cmp edx, 0x10
jb 0x1008a366
mov ecx, dword [ebp - 0x2164]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008a35c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6a0
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x2108]
mov dword [ebp - 0x2154], 0
mov dword [ebp - 0x2150], 0xf
mov byte [ebp - 0x2164], 0
cmp edx, 0x10
jb 0x1008a3bb
mov ecx, dword [ebp - 0x211c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008a3b1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6a0
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x2168]
mov dword [ebp - 0x210c], 0
mov dword [ebp - 0x2108], 0xf
mov byte [ebp - 0x211c], 0
cmp edx, 0x10
jb 0x1008a410
mov ecx, dword [ebp - 0x217c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008a406
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6a0
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x20e4]
mov dword [ebp - 0x216c], 0
mov dword [ebp - 0x2168], 0xf
mov byte [ebp - 0x217c], 0
cmp edx, 0x10
jb 0x1008a465
mov ecx, dword [ebp - 0x20f8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008a45b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6a0
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x20c4]
mov dword [ebp - 0x20e8], 0
mov dword [ebp - 0x20e4], 0xf
mov byte [ebp - 0x20f8], 0
cmp edx, 0x10
jb 0x1008a4ba
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008a4b0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6a0
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x2120]
mov dword [ebp - 0x20c8], 0
mov dword [ebp - 0x20c4], 0xf
mov byte [ebp - 0x20d8], 0
cmp edx, 0x10
jb 0x1008a50f
mov ecx, dword [ebp - 0x2134]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008a505
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6a0
push edx
push ecx
call fcn.100bfa23
add esp, 8
inc dword [0x10105a54]
push dword [ebp - 0x206c]
call fcn.10027a20
add esp, 4
cmp eax, 0x64
je 0x10089101
xor esi, esi
jmp 0x1008a533
or esi, 0xffffffff
mov edx, dword [ebp - 0x2024]
cmp edx, 0x10
jb 0x1008a56d
mov ecx, dword [ebp - 0x2038]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008a563
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6af
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x203c]
cmp edx, 0x10
jb 0x1008a5a7
mov ecx, dword [ebp - 0x2050]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008a59d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6af
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x2054]
cmp edx, 0x10
jb 0x1008a5e1
mov ecx, dword [ebp - 0x2068]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008a5d7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6af
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x200c]
cmp edx, 0x10
jb 0x1008a61b
mov ecx, dword [ebp - 0x2020]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008a611
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6af
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp + 0x1c]
cmp edx, 0x10
jb 0x1008a64b
mov ecx, dword [ebp + 8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008a641
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6af
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp + 0x34]
mov dword [ebp + 0x18], 0
mov dword [ebp + 0x1c], 0xf
mov byte [ebp + 8], 0
cmp edx, 0x10
jb 0x1008a68d
mov ecx, dword [ebp + 0x20]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008a683
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008a6af
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100bf4c9
mov esp, ebp
pop ebp
ret
call fcn.100cc12d
call fcn.100833c0
call fcn.100b4020
call fcn.100cc12d
int3