Function at 0x1002ef09
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x10070427
mov eax, dword fs:[0]
push eax
sub esp, 0x170
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1008ab54]
xor eax, esp
push eax
lea eax, [esp + 0x184]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi + 0x58]
cmp eax, 3
ja case.default.0x1002eb3b
jmp dword [eax*4 + 0x1002ef00]
mov ebp, dword [esp + 0x198]
test ebp, ebp
jbe case.default.0x1002eb3b
mov ecx, dword [esi + 0x54]
mov eax, dword [ecx]
mov edx, dword [eax + 0x24]
call edx
mov ecx, dword [esi + 0x54]
mov edi, eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x34]
mov dword [esp + 0x18], edi
call edx
test al, al
je 0x1002ec00
cmp dword [esi + 0x58], 1
jne 0x1002ec00
test edi, edi
je 0x1002eb85
cmp ebp, edi
jae 0x1002ec00
mov ecx, dword [esi + 0x54]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
call edx
mov dword [esp + 0x14], eax
cmp edi, eax
lea eax, [esp + 0x14]
jb 0x1002eb9f
lea eax, [esp + 0x18]
mov ebx, dword [eax]
mov eax, dword [esi]
mov edx, dword [eax + 0xa4]
mov ecx, esi
call edx
mov ecx, eax
lea edi, [esi + 0x48]
mov eax, ebx
call fcn.1002d8c0
mov edi, eax
mov eax, dword [esp + 0x194]
push ebp
push eax
push edi
call fcn.1004f870
mov ecx, ebx
sub ecx, ebp
push ecx
lea edx, [edi + ebp]
push 0
push edx
call fcn.1004b150
mov ecx, dword [esi + 0x54]
mov eax, dword [ecx]
mov edx, dword [eax + 0x20]
add esp, 0x18
push ebx
push edi
push edi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0xa4]
mov ecx, esi
call edx
push 1
push 0
push ebx
jmp 0x1002ecdf
test edi, edi
jne 0x1002ec9c
test al, al
je 0x1002ec52
push str.StreamTransformationFilter:_plaintext_length_is_not_a_multiple_of_block_size_and_NO_PADDING_is_specified
lea ecx, [esp + 0x58]
call fcn.10002770
lea ecx, [esp + 0x54]
push ecx
push 4
lea edx, [esp + 0xb0]
push edx
mov dword [esp + 0x198], edi
call fcn.1000a2a0
push 0x10081934
lea eax, [esp + 0xac]
push eax
mov dword [esp + 0xb0], vtable.CryptoPP::InvalidDataFormat.0
call fcn.1004a8fc
push str.StreamTransformationFilter:_ciphertext_length_is_not_a_multiple_of_block_size
lea ecx, [esp + 0x74]
call fcn.10002770
lea ecx, [esp + 0x70]
push ecx
push 4
lea edx, [esp + 0x134]
push edx
mov dword [esp + 0x198], 1
call fcn.1000a2a0
push 0x10081854
lea eax, [esp + 0x130]
push eax
mov dword [esp + method.CryptoPP::Exception.virtual_0], vtable.CryptoPP::InvalidCiphertext.0
call fcn.1004a8fc
mov ecx, dword [esi + 0x5c]
mov edx, dword [esi]
mov eax, dword [edx + 0xa4]
push ecx
mov ecx, esi
call eax
mov ecx, eax
lea edi, [esi + 0x48]
mov eax, ebp
call fcn.1002d900
mov ecx, dword [esi + 0x54]
mov edx, dword [ecx]
mov edx, dword [edx + 0x20]
mov edi, eax
mov eax, dword [esp + 0x194]
push ebp
push eax
push edi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0xa4]
mov ecx, esi
call edx
push 1
push 0
push ebp
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x14]
push edi
call eax
mov ecx, dword [esp + 0x184]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x17c
ret 8
mov ecx, dword [esi + 0x54]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov ecx, dword [esi + 0x5c]
mov edx, dword [esi]
mov ebx, eax
mov eax, dword [edx + 0xa4]
push ecx
mov ecx, esi
call eax
mov ecx, eax
lea edi, [esi + 0x48]
mov eax, ebx
call fcn.1002d900
mov ecx, dword [esi + 0x54]
mov edx, dword [ecx]
mov edi, eax
mov eax, dword [edx + 0x34]
call eax
test al, al
je 0x1002ed99
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x194]
push ecx
push edx
push edi
call fcn.1004f870
mov eax, dword [esp + 0x1a4]
mov ecx, ebx
add esp, 0xc
sub ecx, eax
cmp dword [esi + 0x58], 2
jne 0x1002ed75
mov dl, bl
sub dl, al
push ecx
movzx ecx, dl
push ecx
lea edx, [edi + eax]
jmp 0x1002ed83
sub ecx, 1
push ecx
mov byte [edi + eax], 0x80
push 0
lea edx, [edi + eax + 1]
push edx
call fcn.1004b150
mov ecx, dword [esi + 0x54]
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
add esp, 0xc
jmp 0x1002ebe5
mov ebp, dword [esp + 0x198]
cmp ebp, ebx
je 0x1002edee
push str.StreamTransformationFilter:_ciphertext_length_is_not_a_multiple_of_block_size
lea ecx, [esp + 0x3c]
call fcn.10002770
lea ecx, [esp + 0x38]
push ecx
push 4
lea edx, [esp + 0xdc]
push edx
mov dword [esp + 0x198], 2
call fcn.1000a2a0
push 0x10081854
lea eax, [esp + 0xd8]
push eax
mov dword [esp + 0xdc], vtable.CryptoPP::InvalidCiphertext.0
call fcn.1004a8fc
mov ecx, dword [esi + 0x54]
mov eax, dword [esp + 0x194]
mov edx, dword [ecx]
mov edx, dword [edx + 0x1c]
push ebx
push eax
push edi
call edx
cmp dword [esi + 0x58], 2
jne 0x1002ee8d
mov dl, byte [ebx + edi - 1]
cmp dl, 1
lea ecx, [ebx + edi]
jb 0x1002ee43
movzx eax, dl
cmp eax, ebx
ja 0x1002ee43
mov ebp, ebx
sub ebp, eax
lea eax, [edi + ebp]
cmp eax, ecx
je 0x1002ecce
mov edi, edi
cmp byte [eax], dl
jne 0x1002ee3b
add eax, 1
cmp eax, ecx
jne 0x1002ee30
cmp eax, ecx
je 0x1002ecce
push str.StreamTransformationFilter:_invalid_PKCS_7_block_padding_found
lea ecx, [esp + 0x20]
call fcn.10002770
lea eax, [esp + 0x1c]
push eax
push 4
lea ecx, [esp + 0x108]
push ecx
mov dword [esp + 0x198], 3
call fcn.1000a2a0
push 0x10081854
lea edx, [esp + 0x104]
push edx
mov dword [esp + method.CryptoPP::Exception.virtual_0], vtable.CryptoPP::InvalidCiphertext.0
call fcn.1004a8fc
cmp ebp, 1
jbe 0x1002eea1
cmp byte [edi + ebp - 1], 0
jne 0x1002eea1
sub ebp, 1
cmp ebp, 1
ja 0x1002ee92
sub ebp, 1
cmp byte [edi + ebp], 0x80
je 0x1002ecce
push str.StreamTransformationFilter:_invalid_ones_and_zeros_padding_found
lea ecx, [esp + 0x90]
call fcn.10002770
lea eax, [esp + 0x8c]
push eax
push 4
lea ecx, [esp + 0x160]
push ecx
mov dword [esp + 0x198], 4
call fcn.1000a2a0
push 0x10081854
lea edx, [esp + 0x15c]
push edx
mov dword [esp + method.CryptoPP::Exception.virtual_0], vtable.CryptoPP::InvalidCiphertext.0
call fcn.1004a8fc
mov edi, edi
inc edx
jmp 268627717
jmp 0x1002ef09
in eax, dx
add dl, byte [eax]
add eax, 0x6a1002ed
push -1
invalid
invalid