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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x221c
call fcn.100dc3f0
mov eax, dword [0x100fc008]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x100fdc1c], 0x10
lea edx, [ebp - 0x2070]
push ebx
push esi
push edi
mov ecx, 0x100fdc08
mov dword [ebp - 0x2010], 0
cmovae ecx, dword [0x100fdc08]
push 0
push 6
mov dword [ebp - 0x200c], 0xf
mov byte [ebp - 0x2020], 0
mov dword [ebp - 0x2058], 0
mov dword [ebp - 0x2054], 0xf
mov byte [ebp - 0x2068], 0
mov dword [ebp - 0x2040], 0
mov dword [ebp - 0x203c], 0xf
mov byte [ebp - 0x2050], 0
mov dword [ebp - 0x2028], 0
mov dword [ebp - 0x2024], 0xf
mov byte [ebp - 0x2038], 0
call fcn.10081ad0
add esp, 8
test eax, eax
jne 0x10087fae
sub esp, 0x18
mov ecx, esp
push 0x100fddb8
call fcn.100ae9d0
lea ecx, [ebp - 0x218c]
call fcn.10083b80
add esp, 0x18
cmp dword [eax + 0x14], 0x10
jb 0x10086788
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.1005e5a0
mov edx, dword [ebp - 0x2178]
add esp, 0x14
test eax, eax
setne bl
cmp edx, 0x10
jb 0x100867e6
mov ecx, dword [ebp - 0x218c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100867dc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
test bl, bl
jne 0x10087fae
push dword [ebp - 0x206c]
call fcn.100277e0
add esp, 4
cmp eax, 0x64
jne 0x10087faa
nop word [eax + eax]
push 0
push dword [ebp - 0x206c]
call fcn.10028240
push 1
push dword [ebp - 0x206c]
mov esi, eax
call fcn.10028240
push 2
push dword [ebp - 0x206c]
mov edi, eax
call fcn.10028240
add esp, 0x18
mov edx, eax
mov dword [ebp - 0x20f4], edx
test esi, esi
je 0x10087faa
test edi, edi
je 0x10087faa
test edx, edx
je 0x10087faa
mov ecx, esi
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10086863
sub ecx, ebx
je 0x10087f93
mov ecx, edi
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10086877
sub ecx, ebx
je 0x10087f93
mov ecx, edx
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10086890
sub ecx, edx
je 0x10087f93
mov ecx, esi
mov dword [ebp - 0x20e0], 0
mov dword [ebp - 0x20dc], 0xf
mov byte [ebp - 0x20f0], al
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100868c0
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x20f0]
call fcn.100af160
lea eax, [ebp - 0x20f0]
push eax
lea ecx, [ebp - 0x2020]
call fcn.100ae910
mov edx, dword [ebp - 0x20dc]
cmp edx, 0x10
jb 0x10086922
mov ecx, dword [ebp - 0x20f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10086918
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088128
push edx
push ecx
call fcn.100baf94
add esp, 8
cmp dword [ebp - 0x200c], 0x10
lea eax, [ebp - 0x2020]
push dword [ebp - 0x2010]
cmovae eax, dword [ebp - 0x2020]
lea ecx, [ebp - 0x20f0]
push eax
mov dword [ebp - 0x20e0], 0
mov dword [ebp - 0x20dc], 0xf
mov byte [ebp - 0x20f0], 0
call fcn.100af160
lea eax, [ebp - 0x20f0]
push eax
lea ecx, [ebp - 0x2020]
call fcn.100ae910
mov edx, dword [ebp - 0x20dc]
cmp edx, 0x10
jb 0x100869af
mov ecx, dword [ebp - 0x20f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100869a5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088128
push edx
push ecx
call fcn.100baf94
add esp, 8
mov ecx, edi
mov dword [ebp - 0x20e0], 0
mov dword [ebp - 0x20dc], 0xf
mov byte [ebp - 0x20f0], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100869d0
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x20f0]
call fcn.100af160
lea eax, [ebp - 0x20f0]
push eax
lea ecx, [ebp - 0x2068]
call fcn.100ae910
mov edx, dword [ebp - 0x20dc]
cmp edx, 0x10
jb 0x10086a32
mov ecx, dword [ebp - 0x20f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10086a28
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088128
push edx
push ecx
call fcn.100baf94
add esp, 8
sub esp, 0x18
lea eax, [ebp - 0x2020]
mov ecx, esp
push eax
call fcn.100ae9d0
sub esp, 0x18
mov ecx, esp
push 2
push 0x100f736c
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
call fcn.100af160
call fcn.100852b0
add esp, 0x30
test eax, eax
jle 0x1008700d
sub esp, 0x18
lea eax, [ebp - 0x2020]
mov ecx, esp
push eax
call fcn.100ae9d0
sub esp, 0x18
mov ecx, esp
push 2
push 0x100f736c
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
call fcn.100af160
call fcn.100852b0
add esp, 0x30
mov dword [ebp - 0x20e0], 0
mov dword [ebp - 0x20dc], 0xf
mov byte [ebp - 0x20f0], 0
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 - 0x20f0]
push eax
call fcn.100af160
lea eax, [ebp - 0x20f0]
push eax
lea ecx, [ebp - 0x2038]
call fcn.100ae910
mov edx, dword [ebp - 0x20dc]
cmp edx, 0x10
jb 0x10086b48
mov ecx, dword [ebp - 0x20f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10086b3e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088128
push edx
push ecx
call fcn.100baf94
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 0x10086b60
sub esp, 0x18
lea eax, [ebp - 0x2020]
sub esi, ecx
mov ecx, esp
push eax
call fcn.100ae9d0
sub esp, 0x18
mov ecx, esp
push 2
push 0x100f736c
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
call fcn.100af160
call fcn.100852b0
add esp, 0x30
mov dword [ebp - 0x20e0], 0
mov dword [ebp - 0x20dc], 0xf
mov byte [ebp - 0x20f0], 0
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x2010]
cmp eax, ecx
jb 0x10088123
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 - 0x20f0]
push esi
push eax
call fcn.100af160
lea eax, [ebp - 0x20f0]
push eax
lea ecx, [ebp - 0x2020]
call fcn.100ae910
mov edx, dword [ebp - 0x20dc]
cmp edx, 0x10
jb 0x10086c46
mov ecx, dword [ebp - 0x20f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10086c3c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088128
push edx
push ecx
call fcn.100baf94
add esp, 8
sub esp, 0x18
lea eax, [ebp - 0x2020]
mov ecx, esp
push eax
call fcn.100ae9d0
sub esp, 0x18
mov ecx, esp
push 1
push 0x100f7370
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
call fcn.100af160
call fcn.100852b0
add esp, 0x30
test eax, eax
jle 0x10086ea9
sub esp, 0x18
lea eax, [ebp - 0x2020]
mov ecx, esp
push eax
call fcn.100ae9d0
sub esp, 0x18
mov ecx, esp
push 1
push 0x100f7370
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
call fcn.100af160
call fcn.100852b0
add esp, 0x30
mov dword [ebp - 0x20e0], 0
mov dword [ebp - 0x20dc], 0xf
mov byte [ebp - 0x20f0], 0
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 - 0x20f0]
push eax
call fcn.100af160
mov edi, dword [ebp - 0x2028]
lea ecx, [ebp - 0x20d8]
mov dword [ebp - 0x20c8], 0
mov dword [ebp - 0x20c4], 0xf
mov byte [ebp - 0x20d8], 0
lea eax, [edi + 2]
push eax
call fcn.100b1a80
cmp dword [ebp - 0x2024], 0x10
lea ecx, [ebp - 0x2038]
mov esi, dword [ebp - 0x20c4]
mov eax, esi
cmovae ecx, dword [ebp - 0x2038]
mov edx, dword [ebp - 0x20c8]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x10086d95
lea eax, [edi + edx]
cmp esi, 0x10
mov dword [ebp - 0x20c8], eax
lea eax, [ebp - 0x20d8]
cmovae eax, dword [ebp - 0x20d8]
lea esi, [eax + edx]
push esi
call fcn.100be470
add esp, 0xc
mov byte [edi + esi], 0
jmp 0x10086dae
mov byte [ebp - 0x2114], 0
lea ecx, [ebp - 0x20d8]
push dword [ebp - 0x2114]
push edi
call fcn.100b0560
push 0x100f736c
lea ecx, [ebp - 0x20d8]
call fcn.100ae850
lea eax, [ebp - 0x20f0]
push eax
lea edx, [ebp - 0x20d8]
lea ecx, [ebp - 0x2110]
call fcn.100af560
add esp, 4
lea ecx, [ebp - 0x2020]
push eax
call fcn.100ae910
mov edx, dword [ebp - 0x20fc]
cmp edx, 0x10
jb 0x10086e1f
mov ecx, dword [ebp - 0x2110]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10086e15
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x20c4]
mov dword [ebp - 0x2100], 0
mov dword [ebp - 0x20fc], 0xf
mov byte [ebp - 0x2110], 0
cmp edx, 0x10
jb 0x10086e74
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10086e6a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x20dc]
mov dword [ebp - 0x20c8], 0
mov dword [ebp - 0x20c4], 0xf
mov byte [ebp - 0x20d8], 0
cmp edx, 0x10
jb 0x1008700d
mov ecx, dword [ebp - 0x20f0]
jmp 0x10086fe4
mov edi, dword [ebp - 0x2028]
lea ecx, [ebp - 0x20d8]
mov dword [ebp - 0x20c8], 0
mov dword [ebp - 0x20c4], 0xf
mov byte [ebp - 0x20d8], 0
lea eax, [edi + 2]
push eax
call fcn.100b1a80
cmp dword [ebp - 0x2024], 0x10
lea ecx, [ebp - 0x2038]
mov esi, dword [ebp - 0x20c4]
mov eax, esi
cmovae ecx, dword [ebp - 0x2038]
mov edx, dword [ebp - 0x20c8]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x10086f2e
lea eax, [edx + edi]
cmp esi, 0x10
mov dword [ebp - 0x20c8], eax
lea eax, [ebp - 0x20d8]
cmovae eax, dword [ebp - 0x20d8]
lea esi, [eax + edx]
push esi
call fcn.100be470
add esp, 0xc
mov byte [edi + esi], 0
jmp 0x10086f47
mov byte [ebp - 0x2118], 0
lea ecx, [ebp - 0x20d8]
push dword [ebp - 0x2118]
push edi
call fcn.100b0560
push 0x100f736c
lea ecx, [ebp - 0x20d8]
call fcn.100ae850
lea eax, [ebp - 0x2020]
push eax
lea edx, [ebp - 0x20d8]
lea ecx, [ebp - 0x20f0]
call fcn.100af660
add esp, 4
lea ecx, [ebp - 0x2020]
push eax
call fcn.100ae910
mov edx, dword [ebp - 0x20dc]
cmp edx, 0x10
jb 0x10086fb8
mov ecx, dword [ebp - 0x20f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10086fae
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x20c4]
mov dword [ebp - 0x20e0], 0
mov dword [ebp - 0x20dc], 0xf
mov byte [ebp - 0x20f0], 0
cmp edx, 0x10
jb 0x1008700d
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087003
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov ebx, dword [ebp - 0x206c]
mov edx, 2
mov ecx, ebx
call fcn.10027db0
mov esi, eax
movzx eax, word [esi + 8]
test al, 0x10
jne 0x10087059
mov ecx, eax
and ecx, 0x202
cmp ecx, 0x202
jne 0x10087044
cmp byte [esi + 0xa], 1
jne 0x10087044
mov eax, dword [esi + 0x10]
jmp 0x10087051
test al, 1
jne 0x10087055
mov dl, 1
mov ecx, esi
call fcn.10021fd0
test eax, eax
jne 0x10087059
xor edi, edi
jmp 0x1008706f
mov eax, dword [esi + 0xc]
mov ecx, 0x4000
test word [esi + 8], cx
je 0x1008706d
mov edi, dword [esi]
add edi, eax
jmp 0x1008706f
mov edi, eax
test ebx, ebx
je 0x100870b1
mov ecx, dword [ebx]
mov edx, dword [ebx + 0x50]
test ecx, ecx
jne 0x10087081
movzx eax, dl
jmp 0x1008709b
cmp byte [ecx + 0x40], 0
jne 0x10087096
cmp edx, 0xc0a
je 0x10087096
mov eax, dword [ecx + 0x38]
and eax, edx
jmp 0x1008709b
call fcn.10005340
mov ecx, dword [ebx]
mov dword [ebx + 0x50], eax
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x100870b1
push eax
call dword [0x100fcb2c]
add esp, 4
mov ebx, dword [ebp - 0x20f4]
cmp byte [ebx], 0x76
jne 0x1008727c
mov al, byte [ebx + 1]
cmp al, 0x31
jne 0x1008727c
cmp byte [ebx + 2], 0x30
je 0x100870e2
cmp al, al
jne 0x1008727c
cmp byte [ebx + 2], al
jne 0x1008727c
lea edx, [ebp - 0x20f4]
mov dword [ebp - 0x20f4], 0
call fcn.100863a0
test eax, eax
je 0x10087fae
mov edx, dword [ebp - 0x20f4]
lea eax, [ebp - 0x2008]
push eax
call fcn.10086530
add esp, 4
test eax, eax
je 0x10087fae
lea esi, [ebp - 0x2008]
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x10087125
push 0
push 0
push 0x100f7328
push 0x100ff948
sub esi, ecx
call dword [sym.imp.bcrypt.dll_BCryptOpenAlgorithmProvider]
test eax, eax
jne 0x1008715f
push eax
push 0x20
push str.ChainingModeGCM
push str.ChainingMode
push dword [0x100ff948]
call dword [sym.imp.bcrypt.dll_BCryptSetProperty]
push 0
push esi
lea eax, [ebp - 0x2008]
push eax
push 0
push 0
push 0x100ff910
push dword [0x100ff948]
call dword [sym.imp.bcrypt.dll_BCryptGenerateSymmetricKey]
mov ecx, dword [0x100ff968]
test ecx, ecx
jne 0x100871a5
push 0x400
call fcn.100c13f3
mov ecx, eax
add esp, 4
mov dword [0x100ff968], ecx
test ecx, ecx
je 0x10087fae
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 [0x100ff910]
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 [0x100ff968]
mov eax, dword [ebp - 0x2070]
push ecx
mov byte [eax + ecx], 0
lea ecx, [ebp - 0x2174]
call fcn.100ae990
push eax
lea ecx, [ebp - 0x2050]
call fcn.100ae910
lea ecx, [ebp - 0x2174]
call fcn.100ae8c0
jmp 0x1008736f
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 0x100872d9
mov esi, dword [ebp - 0x2080]
test esi, esi
je 0x100872ca
push esi
push dword [ebp - 0x207c]
lea eax, [ebp - 0x408]
push eax
call fcn.100bda90
add esp, 0xc
mov byte [ebp + esi - 0x408], 0
mov eax, 1
jmp 0x100872db
xor eax, eax
test eax, eax
je 0x1008736f
lea ecx, [ebp - 0x408]
mov dword [ebp - 0x20e0], 0
mov dword [ebp - 0x20dc], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x20f0], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10087307
sub ecx, edx
lea eax, [ebp - 0x408]
push ecx
push eax
lea ecx, [ebp - 0x20f0]
call fcn.100af160
lea eax, [ebp - 0x20f0]
push eax
lea ecx, [ebp - 0x2050]
call fcn.100ae910
mov edx, dword [ebp - 0x20dc]
cmp edx, 0x10
jb 0x1008736f
mov ecx, dword [ebp - 0x20f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087365
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088128
push edx
push ecx
call fcn.100baf94
add esp, 8
cmp dword [ebp + 0x1c], 0x10
lea eax, [ebp + 8]
cmovae eax, dword [ebp + 8]
cmp dword [ebp + 0x18], 1
jne 0x10087389
cmp byte [eax], 0x30
jne 0x10087389
mov al, 1
jmp 0x1008738b
xor al, al
test al, al
je 0x10087a19
mov eax, dword [0x100fda50]
lea ecx, [ebp - 0x20d8]
inc eax
mov dword [ebp - 0x20c8], 0
push eax
mov dword [ebp - 0x20c4], 0xf
mov byte [ebp - 0x20d8], 0
call fcn.100b1a80
cmp dword [0x100fda54], 0x10
mov ecx, 0x100fda40
mov esi, dword [ebp - 0x20c4]
mov eax, esi
cmovae ecx, dword [0x100fda40]
mov edi, dword [0x100fda50]
mov edx, dword [ebp - 0x20c8]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x1008741a
lea eax, [edx + edi]
cmp esi, 0x10
mov dword [ebp - 0x20c8], eax
lea eax, [ebp - 0x20d8]
cmovae eax, dword [ebp - 0x20d8]
lea esi, [eax + edx]
push esi
call fcn.100be470
add esp, 0xc
mov byte [edi + esi], 0
jmp 0x10087433
mov byte [ebp - 0x211c], 0
lea ecx, [ebp - 0x20d8]
push dword [ebp - 0x211c]
push edi
call fcn.100b0560
push 0x100f7378
lea ecx, [ebp - 0x20d8]
call fcn.100ae850
lea eax, [ebp - 0x2020]
push eax
lea edx, [ebp - 0x20d8]
lea ecx, [ebp - 0x20f0]
call fcn.100af660
add esp, 4
mov ecx, eax
push 0x100f7374
call fcn.100ae850
mov ecx, 0x100fda40
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x21ec], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x21ec]
push eax
movq qword [ebp - 0x21dc], xmm0
call fcn.100ae910
mov edx, dword [ebp - 0x21d8]
cmp edx, 0x10
jb 0x100874dd
mov ecx, dword [ebp - 0x21ec]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100874d3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x20dc]
cmp edx, 0x10
jb 0x10087517
mov ecx, dword [ebp - 0x20f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008750d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x20c4]
mov dword [ebp - 0x20e0], 0
mov dword [ebp - 0x20dc], 0xf
mov byte [ebp - 0x20f0], 0
cmp edx, 0x10
jb 0x1008756c
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087562
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov eax, dword [0x100fda50]
lea ecx, [ebp - 0x20d8]
inc eax
mov dword [ebp - 0x20c8], 0
push eax
mov dword [ebp - 0x20c4], 0xf
mov byte [ebp - 0x20d8], 0
call fcn.100b1a80
cmp dword [0x100fda54], 0x10
mov ecx, 0x100fda40
mov esi, dword [ebp - 0x20c4]
mov eax, esi
cmovae ecx, dword [0x100fda40]
mov edi, dword [0x100fda50]
mov edx, dword [ebp - 0x20c8]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x100875f3
lea eax, [edx + edi]
cmp esi, 0x10
mov dword [ebp - 0x20c8], eax
lea eax, [ebp - 0x20d8]
cmovae eax, dword [ebp - 0x20d8]
lea esi, [eax + edx]
push esi
call fcn.100be470
add esp, 0xc
mov byte [edi + esi], 0
jmp 0x1008760c
mov byte [ebp - 0x2120], 0
lea ecx, [ebp - 0x20d8]
push dword [ebp - 0x2120]
push edi
call fcn.100b0560
push 0x100f7378
lea ecx, [ebp - 0x20d8]
call fcn.100ae850
lea eax, [ebp - 0x2068]
push eax
lea edx, [ebp - 0x20d8]
lea ecx, [ebp - 0x20f0]
call fcn.100af660
add esp, 4
mov ecx, eax
push 0x100f7374
call fcn.100ae850
mov ecx, 0x100fda40
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2204], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x2204]
push eax
movq qword [ebp - 0x21f4], xmm0
call fcn.100ae910
mov edx, dword [ebp - 0x21f0]
cmp edx, 0x10
jb 0x100876b6
mov ecx, dword [ebp - 0x2204]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100876ac
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x20dc]
cmp edx, 0x10
jb 0x100876f0
mov ecx, dword [ebp - 0x20f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100876e6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x20c4]
mov dword [ebp - 0x20e0], 0
mov dword [ebp - 0x20dc], 0xf
mov byte [ebp - 0x20f0], 0
cmp edx, 0x10
jb 0x10087745
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008773b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov eax, dword [0x100fda50]
lea ecx, [ebp - 0x20d8]
inc eax
mov dword [ebp - 0x20c8], 0
push eax
mov dword [ebp - 0x20c4], 0xf
mov byte [ebp - 0x20d8], 0
call fcn.100b1a80
cmp dword [0x100fda54], 0x10
mov ecx, 0x100fda40
mov esi, dword [ebp - 0x20c4]
mov eax, esi
cmovae ecx, dword [0x100fda40]
mov edi, dword [0x100fda50]
mov edx, dword [ebp - 0x20c8]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x100877cc
lea eax, [edx + edi]
cmp esi, 0x10
mov dword [ebp - 0x20c8], eax
lea eax, [ebp - 0x20d8]
cmovae eax, dword [ebp - 0x20d8]
lea esi, [eax + edx]
push esi
call fcn.100be470
add esp, 0xc
mov byte [edi + esi], 0
jmp 0x100877e5
mov byte [ebp - 0x2124], 0
lea ecx, [ebp - 0x20d8]
push dword [ebp - 0x2124]
push edi
call fcn.100b0560
push 0x100f7378
lea ecx, [ebp - 0x20d8]
call fcn.100ae850
lea eax, [ebp - 0x2050]
push eax
lea edx, [ebp - 0x20d8]
lea ecx, [ebp - 0x20f0]
call fcn.100af660
add esp, 4
mov ecx, eax
push 0x100f7374
call fcn.100ae850
mov ecx, 0x100fda40
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x221c], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x221c]
push eax
movq qword [ebp - 0x220c], xmm0
call fcn.100ae910
mov edx, dword [ebp - 0x2208]
cmp edx, 0x10
jb 0x1008788f
mov ecx, dword [ebp - 0x221c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087885
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x20dc]
cmp edx, 0x10
jb 0x100878c9
mov ecx, dword [ebp - 0x20f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100878bf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x20c4]
mov dword [ebp - 0x20e0], 0
mov dword [ebp - 0x20dc], 0xf
mov byte [ebp - 0x20f0], 0
cmp edx, 0x10
jb 0x1008791e
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087914
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov eax, dword [0x100fda50]
lea ecx, [ebp - 0x20d8]
inc eax
mov dword [ebp - 0x20c8], 0
push eax
mov dword [ebp - 0x20c4], 0xf
mov byte [ebp - 0x20d8], 0
call fcn.100b1a80
cmp dword [0x100fda54], 0x10
mov ecx, 0x100fda40
mov esi, dword [ebp - 0x20c4]
mov eax, esi
cmovae ecx, dword [0x100fda40]
mov edi, dword [0x100fda50]
mov edx, dword [ebp - 0x20c8]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x100879a5
lea eax, [edx + edi]
cmp esi, 0x10
mov dword [ebp - 0x20c8], eax
lea eax, [ebp - 0x20d8]
cmovae eax, dword [ebp - 0x20d8]
lea esi, [eax + edx]
push esi
call fcn.100be470
add esp, 0xc
mov byte [esi + edi], 0
jmp 0x100879be
mov byte [ebp - 0x2128], 0
lea ecx, [ebp - 0x20d8]
push dword [ebp - 0x2128]
push edi
call fcn.100b0560
push 0x100eec84
lea ecx, [ebp - 0x20d8]
call fcn.100ae850
lea eax, [ebp - 0x20d8]
mov ecx, 0x100fda40
push eax
call fcn.100ae910
mov edx, dword [ebp - 0x20c4]
cmp edx, 0x10
jb 0x10087a19
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087a0f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
cmp dword [ebp + 0x1c], 0x10
lea eax, [ebp + 8]
cmovae eax, dword [ebp + 8]
cmp dword [ebp + 0x18], 1
jne 0x10087a33
cmp byte [eax], 0x31
jne 0x10087a33
mov al, 1
jmp 0x10087a35
xor al, al
test al, al
je 0x10087f8d
mov eax, dword [0x100fda50]
lea ecx, [ebp - 0x20d8]
add eax, 3
mov dword [ebp - 0x20c8], 0
push eax
mov dword [ebp - 0x20c4], 0xf
mov byte [ebp - 0x20d8], 0
call fcn.100b1a80
cmp dword [0x100fda54], 0x10
mov ecx, 0x100fda40
mov esi, dword [ebp - 0x20c4]
mov eax, esi
cmovae ecx, dword [0x100fda40]
mov edi, dword [0x100fda50]
mov edx, dword [ebp - 0x20c8]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x10087ac6
lea eax, [edi + edx]
cmp esi, 0x10
mov dword [ebp - 0x20c8], eax
lea eax, [ebp - 0x20d8]
cmovae eax, dword [ebp - 0x20d8]
lea esi, [eax + edx]
push esi
call fcn.100be470
add esp, 0xc
mov byte [esi + edi], 0
jmp 0x10087adf
mov byte [ebp - 0x212c], 0
lea ecx, [ebp - 0x20d8]
push dword [ebp - 0x212c]
push edi
call fcn.100b0560
push 0x100f7384
lea ecx, [ebp - 0x20d8]
call fcn.100ae850
push 0x100f7380
lea ecx, [ebp - 0x20d8]
call fcn.100ae850
lea edx, [ebp - 0x20f0]
lea ecx, [ebp - 0x2174]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x20f0], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x20e0], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp + 0x20]
push eax
call fcn.100af660
add esp, 4
mov ecx, eax
push 0x100f7380
call fcn.100ae850
lea edx, [ebp - 0x2110]
lea ecx, [ebp - 0x21d4]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2110], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x2100], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x2020]
push eax
call fcn.100af660
add esp, 4
mov ecx, eax
push 0x100f7380
call fcn.100ae850
lea edx, [ebp - 0x215c]
lea ecx, [ebp - 0x21bc]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x215c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x214c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x2068]
push eax
call fcn.100af660
add esp, 4
mov ecx, eax
push 0x100f7380
call fcn.100ae850
lea edx, [ebp - 0x2144]
lea ecx, [ebp - 0x21a4]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2144], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x2134], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x2050]
push eax
call fcn.100af660
add esp, 4
mov ecx, eax
push 0x100f737c
call fcn.100ae850
mov ecx, 0x100fda40
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x218c], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x218c]
push eax
movq qword [ebp - 0x217c], xmm0
call fcn.100ae910
mov edx, dword [ebp - 0x2178]
cmp edx, 0x10
jb 0x10087cab
mov ecx, dword [ebp - 0x218c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087ca1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x2190]
cmp edx, 0x10
jb 0x10087ce5
mov ecx, dword [ebp - 0x21a4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087cdb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x2130]
mov dword [ebp - 0x2194], 0
mov dword [ebp - 0x2190], 0xf
mov byte [ebp - 0x21a4], 0
cmp edx, 0x10
jb 0x10087d3a
mov ecx, dword [ebp - 0x2144]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087d30
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x21a8]
mov dword [ebp - 0x2134], 0
mov dword [ebp - 0x2130], 0xf
mov byte [ebp - 0x2144], 0
cmp edx, 0x10
jb 0x10087d8f
mov ecx, dword [ebp - 0x21bc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087d85
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x2148]
mov dword [ebp - 0x21ac], 0
mov dword [ebp - 0x21a8], 0xf
mov byte [ebp - 0x21bc], 0
cmp edx, 0x10
jb 0x10087de4
mov ecx, dword [ebp - 0x215c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087dda
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x21c0]
mov dword [ebp - 0x214c], 0
mov dword [ebp - 0x2148], 0xf
mov byte [ebp - 0x215c], 0
cmp edx, 0x10
jb 0x10087e39
mov ecx, dword [ebp - 0x21d4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087e2f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x20fc]
mov dword [ebp - 0x21c4], 0
mov dword [ebp - 0x21c0], 0xf
mov byte [ebp - 0x21d4], 0
cmp edx, 0x10
jb 0x10087e8e
mov ecx, dword [ebp - 0x2110]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087e84
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x2160]
mov dword [ebp - 0x2100], 0
mov dword [ebp - 0x20fc], 0xf
mov byte [ebp - 0x2110], 0
cmp edx, 0x10
jb 0x10087ee3
mov ecx, dword [ebp - 0x2174]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087ed9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x20dc]
mov dword [ebp - 0x2164], 0
mov dword [ebp - 0x2160], 0xf
mov byte [ebp - 0x2174], 0
cmp edx, 0x10
jb 0x10087f38
mov ecx, dword [ebp - 0x20f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087f2e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x20c4]
mov dword [ebp - 0x20e0], 0
mov dword [ebp - 0x20dc], 0xf
mov byte [ebp - 0x20f0], 0
cmp edx, 0x10
jb 0x10087f8d
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087f83
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008811e
push edx
push ecx
call fcn.100baf94
add esp, 8
inc dword [0x100ff960]
push dword [ebp - 0x206c]
call fcn.100277e0
add esp, 4
cmp eax, 0x64
je 0x10086810
xor esi, esi
jmp 0x10087fb1
or esi, 0xffffffff
mov edx, dword [ebp - 0x2024]
cmp edx, 0x10
jb 0x10087feb
mov ecx, dword [ebp - 0x2038]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087fe1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088128
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x203c]
cmp edx, 0x10
jb 0x10088025
mov ecx, dword [ebp - 0x2050]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008801b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088128
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x2054]
cmp edx, 0x10
jb 0x1008805f
mov ecx, dword [ebp - 0x2068]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088055
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088128
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x200c]
cmp edx, 0x10
jb 0x10088099
mov ecx, dword [ebp - 0x2020]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008808f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088128
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp + 0x1c]
cmp edx, 0x10
jb 0x100880c9
mov ecx, dword [ebp + 8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100880bf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088128
push edx
push ecx
call fcn.100baf94
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 0x1008810b
mov ecx, dword [ebp + 0x20]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088101
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088128
push edx
push ecx
call fcn.100baf94
add esp, 8
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100baa39
mov esp, ebp
pop ebp
ret
call fcn.100c79a0
call fcn.100af3a0
call fcn.100c79a0
int3