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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x220c
call fcn.100df920
mov eax, dword [0x10100008]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x10101d94], 0x10
lea edx, [ebp - 0x2070]
push ebx
push esi
push edi
mov ecx, 0x10101d80
mov dword [ebp - 0x2020], 0
cmovae ecx, dword [0x10101d80]
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 0x10088cb0
sub esp, 0x18
mov ecx, esp
push 0x10101f18
call fcn.100b24b0
lea ecx, [ebp - 0x2134]
call fcn.10084ca0
add esp, 0x18
cmp dword [eax + 0x14], 0x10
jb 0x10087804
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 0x10087862
mov ecx, dword [ebp - 0x2134]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087858
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e20
push edx
push ecx
call fcn.100be753
add esp, 8
test bl, bl
jne 0x10088cb0
push dword [ebp - 0x206c]
call fcn.10027a20
add esp, 4
cmp eax, 0x64
jne 0x10088cac
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 0x10088cac
test edi, edi
je 0x10088cac
test edx, edx
je 0x10088cac
mov ecx, esi
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100878d4
sub ecx, ebx
je 0x10088c95
mov ecx, edi
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100878e8
sub ecx, ebx
je 0x10088c95
mov ecx, edx
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10087900
sub ecx, edx
je 0x10088c95
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 0x10087932
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x20d8]
call fcn.100b2ac0
lea eax, [ebp - 0x20d8]
push eax
lea ecx, [ebp - 0x2020]
call fcn.100b23f0
mov edx, dword [ebp - 0x20c4]
cmp edx, 0x10
jb 0x10087994
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008798a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e2f
push edx
push ecx
call fcn.100be753
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.100b2ac0
lea eax, [ebp - 0x20d8]
push eax
lea ecx, [ebp - 0x2020]
call fcn.100b23f0
mov edx, dword [ebp - 0x20c4]
cmp edx, 0x10
jb 0x10087a24
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087a1a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e2f
push edx
push ecx
call fcn.100be753
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 0x10087a47
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x20d8]
call fcn.100b2ac0
lea eax, [ebp - 0x20d8]
push eax
lea ecx, [ebp - 0x2068]
call fcn.100b23f0
mov edx, dword [ebp - 0x20c4]
cmp edx, 0x10
jb 0x10087aa9
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087a9f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e2f
push edx
push ecx
call fcn.100be753
add esp, 8
sub esp, 0x18
lea eax, [ebp - 0x2020]
mov ecx, esp
push eax
call fcn.100b24b0
sub esp, 0x18
mov ecx, esp
push 2
push 0x100fa71c
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.100b2ac0
call fcn.10086320
add esp, 0x30
test eax, eax
jle 0x10087fc1
sub esp, 0x18
lea eax, [ebp - 0x2020]
mov ecx, esp
push eax
call fcn.100b24b0
sub esp, 0x18
mov ecx, esp
push 2
push 0x100fa71c
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.100b2ac0
call fcn.10086320
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.100b2ac0
lea eax, [ebp - 0x20d8]
push eax
lea ecx, [ebp - 0x2038]
call fcn.100b23f0
mov edx, dword [ebp - 0x20c4]
cmp edx, 0x10
jb 0x10087bc8
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087bbe
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e2f
push edx
push ecx
call fcn.100be753
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 0x10087be0
sub esp, 0x18
lea eax, [ebp - 0x2020]
sub esi, ecx
mov ecx, esp
push eax
call fcn.100b24b0
sub esp, 0x18
mov ecx, esp
push 2
push 0x100fa71c
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.100b2ac0
call fcn.10086320
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 0x10088e2a
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.100b2ac0
lea eax, [ebp - 0x20d8]
push eax
lea ecx, [ebp - 0x2020]
call fcn.100b23f0
mov edx, dword [ebp - 0x20c4]
cmp edx, 0x10
jb 0x10087ccc
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087cc2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e2f
push edx
push ecx
call fcn.100be753
add esp, 8
sub esp, 0x18
lea eax, [ebp - 0x2020]
mov ecx, esp
push eax
call fcn.100b24b0
sub esp, 0x18
mov ecx, esp
push 1
push 0x100fa720
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.100b2ac0
call fcn.10086320
add esp, 0x30
test eax, eax
jle 0x10087ec6
sub esp, 0x18
lea eax, [ebp - 0x2020]
mov ecx, esp
push eax
call fcn.100b24b0
sub esp, 0x18
mov ecx, esp
push 1
push 0x100fa720
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.100b2ac0
call fcn.10086320
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.100b2ac0
mov ecx, dword [ebp - 0x2028]
mov eax, 0x7fffffff
sub eax, ecx
cmp eax, 2
jb 0x10088e25
cmp dword [ebp - 0x2024], 0x10
lea eax, [ebp - 0x2038]
push 2
cmovae eax, dword [ebp - 0x2038]
push 0x100fa71c
push ecx
push eax
push ecx
push dword [ebp - 0x20dc]
lea ecx, [ebp - 0x211c]
call fcn.100b5240
lea eax, [ebp - 0x20d8]
push eax
lea eax, [ebp - 0x211c]
push eax
push dword [ebp - 0x20dc]
lea ecx, [ebp - 0x20f8]
call fcn.100b5060
lea eax, [ebp - 0x20f8]
push eax
lea ecx, [ebp - 0x2020]
call fcn.100b23f0
mov edx, dword [ebp - 0x20e4]
cmp edx, 0x10
jb 0x10087e4f
mov ecx, dword [ebp - 0x20f8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087e45
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e2f
push edx
push ecx
call fcn.100be753
add esp, 8
mov edx, dword [ebp - 0x2108]
cmp edx, 0x10
jb 0x10087e89
mov ecx, dword [ebp - 0x211c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087e7f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e2f
push edx
push ecx
call fcn.100be753
add esp, 8
mov edx, dword [ebp - 0x20c4]
cmp edx, 0x10
jb 0x10087fc1
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087fb7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e2f
jmp 0x10087fb7
mov ecx, dword [ebp - 0x2028]
mov eax, 0x7fffffff
sub eax, ecx
cmp eax, 2
jb 0x10088e25
cmp dword [ebp - 0x2024], 0x10
lea eax, [ebp - 0x2038]
push 2
cmovae eax, dword [ebp - 0x2038]
push 0x100fa71c
push ecx
push eax
push ecx
push dword [ebp - 0x20dc]
lea ecx, [ebp - 0x20f8]
call fcn.100b5240
lea eax, [ebp - 0x2020]
push eax
lea edx, [ebp - 0x20f8]
lea ecx, [ebp - 0x20d8]
call fcn.100b2f10
add esp, 4
lea ecx, [ebp - 0x2020]
push eax
call fcn.100b23f0
mov edx, dword [ebp - 0x20c4]
cmp edx, 0x10
jb 0x10087f6c
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087f62
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e20
push edx
push ecx
call fcn.100be753
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 0x10087fc1
mov ecx, dword [ebp - 0x20f8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10087fb7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e20
push edx
push ecx
call fcn.100be753
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 0x1008800d
mov ecx, eax
and ecx, 0x202
cmp ecx, 0x202
jne 0x10087ff8
cmp byte [esi + 0xa], 1
jne 0x10087ff8
mov eax, dword [esi + 0x10]
jmp 0x10088005
test al, 1
jne 0x10088009
mov dl, 1
mov ecx, esi
call fcn.100222a0
test eax, eax
jne 0x1008800d
xor edi, edi
jmp 0x10088023
mov eax, dword [esi + 0xc]
mov ecx, 0x4000
test word [esi + 8], cx
je 0x10088021
mov edi, dword [esi]
add edi, eax
jmp 0x10088023
mov edi, eax
test ebx, ebx
je 0x10088065
mov ecx, dword [ebx]
mov edx, dword [ebx + 0x50]
test ecx, ecx
jne 0x10088035
movzx eax, dl
jmp 0x1008804f
cmp byte [ecx + 0x40], 0
jne 0x1008804a
cmp edx, 0xc0a
je 0x1008804a
mov eax, dword [ecx + 0x38]
and eax, edx
jmp 0x1008804f
call fcn.100054c0
mov ecx, dword [ebx]
mov dword [ebx + 0x50], eax
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x10088065
push eax
call dword [0x10100c44]
add esp, 4
mov ebx, dword [ebp - 0x20e0]
cmp byte [ebx], 0x76
jne 0x10088228
cmp byte [ebx + 1], 0x31
jne 0x10088228
cmp byte [ebx + 2], 0x30
je 0x1008808e
cmp byte [ebx + 2], 0x31
jne 0x10088228
lea edx, [ebp - 0x20e0]
mov dword [ebp - 0x20e0], 0
call fcn.10087400
test eax, eax
je 0x10088cb0
mov edx, dword [ebp - 0x20e0]
lea eax, [ebp - 0x2008]
push eax
call fcn.10087590
add esp, 4
test eax, eax
je 0x10088cb0
lea esi, [ebp - 0x2008]
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x100880d1
push 0
push 0
push 0x100fa6d8
push 0x10103a3c
sub esi, ecx
call dword [sym.imp.bcrypt.dll_BCryptOpenAlgorithmProvider]
test eax, eax
jne 0x1008810b
push eax
push 0x20
push str.ChainingModeGCM
push str.ChainingMode
push dword [0x10103a3c]
call dword [sym.imp.bcrypt.dll_BCryptSetProperty]
push 0
push esi
lea eax, [ebp - 0x2008]
push eax
push 0
push 0
push 0x10103a00
push dword [0x10103a3c]
call dword [sym.imp.bcrypt.dll_BCryptGenerateSymmetricKey]
mov ecx, dword [0x10103a5c]
test ecx, ecx
jne 0x10088151
push 0x400
call fcn.100c3f43
mov ecx, eax
add esp, 4
mov dword [0x10103a5c], ecx
test ecx, ecx
je 0x10088cb0
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 [0x10103a00]
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 [0x10103a5c]
mov eax, dword [ebp - 0x2070]
push ecx
mov byte [eax + ecx], 0
lea ecx, [ebp - 0x2134]
call fcn.100b2470
push eax
lea ecx, [ebp - 0x2050]
call fcn.100b23f0
lea ecx, [ebp - 0x2134]
call fcn.100b23a0
jmp 0x1008831e
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 0x10088285
mov esi, dword [ebp - 0x2080]
test esi, esi
je 0x10088276
push esi
push dword [ebp - 0x207c]
lea eax, [ebp - 0x408]
push eax
call fcn.100c0d20
add esp, 0xc
mov byte [ebp + esi - 0x408], 0
mov eax, 1
jmp 0x10088287
xor eax, eax
test eax, eax
je 0x1008831e
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 0x100882b6
sub ecx, edx
lea eax, [ebp - 0x408]
push ecx
push eax
lea ecx, [ebp - 0x20d8]
call fcn.100b2ac0
lea eax, [ebp - 0x20d8]
push eax
lea ecx, [ebp - 0x2050]
call fcn.100b23f0
mov edx, dword [ebp - 0x20c4]
cmp edx, 0x10
jb 0x1008831e
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088314
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e2f
push edx
push ecx
call fcn.100be753
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 0x1008833e
cmp byte [eax], 0x30
jne 0x1008833e
mov al, 1
jmp 0x10088340
xor al, al
test al, al
je 0x1008878c
mov ecx, dword [ebp - 0x2010]
mov eax, 0x7fffffff
sub eax, ecx
cmp eax, 1
jb 0x10088e25
cmp dword [ebp - 0x200c], 0x10
lea eax, [ebp - 0x2020]
push ecx
cmovae eax, dword [ebp - 0x2020]
push eax
push 1
push 0x100fa728
push ecx
push dword [ebp - 0x20dc]
lea ecx, [ebp - 0x20f8]
call fcn.100b5240
push 0x100fa724
lea ecx, [ebp - 0x20f8]
call fcn.100b2330
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 [0x10101b6c]
mov eax, esi
mov edx, dword [0x10101b68]
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 0x1008841e
lea eax, [ebx + edx]
cmp esi, 0x10
mov dword [0x10101b68], eax
mov eax, 0x10101b58
cmovae eax, dword [0x10101b58]
lea esi, [eax + edx]
push esi
call fcn.100c0d20
add esp, 0xc
mov byte [ebx + esi], 0
jmp 0x1008843c
mov byte [ebp - 0x20fc], 0
mov ecx, 0x10101b58
push dword [ebp - 0x20fc]
push ebx
call fcn.100b3b50
mov edi, dword [ebp - 0x2194]
mov eax, dword [ebp - 0x2180]
cmp eax, 0x10
jb 0x10088472
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10088468
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e20
push ecx
push edi
call fcn.100be753
add esp, 8
mov edx, dword [ebp - 0x20e4]
cmp edx, 0x10
jb 0x100884ac
mov ecx, dword [ebp - 0x20f8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100884a2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e20
push edx
push ecx
call fcn.100be753
add esp, 8
mov ecx, dword [ebp - 0x2058]
mov eax, 0x7fffffff
sub eax, ecx
cmp eax, 1
jb 0x10088e25
cmp dword [ebp - 0x2054], 0x10
lea eax, [ebp - 0x2068]
push ecx
cmovae eax, dword [ebp - 0x2068]
push eax
push 1
push 0x100fa728
push ecx
push dword [ebp - 0x20dc]
lea ecx, [ebp - 0x20f8]
call fcn.100b5240
push 0x100fa724
lea ecx, [ebp - 0x20f8]
call fcn.100b2330
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 [0x10101b6c]
mov eax, esi
mov edx, dword [0x10101b68]
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 0x10088582
lea eax, [ebx + edx]
cmp esi, 0x10
mov dword [0x10101b68], eax
mov eax, 0x10101b58
cmovae eax, dword [0x10101b58]
lea esi, [eax + edx]
push esi
call fcn.100c0d20
add esp, 0xc
mov byte [ebx + esi], 0
jmp 0x100885a0
mov byte [ebp - 0x2100], 0
mov ecx, 0x10101b58
push dword [ebp - 0x2100]
push ebx
call fcn.100b3b50
mov edi, dword [ebp - 0x21ac]
mov eax, dword [ebp - 0x2198]
cmp eax, 0x10
jb 0x100885d6
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x100885cc
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e20
push ecx
push edi
call fcn.100be753
add esp, 8
mov edx, dword [ebp - 0x20e4]
cmp edx, 0x10
jb 0x10088610
mov ecx, dword [ebp - 0x20f8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088606
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e20
push edx
push ecx
call fcn.100be753
add esp, 8
mov ecx, dword [ebp - 0x2040]
mov eax, 0x7fffffff
sub eax, ecx
cmp eax, 1
jb 0x10088e25
cmp dword [ebp - 0x203c], 0x10
lea eax, [ebp - 0x2050]
push ecx
cmovae eax, dword [ebp - 0x2050]
push eax
push 1
push 0x100fa728
push ecx
push dword [ebp - 0x20dc]
lea ecx, [ebp - 0x20f8]
call fcn.100b5240
push 0x100fa724
lea ecx, [ebp - 0x20f8]
call fcn.100b2330
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 [0x10101b6c]
mov eax, esi
mov edx, dword [0x10101b68]
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 0x100886e6
lea eax, [ebx + edx]
cmp esi, 0x10
mov dword [0x10101b68], eax
mov eax, 0x10101b58
cmovae eax, dword [0x10101b58]
lea esi, [eax + edx]
push esi
call fcn.100c0d20
add esp, 0xc
mov byte [ebx + esi], 0
jmp 0x10088704
mov byte [ebp - 0x2104], 0
mov ecx, 0x10101b58
push dword [ebp - 0x2104]
push ebx
call fcn.100b3b50
mov edi, dword [ebp - 0x21c4]
mov eax, dword [ebp - 0x21b0]
cmp eax, 0x10
jb 0x1008873a
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10088730
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e20
push ecx
push edi
call fcn.100be753
add esp, 8
mov edx, dword [ebp - 0x20e4]
cmp edx, 0x10
jb 0x10088774
mov ecx, dword [ebp - 0x20f8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008876a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e20
push edx
push ecx
call fcn.100be753
add esp, 8
push 0x100f1fa4
mov ecx, 0x10101b58
call fcn.100b2330
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 0x100887a3
cmp byte [eax], 0x31
jne 0x100887a3
mov al, 1
jmp 0x100887a5
xor al, al
test al, al
je 0x10088c8f
mov ecx, dword [0x10101b68]
mov eax, 0x7fffffff
sub eax, ecx
cmp eax, 3
jb 0x10088e25
cmp dword [0x10101b6c], 0x10
mov eax, 0x10101b58
push 3
cmovae eax, dword [0x10101b58]
push 0x100fa734
push ecx
push eax
push ecx
push dword [ebp - 0x20dc]
lea ecx, [ebp - 0x2134]
call fcn.100b5240
push 0x100fa730
lea ecx, [ebp - 0x2134]
call fcn.100b2330
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.100b2f10
add esp, 4
mov ecx, eax
push 0x100fa730
call fcn.100b2330
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.100b2f10
add esp, 4
mov ecx, eax
push 0x100fa730
call fcn.100b2330
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.100b2f10
add esp, 4
mov ecx, eax
push 0x100fa730
call fcn.100b2330
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.100b2f10
add esp, 4
mov ecx, eax
push 0x100fa72c
call fcn.100b2330
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x220c], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov ecx, 0x10101b58
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x220c]
push eax
movq qword [ebp - 0x21fc], xmm0
call fcn.100b23f0
mov edx, dword [ebp - 0x21f8]
cmp edx, 0x10
jb 0x100889ad
mov ecx, dword [ebp - 0x220c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100889a3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e20
push edx
push ecx
call fcn.100be753
add esp, 8
mov edx, dword [ebp - 0x21c8]
cmp edx, 0x10
jb 0x100889e7
mov ecx, dword [ebp - 0x21dc]
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 0x10088e20
push edx
push ecx
call fcn.100be753
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 0x10088a3c
mov ecx, dword [ebp - 0x214c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088a32
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e20
push edx
push ecx
call fcn.100be753
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 0x10088a91
mov ecx, dword [ebp - 0x21f4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088a87
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e20
push edx
push ecx
call fcn.100be753
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 0x10088ae6
mov ecx, dword [ebp - 0x2164]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088adc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e20
push edx
push ecx
call fcn.100be753
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 0x10088b3b
mov ecx, dword [ebp - 0x211c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088b31
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e20
push edx
push ecx
call fcn.100be753
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 0x10088b90
mov ecx, dword [ebp - 0x217c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088b86
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e20
push edx
push ecx
call fcn.100be753
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 0x10088be5
mov ecx, dword [ebp - 0x20f8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088bdb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e20
push edx
push ecx
call fcn.100be753
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 0x10088c3a
mov ecx, dword [ebp - 0x20d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088c30
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e20
push edx
push ecx
call fcn.100be753
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 0x10088c8f
mov ecx, dword [ebp - 0x2134]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088c85
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e20
push edx
push ecx
call fcn.100be753
add esp, 8
inc dword [0x10103a54]
push dword [ebp - 0x206c]
call fcn.10027a20
add esp, 4
cmp eax, 0x64
je 0x10087881
xor esi, esi
jmp 0x10088cb3
or esi, 0xffffffff
mov edx, dword [ebp - 0x2024]
cmp edx, 0x10
jb 0x10088ced
mov ecx, dword [ebp - 0x2038]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088ce3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e2f
push edx
push ecx
call fcn.100be753
add esp, 8
mov edx, dword [ebp - 0x203c]
cmp edx, 0x10
jb 0x10088d27
mov ecx, dword [ebp - 0x2050]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088d1d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e2f
push edx
push ecx
call fcn.100be753
add esp, 8
mov edx, dword [ebp - 0x2054]
cmp edx, 0x10
jb 0x10088d61
mov ecx, dword [ebp - 0x2068]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088d57
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e2f
push edx
push ecx
call fcn.100be753
add esp, 8
mov edx, dword [ebp - 0x200c]
cmp edx, 0x10
jb 0x10088d9b
mov ecx, dword [ebp - 0x2020]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088d91
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e2f
push edx
push ecx
call fcn.100be753
add esp, 8
mov edx, dword [ebp + 0x1c]
cmp edx, 0x10
jb 0x10088dcb
mov ecx, dword [ebp + 8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088dc1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e2f
push edx
push ecx
call fcn.100be753
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 0x10088e0d
mov ecx, dword [ebp + 0x20]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10088e03
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10088e2f
push edx
push ecx
call fcn.100be753
add esp, 8
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100be1f9
mov esp, ebp
pop ebp
ret
call fcn.100ca55d
call fcn.10083390
call fcn.100b2d50
call fcn.100ca55d
int3