Function at 0x43bed0
Capabilities:
Encrypt or decrypt via wincrypt

Disassembly:
mov eax, 0x88d4
call fcn.00541260
mov eax, dword [0x5b7a9c]
xor eax, esp
mov dword [esp + 0x88d0], eax
mov eax, dword [esp + 0x88dc]
mov edx, dword [esp + 0x88e4]
push ebx
mov ebx, dword [esp + 0x88dc]
push ebp
mov ebp, dword [ebx]
push esi
push edi
mov esi, ecx
mov ecx, dword [esp + 0x88f0]
xor edi, edi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edx
cmp ebp, edi
jne 0x43bf25
lea ebp, [edi + 8]
push edi
push edi
lea eax, [esp + 0x20]
push eax
push ebp
lea edx, [esp + 0x38]
push edx
call fcn.004add80
test eax, eax
je 0x43c1e5
mov eax, dword [ebx + 8]
mov dword [esp + 0x24], ebp
cmp eax, edi
je 0x43bf72
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x2c]
push edx
push edi
push edi
push edi
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDecrypt]
test eax, eax
jne 0x43bf72
push edi
push edi
push edi
push 0x5530
call fcn.00450540
add esp, 0x10
mov eax, dword [esi + 0x20]
push eax
call fcn.004ff267
mov ecx, dword [esi + 0x18]
push ecx
call fcn.004ff267
mov edx, dword [esi + 0x1c]
push edx
call fcn.004ff267
mov eax, dword [esp + 0x34]
push 4
mov dword [esi + 0x10], edi
mov dword [esi + 0xc], edi
mov dword [esi + 8], edi
mov byte [esi + 0x14], 0
mov dword [esi + 0x1c], edi
mov dword [esi + 0x18], edi
mov dword [esi + 0x20], edi
mov dword [esi], edi
mov dword [esi + 4], eax
call fcn.004ff272
add esp, 0x10
mov edi, eax
xor ecx, ecx
lea edx, [esi + 7]
lea ecx, [ecx]
mov al, byte [edx]
mov byte [ecx + edi], al
inc ecx
dec edx
cmp ecx, 4
jl 0x43bfc0
mov ecx, dword [edi]
push edi
mov dword [esi + 4], ecx
call fcn.004ff267
mov edi, dword [esi + 4]
add esp, 4
test edi, edi
jne 0x43c01b
cmp dword [0x5ec71c], 0xa
jge 0x43c00c
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
inc dword [0x5ec71c]
push edx
push eax
push ecx
push ebx
mov ecx, esi
call fcn.0043bed0
jmp 0x43c1e7
mov dword [0x5ec71c], 0
jmp 0x43c1e5
cmp edi, 0x88b4
ja 0x43c1c8
sub edi, ebp
add edi, 4
xor ebx, ebx
test edi, edi
jle 0x43c068
mov ecx, dword [esp + 0x14]
push 0
push 0
lea edx, [esp + 0x20]
push edx
lea eax, [esp + ebp + 0x34]
push edi
add eax, ebx
push eax
call fcn.004add80
test eax, eax
je 0x43c1e5
mov eax, dword [esp + 0x18]
test eax, eax
je 0x43c1e5
sub edi, eax
add ebx, eax
test edi, edi
jg 0x43c032
mov eax, dword [esi + 4]
sub eax, ebp
add eax, 4
push eax
lea ecx, [esp + ebp + 0x2c]
push ecx
mov ecx, dword [esp + 0x28]
call fcn.004399a0
mov al, byte [esp + 0x2c]
movzx edx, al
mov byte [esi + 0x14], al
mov eax, dword [esi + 4]
sub eax, edx
dec eax
push eax
mov dword [esi + 0xc], eax
mov dword [esi + 8], eax
call fcn.004ff272
mov ecx, dword [esi + 8]
push ecx
lea edx, [esp + 0x35]
push edx
push eax
mov dword [esi + 0x20], eax
call fcn.005402a0
movzx eax, byte [esi + 0x14]
mov edi, dword [esi + 8]
push eax
add edi, 5
call fcn.004ff272
movzx ecx, byte [esi + 0x14]
push ecx
lea edx, [esp + edi + 0x40]
push edx
push eax
mov dword [esi + 0x18], eax
call fcn.005402a0
movzx eax, byte [esi + 0x14]
mov ebx, dword [esp + 0x30]
add esp, 0x20
add edi, eax
cmp dword [ebx + 4], 0
je 0x43c17b
mov ebp, dword [ebx]
mov dword [esp + 0x10], 0
test ebp, ebp
jle 0x43c131
mov edx, dword [esp + 0x10]
push 0
push 0
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x20]
lea eax, [esp + edi + 0x34]
push ebp
add eax, edx
push eax
call fcn.004add80
test eax, eax
je 0x43c1e5
mov eax, dword [esp + 0x18]
test eax, eax
je 0x43c1e5
add dword [esp + 0x10], eax
sub ebp, eax
test ebp, ebp
jg 0x43c0f5
mov eax, dword [ebx]
push eax
call fcn.004ff272
mov dword [esi + 0x1c], eax
mov ecx, dword [ebx]
push ecx
lea edx, [esp + edi + 0x30]
push edx
push eax
call fcn.005402a0
mov ebp, dword [esp + 0x2c]
mov eax, dword [ebp]
add esp, 0x10
push eax
push edi
lea ecx, [esp + 0x30]
push ecx
mov ecx, ebx
call fcn.00439b60
test eax, eax
jne 0x43c17f
mov edx, dword [esi]
cmp dword [edx + 0xd4], eax
jne 0x43c1e5
push 0xffffffffffffffff
push 0x10
push 0x549c
jmp 0x43c1e0
mov ebp, dword [esp + 0x1c]
inc dword [ebp]
mov eax, dword [esi + 0x20]
mov al, byte [eax]
cmp al, 2
je 0x43c1a0
cmp al, 4
je 0x43c1a0
mov dword [0x5ec71c], 0
mov eax, 1
jmp 0x43c1e7
cmp dword [0x5ec71c], 0xa
jge 0x43c00c
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
inc dword [0x5ec71c]
push ebp
push ecx
push ebx
push edx
mov ecx, esi
call fcn.0043bed0
jmp 0x43c1e7
mov esi, dword [esi]
test esi, esi
je 0x43c1e5
cmp dword [esi + 0xd4], 0
jne 0x43c1e5
push 0xffffffffffffffff
push 0x10
push 0x549b
call fcn.0050bdf5
xor eax, eax
mov ecx, dword [esp + 0x88e0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0053fa67
add esp, 0x88d4
ret 0x10