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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2224
call fcn.100e0230
mov eax, dword [0x10100008]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x10101c4c], 0x10
lea edx, [ebp - 0x2070]
push ebx
push esi
push edi
mov ecx, 0x10101c38
mov dword [ebp - 0x2010], 0
cmovae ecx, dword [0x10101c38]
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.10081c30
add esp, 8
test eax, eax
jne 0x100889aa
sub esp, 0x18
mov ecx, esp
push 0x10101dd0
call fcn.100b2820
lea ecx, [ebp - 0x2194]
call fcn.10084620
add esp, 0x18
cmp dword [eax + 0x14], 0x10
jb 0x10087288
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.1005e700
mov edx, dword [ebp - 0x2180]
add esp, 0x14
test eax, eax
setne bl
cmp edx, 0x10
jb 0x100872e6
mov ecx, dword [ebp - 0x2194]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100872dc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push edx
push ecx
call fcn.100bede4
add esp, 8
test bl, bl
jne 0x100889aa
push dword [ebp - 0x206c]
call fcn.10027930
add esp, 4
cmp eax, 0x64
jne 0x100889a6
nop word [eax + eax]
push 0
push dword [ebp - 0x206c]
call fcn.10028390
push 1
push dword [ebp - 0x206c]
mov esi, eax
call fcn.10028390
push 2
push dword [ebp - 0x206c]
mov edi, eax
call fcn.10028390
add esp, 0x18
mov edx, eax
mov dword [ebp - 0x20f4], edx
test esi, esi
je 0x100889a6
test edi, edi
je 0x100889a6
test edx, edx
je 0x100889a6
mov ecx, esi
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10087363
sub ecx, ebx
je 0x1008898f
mov ecx, edi
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10087377
sub ecx, ebx
je 0x1008898f
mov ecx, edx
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10087390
sub ecx, edx
je 0x1008898f
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 0x100873c0
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x20f0]
call fcn.100b2fb0
lea eax, [ebp - 0x20f0]
push eax
lea ecx, [ebp - 0x2020]
call fcn.100b2760
mov edx, dword [ebp - 0x20dc]
cmp edx, 0x10
jb 0x10087422
mov ecx, dword [ebp - 0x20f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087418
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b24
push edx
push ecx
call fcn.100bede4
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.100b2fb0
lea eax, [ebp - 0x20f0]
push eax
lea ecx, [ebp - 0x2020]
call fcn.100b2760
mov edx, dword [ebp - 0x20dc]
cmp edx, 0x10
jb 0x100874af
mov ecx, dword [ebp - 0x20f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100874a5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b24
push edx
push ecx
call fcn.100bede4
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 0x100874d0
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x20f0]
call fcn.100b2fb0
lea eax, [ebp - 0x20f0]
push eax
lea ecx, [ebp - 0x2068]
call fcn.100b2760
mov edx, dword [ebp - 0x20dc]
cmp edx, 0x10
jb 0x10087532
mov ecx, dword [ebp - 0x20f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087528
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b24
push edx
push ecx
call fcn.100bede4
add esp, 8
sub esp, 0x18
lea eax, [ebp - 0x2020]
mov ecx, esp
push eax
call fcn.100b2820
sub esp, 0x18
mov ecx, esp
push 2
push 0x100fb3b4
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
call fcn.100b2fb0
call fcn.10085d50
add esp, 0x30
test eax, eax
jle 0x10087b0d
sub esp, 0x18
lea eax, [ebp - 0x2020]
mov ecx, esp
push eax
call fcn.100b2820
sub esp, 0x18
mov ecx, esp
push 2
push 0x100fb3b4
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
call fcn.100b2fb0
call fcn.10085d50
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.100b2fb0
lea eax, [ebp - 0x20f0]
push eax
lea ecx, [ebp - 0x2038]
call fcn.100b2760
mov edx, dword [ebp - 0x20dc]
cmp edx, 0x10
jb 0x10087648
mov ecx, dword [ebp - 0x20f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008763e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b24
push edx
push ecx
call fcn.100bede4
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 0x10087660
sub esp, 0x18
lea eax, [ebp - 0x2020]
sub esi, ecx
mov ecx, esp
push eax
call fcn.100b2820
sub esp, 0x18
mov ecx, esp
push 2
push 0x100fb3b4
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
call fcn.100b2fb0
call fcn.10085d50
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 0x10088b1f
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.100b2fb0
lea eax, [ebp - 0x20f0]
push eax
lea ecx, [ebp - 0x2020]
call fcn.100b2760
mov edx, dword [ebp - 0x20dc]
cmp edx, 0x10
jb 0x10087746
mov ecx, dword [ebp - 0x20f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008773c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b24
push edx
push ecx
call fcn.100bede4
add esp, 8
sub esp, 0x18
lea eax, [ebp - 0x2020]
mov ecx, esp
push eax
call fcn.100b2820
sub esp, 0x18
mov ecx, esp
push 1
push 0x100fb3b8
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
call fcn.100b2fb0
call fcn.10085d50
add esp, 0x30
test eax, eax
jle 0x100879a9
sub esp, 0x18
lea eax, [ebp - 0x2020]
mov ecx, esp
push eax
call fcn.100b2820
sub esp, 0x18
mov ecx, esp
push 1
push 0x100fb3b8
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
call fcn.100b2fb0
call fcn.10085d50
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.100b2fb0
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.100b5970
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 0x10087895
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.100c22c0
add esp, 0xc
mov byte [edi + esi], 0
jmp 0x100878ae
mov byte [ebp - 0x2114], 0
lea ecx, [ebp - 0x20d8]
push dword [ebp - 0x2114]
push edi
call fcn.100b4450
push 0x100fb3b4
lea ecx, [ebp - 0x20d8]
call fcn.100b26a0
lea eax, [ebp - 0x20f0]
push eax
lea edx, [ebp - 0x20d8]
lea ecx, [ebp - 0x2110]
call fcn.100b3450
add esp, 4
lea ecx, [ebp - 0x2020]
push eax
call fcn.100b2760
mov edx, dword [ebp - 0x20fc]
cmp edx, 0x10
jb 0x1008791f
mov ecx, dword [ebp - 0x2110]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087915
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push edx
push ecx
call fcn.100bede4
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 0x10087974
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008796a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push edx
push ecx
call fcn.100bede4
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 0x10087b0d
mov ecx, dword [ebp - 0x20f0]
jmp 0x10087ae4
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.100b5970
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 0x10087a2e
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.100c22c0
add esp, 0xc
mov byte [edi + esi], 0
jmp 0x10087a47
mov byte [ebp - 0x2118], 0
lea ecx, [ebp - 0x20d8]
push dword [ebp - 0x2118]
push edi
call fcn.100b4450
push 0x100fb3b4
lea ecx, [ebp - 0x20d8]
call fcn.100b26a0
lea eax, [ebp - 0x2020]
push eax
lea edx, [ebp - 0x20d8]
lea ecx, [ebp - 0x20f0]
call fcn.100b3550
add esp, 4
lea ecx, [ebp - 0x2020]
push eax
call fcn.100b2760
mov edx, dword [ebp - 0x20dc]
cmp edx, 0x10
jb 0x10087ab8
mov ecx, dword [ebp - 0x20f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087aae
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push edx
push ecx
call fcn.100bede4
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 0x10087b0d
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087b03
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push edx
push ecx
call fcn.100bede4
add esp, 8
mov ebx, dword [ebp - 0x206c]
mov edx, 2
mov ecx, ebx
call fcn.10027f00
mov esi, eax
movzx eax, word [esi + 8]
test al, 0x10
jne 0x10087b59
mov ecx, eax
and ecx, 0x202
cmp ecx, 0x202
jne 0x10087b44
cmp byte [esi + 0xa], 1
jne 0x10087b44
mov eax, dword [esi + 0x10]
jmp 0x10087b51
test al, 1
jne 0x10087b55
mov dl, 1
mov ecx, esi
call fcn.10022120
test eax, eax
jne 0x10087b59
xor edi, edi
jmp 0x10087b6f
mov eax, dword [esi + 0xc]
mov ecx, 0x4000
test word [esi + 8], cx
je 0x10087b6d
mov edi, dword [esi]
add edi, eax
jmp 0x10087b6f
mov edi, eax
test ebx, ebx
je 0x10087bb1
mov ecx, dword [ebx]
mov edx, dword [ebx + 0x50]
test ecx, ecx
jne 0x10087b81
movzx eax, dl
jmp 0x10087b9b
cmp byte [ecx + 0x40], 0
jne 0x10087b96
cmp edx, 0xc0a
je 0x10087b96
mov eax, dword [ecx + 0x38]
and eax, edx
jmp 0x10087b9b
call fcn.10005460
mov ecx, dword [ebx]
mov dword [ebx + 0x50], eax
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x10087bb1
push eax
call dword [0x10100b2c]
add esp, 4
mov ebx, dword [ebp - 0x20f4]
cmp byte [ebx], 0x76
jne 0x10087d7c
mov al, byte [ebx + 1]
cmp al, 0x31
jne 0x10087d7c
cmp byte [ebx + 2], 0x30
je 0x10087be2
cmp al, al
jne 0x10087d7c
cmp byte [ebx + 2], al
jne 0x10087d7c
lea edx, [ebp - 0x20f4]
mov dword [ebp - 0x20f4], 0
call fcn.10086ea0
test eax, eax
je 0x100889aa
mov edx, dword [ebp - 0x20f4]
lea eax, [ebp - 0x2008]
push eax
call fcn.10087030
add esp, 4
test eax, eax
je 0x100889aa
lea esi, [ebp - 0x2008]
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x10087c25
push 0
push 0
push 0x100fb370
push 0x10103990
sub esi, ecx
call dword [sym.imp.bcrypt.dll_BCryptOpenAlgorithmProvider]
test eax, eax
jne 0x10087c5f
push eax
push 0x20
push str.ChainingModeGCM
push str.ChainingMode
push dword [0x10103990]
call dword [sym.imp.bcrypt.dll_BCryptSetProperty]
push 0
push esi
lea eax, [ebp - 0x2008]
push eax
push 0
push 0
push 0x10103954
push dword [0x10103990]
call dword [sym.imp.bcrypt.dll_BCryptGenerateSymmetricKey]
mov ecx, dword [0x101039b0]
test ecx, ecx
jne 0x10087ca5
push 0x400
call fcn.100c5243
mov ecx, eax
add esp, 4
mov dword [0x101039b0], ecx
test ecx, ecx
je 0x100889aa
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 [0x10103954]
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 [0x101039b0]
mov eax, dword [ebp - 0x2070]
push ecx
mov byte [eax + ecx], 0
lea ecx, [ebp - 0x217c]
call fcn.100b27e0
push eax
lea ecx, [ebp - 0x2050]
call fcn.100b2760
lea ecx, [ebp - 0x217c]
call fcn.100b2710
jmp 0x10087e6f
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 0x10087dd9
mov esi, dword [ebp - 0x2080]
test esi, esi
je 0x10087dca
push esi
push dword [ebp - 0x207c]
lea eax, [ebp - 0x408]
push eax
call fcn.100c18e0
add esp, 0xc
mov byte [ebp + esi - 0x408], 0
mov eax, 1
jmp 0x10087ddb
xor eax, eax
test eax, eax
je 0x10087e6f
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 0x10087e07
sub ecx, edx
lea eax, [ebp - 0x408]
push ecx
push eax
lea ecx, [ebp - 0x20f0]
call fcn.100b2fb0
lea eax, [ebp - 0x20f0]
push eax
lea ecx, [ebp - 0x2050]
call fcn.100b2760
mov edx, dword [ebp - 0x20dc]
cmp edx, 0x10
jb 0x10087e6f
mov ecx, dword [ebp - 0x20f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087e65
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b24
push edx
push ecx
call fcn.100bede4
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 0x10087e8f
cmp byte [eax], 0x30
jne 0x10087e8f
mov al, 1
jmp 0x10087e91
xor al, al
test al, al
je 0x10088418
mov edi, dword [ebp - 0x2010]
lea ecx, [ebp - 0x20d8]
mov dword [ebp - 0x20c8], 0
mov dword [ebp - 0x20c4], 0xf
mov byte [ebp - 0x20d8], 0
lea eax, [edi + 1]
push eax
call fcn.100b5970
push 0x100fb3c0
lea ecx, [ebp - 0x20d8]
call fcn.100b26a0
cmp dword [ebp - 0x200c], 0x10
lea ecx, [ebp - 0x2020]
mov esi, dword [ebp - 0x20c4]
mov eax, esi
cmovae ecx, dword [ebp - 0x2020]
mov edx, dword [ebp - 0x20c8]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x10087f2e
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.100c22c0
add esp, 0xc
mov byte [esi + edi], 0
jmp 0x10087f47
mov byte [ebp - 0x211c], 0
lea ecx, [ebp - 0x20d8]
push dword [ebp - 0x211c]
push edi
call fcn.100b4450
push 0x100fb3bc
lea ecx, [ebp - 0x20d8]
call fcn.100b26a0
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 [0x10101a54]
mov eax, esi
mov edx, dword [0x10101a50]
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 0x10087fd8
lea eax, [ebx + edx]
cmp esi, 0x10
mov dword [0x10101a50], eax
mov eax, 0x10101a40
cmovae eax, dword [0x10101a40]
lea esi, [eax + edx]
push esi
call fcn.100c22c0
add esp, 0xc
mov byte [ebx + esi], 0
jmp 0x10087ff6
mov byte [ebp - 0x2120], 0
mov ecx, 0x10101a40
push dword [ebp - 0x2120]
push ebx
call fcn.100b4450
mov edi, dword [ebp - 0x21ac]
mov eax, dword [ebp - 0x2198]
cmp eax, 0x10
jb 0x1008802c
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10088022
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push ecx
push edi
call fcn.100bede4
add esp, 8
mov edx, dword [ebp - 0x20c4]
cmp edx, 0x10
jb 0x10088066
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008805c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push edx
push ecx
call fcn.100bede4
add esp, 8
mov edi, dword [ebp - 0x2058]
lea ecx, [ebp - 0x20d8]
mov dword [ebp - 0x20c8], 0
mov dword [ebp - 0x20c4], 0xf
mov byte [ebp - 0x20d8], 0
lea eax, [edi + 1]
push eax
call fcn.100b5970
push 0x100fb3c0
lea ecx, [ebp - 0x20d8]
call fcn.100b26a0
cmp dword [ebp - 0x2054], 0x10
lea ecx, [ebp - 0x2068]
mov esi, dword [ebp - 0x20c4]
mov eax, esi
cmovae ecx, dword [ebp - 0x2068]
mov edx, dword [ebp - 0x20c8]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x100880fb
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.100c22c0
add esp, 0xc
mov byte [esi + edi], 0
jmp 0x10088114
mov byte [ebp - 0x2124], 0
lea ecx, [ebp - 0x20d8]
push dword [ebp - 0x2124]
push edi
call fcn.100b4450
push 0x100fb3bc
lea ecx, [ebp - 0x20d8]
call fcn.100b26a0
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 [0x10101a54]
mov eax, esi
mov edx, dword [0x10101a50]
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 0x100881a5
lea eax, [ebx + edx]
cmp esi, 0x10
mov dword [0x10101a50], eax
mov eax, 0x10101a40
cmovae eax, dword [0x10101a40]
lea esi, [eax + edx]
push esi
call fcn.100c22c0
add esp, 0xc
mov byte [esi + ebx], 0
jmp 0x100881c3
mov byte [ebp - 0x2128], 0
mov ecx, 0x10101a40
push dword [ebp - 0x2128]
push ebx
call fcn.100b4450
mov edi, dword [ebp - 0x21c4]
mov eax, dword [ebp - 0x21b0]
cmp eax, 0x10
jb 0x100881f9
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x100881ef
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push ecx
push edi
call fcn.100bede4
add esp, 8
mov edx, dword [ebp - 0x20c4]
cmp edx, 0x10
jb 0x10088233
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088229
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push edx
push ecx
call fcn.100bede4
add esp, 8
mov ebx, dword [ebp - 0x2040]
lea ecx, [ebp - 0x20d8]
mov dword [ebp - 0x20c8], 0
mov dword [ebp - 0x20c4], 0xf
mov byte [ebp - 0x20d8], 0
lea eax, [ebx + 1]
push eax
call fcn.100b5970
push 0x100fb3c0
lea ecx, [ebp - 0x20d8]
call fcn.100b26a0
cmp dword [ebp - 0x203c], 0x10
lea ecx, [ebp - 0x2050]
mov esi, dword [ebp - 0x20c4]
mov eax, esi
cmovae ecx, dword [ebp - 0x2050]
mov edx, dword [ebp - 0x20c8]
sub eax, edx
push ebx
push ecx
cmp ebx, eax
ja 0x100882c8
lea eax, [ebx + 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.100c22c0
add esp, 0xc
mov byte [ebx + esi], 0
jmp 0x100882e1
mov byte [ebp - 0x212c], 0
lea ecx, [ebp - 0x20d8]
push dword [ebp - 0x212c]
push ebx
call fcn.100b4450
push 0x100fb3bc
lea ecx, [ebp - 0x20d8]
call fcn.100b26a0
lea ecx, [ebp - 0x21dc]
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 [0x10101a54]
mov eax, esi
mov edx, dword [0x10101a50]
movq qword [ebp - 0x21cc], xmm0
cmp dword [ebp - 0x21c8], 0x10
mov ebx, dword [ebp - 0x21cc]
movd edi, xmm1
push ebx
movups xmmword [ebp - 0x21dc], xmm1
cmovae ecx, edi
sub eax, edx
push ecx
cmp ebx, eax
ja 0x10088372
lea eax, [ebx + edx]
cmp esi, 0x10
mov dword [0x10101a50], eax
mov eax, 0x10101a40
cmovae eax, dword [0x10101a40]
lea esi, [eax + edx]
push esi
call fcn.100c22c0
add esp, 0xc
mov byte [ebx + esi], 0
jmp 0x10088390
mov byte [ebp - 0x2130], 0
mov ecx, 0x10101a40
push dword [ebp - 0x2130]
push ebx
call fcn.100b4450
mov edi, dword [ebp - 0x21dc]
mov eax, dword [ebp - 0x21c8]
cmp eax, 0x10
jb 0x100883c6
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x100883bc
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push ecx
push edi
call fcn.100bede4
add esp, 8
mov edx, dword [ebp - 0x20c4]
cmp edx, 0x10
jb 0x10088400
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100883f6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push edx
push ecx
call fcn.100bede4
add esp, 8
push 0x100f2c94
mov ecx, 0x10101a40
call fcn.100b26a0
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 0x1008842f
cmp byte [eax], 0x31
jne 0x1008842f
mov al, 1
jmp 0x10088431
xor al, al
test al, al
je 0x10088989
mov eax, dword [0x10101a50]
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.100b5970
cmp dword [0x10101a54], 0x10
mov ecx, 0x10101a40
mov esi, dword [ebp - 0x20c4]
mov eax, esi
cmovae ecx, dword [0x10101a40]
mov edi, dword [0x10101a50]
mov edx, dword [ebp - 0x20c8]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x100884c2
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.100c22c0
add esp, 0xc
mov byte [edi + esi], 0
jmp 0x100884db
mov byte [ebp - 0x2134], 0
lea ecx, [ebp - 0x20d8]
push dword [ebp - 0x2134]
push edi
call fcn.100b4450
push 0x100fb3cc
lea ecx, [ebp - 0x20d8]
call fcn.100b26a0
push 0x100fb3c8
lea ecx, [ebp - 0x20d8]
call fcn.100b26a0
lea edx, [ebp - 0x20f0]
lea ecx, [ebp - 0x217c]
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.100b3550
add esp, 4
mov ecx, eax
push 0x100fb3c8
call fcn.100b26a0
lea edx, [ebp - 0x2110]
lea ecx, [ebp - 0x2224]
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.100b3550
add esp, 4
mov ecx, eax
push 0x100fb3c8
call fcn.100b26a0
lea edx, [ebp - 0x2164]
lea ecx, [ebp - 0x220c]
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.100b3550
add esp, 4
mov ecx, eax
push 0x100fb3c8
call fcn.100b26a0
lea edx, [ebp - 0x214c]
lea ecx, [ebp - 0x21f4]
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.100b3550
add esp, 4
mov ecx, eax
push 0x100fb3c4
call fcn.100b26a0
mov ecx, 0x10101a40
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2194], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x2194]
push eax
movq qword [ebp - 0x2184], xmm0
call fcn.100b2760
mov edx, dword [ebp - 0x2180]
cmp edx, 0x10
jb 0x100886a7
mov ecx, dword [ebp - 0x2194]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008869d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push edx
push ecx
call fcn.100bede4
add esp, 8
mov edx, dword [ebp - 0x21e0]
cmp edx, 0x10
jb 0x100886e1
mov ecx, dword [ebp - 0x21f4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100886d7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push edx
push ecx
call fcn.100bede4
add esp, 8
mov edx, dword [ebp - 0x2138]
mov dword [ebp - 0x21e4], 0
mov dword [ebp - 0x21e0], 0xf
mov byte [ebp - 0x21f4], 0
cmp edx, 0x10
jb 0x10088736
mov ecx, dword [ebp - 0x214c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008872c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push edx
push ecx
call fcn.100bede4
add esp, 8
mov edx, dword [ebp - 0x21f8]
mov dword [ebp - 0x213c], 0
mov dword [ebp - 0x2138], 0xf
mov byte [ebp - 0x214c], 0
cmp edx, 0x10
jb 0x1008878b
mov ecx, dword [ebp - 0x220c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088781
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push edx
push ecx
call fcn.100bede4
add esp, 8
mov edx, dword [ebp - 0x2150]
mov dword [ebp - 0x21fc], 0
mov dword [ebp - 0x21f8], 0xf
mov byte [ebp - 0x220c], 0
cmp edx, 0x10
jb 0x100887e0
mov ecx, dword [ebp - 0x2164]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100887d6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push edx
push ecx
call fcn.100bede4
add esp, 8
mov edx, dword [ebp - 0x2210]
mov dword [ebp - 0x2154], 0
mov dword [ebp - 0x2150], 0xf
mov byte [ebp - 0x2164], 0
cmp edx, 0x10
jb 0x10088835
mov ecx, dword [ebp - 0x2224]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008882b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push edx
push ecx
call fcn.100bede4
add esp, 8
mov edx, dword [ebp - 0x20fc]
mov dword [ebp - 0x2214], 0
mov dword [ebp - 0x2210], 0xf
mov byte [ebp - 0x2224], 0
cmp edx, 0x10
jb 0x1008888a
mov ecx, dword [ebp - 0x2110]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088880
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push edx
push ecx
call fcn.100bede4
add esp, 8
mov edx, dword [ebp - 0x2168]
mov dword [ebp - 0x2100], 0
mov dword [ebp - 0x20fc], 0xf
mov byte [ebp - 0x2110], 0
cmp edx, 0x10
jb 0x100888df
mov ecx, dword [ebp - 0x217c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100888d5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push edx
push ecx
call fcn.100bede4
add esp, 8
mov edx, dword [ebp - 0x20dc]
mov dword [ebp - 0x216c], 0
mov dword [ebp - 0x2168], 0xf
mov byte [ebp - 0x217c], 0
cmp edx, 0x10
jb 0x10088934
mov ecx, dword [ebp - 0x20f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008892a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push edx
push ecx
call fcn.100bede4
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 0x10088989
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008897f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b1a
push edx
push ecx
call fcn.100bede4
add esp, 8
inc dword [0x101039a8]
push dword [ebp - 0x206c]
call fcn.10027930
add esp, 4
cmp eax, 0x64
je 0x10087310
xor esi, esi
jmp 0x100889ad
or esi, 0xffffffff
mov edx, dword [ebp - 0x2024]
cmp edx, 0x10
jb 0x100889e7
mov ecx, dword [ebp - 0x2038]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100889dd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b24
push edx
push ecx
call fcn.100bede4
add esp, 8
mov edx, dword [ebp - 0x203c]
cmp edx, 0x10
jb 0x10088a21
mov ecx, dword [ebp - 0x2050]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088a17
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b24
push edx
push ecx
call fcn.100bede4
add esp, 8
mov edx, dword [ebp - 0x2054]
cmp edx, 0x10
jb 0x10088a5b
mov ecx, dword [ebp - 0x2068]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088a51
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b24
push edx
push ecx
call fcn.100bede4
add esp, 8
mov edx, dword [ebp - 0x200c]
cmp edx, 0x10
jb 0x10088a95
mov ecx, dword [ebp - 0x2020]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088a8b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b24
push edx
push ecx
call fcn.100bede4
add esp, 8
mov edx, dword [ebp + 0x1c]
cmp edx, 0x10
jb 0x10088ac5
mov ecx, dword [ebp + 8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088abb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b24
push edx
push ecx
call fcn.100bede4
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 0x10088b07
mov ecx, dword [ebp + 0x20]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088afd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088b24
push edx
push ecx
call fcn.100bede4
add esp, 8
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100be889
mov esp, ebp
pop ebp
ret
call fcn.100cb7f0
call fcn.100b3290
call fcn.100cb7f0
int3