Function at 0x4500e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x590457
mov eax, dword fs:[0]
push eax
sub esp, 0x178
mov eax, dword [0x5f7100]
xor eax, esp
mov dword [esp + 0x174], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5f7100]
xor eax, esp
push eax
lea eax, [esp + 0x18c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x19c]
mov ebx, dword [esp + 0x1a0]
mov ebp, ecx
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x58]
cmp eax, 3
ja case.default.0x45013b
jmp dword [eax*4 + 0x4504c8]
test ebx, ebx
je case.default.0x45013b
mov ecx, dword [ebp + 0x54]
mov edx, dword [ecx]
mov eax, dword [edx + 0x24]
call eax
mov ecx, dword [ebp + 0x54]
mov edx, dword [ecx]
mov esi, eax
mov eax, dword [edx + 0x34]
mov dword [esp + 0x1c], esi
call eax
test al, al
je 0x4501e5
cmp dword [ebp + 0x58], 1
jne 0x4501e5
test esi, esi
je 0x450176
cmp ebx, esi
jae 0x4501e5
mov ecx, dword [ebp + 0x54]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov dword [esp + 0x14], eax
cmp esi, eax
lea eax, [esp + 0x14]
jb 0x450190
lea eax, [esp + 0x1c]
mov edx, dword [ebp]
mov esi, dword [eax]
mov eax, dword [edx + 0xa4]
mov ecx, ebp
call eax
push eax
lea edi, [ebp + 0x48]
call fcn.0044e7b0
mov edi, eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4501bd
push ebx
push eax
push edi
call fcn.00563210
add esp, 0xc
mov ecx, esi
sub ecx, ebx
push ecx
push 0
add ebx, edi
push ebx
call fcn.0055ff30
mov ecx, dword [ebp + 0x54]
mov edx, dword [ecx]
mov eax, dword [edx + 0x20]
add esp, 0xc
push esi
push edi
push edi
call eax
push 1
push esi
push edi
jmp 0x4502a3
test esi, esi
jne 0x450270
test al, al
je 0x450229
push str.StreamTransformationFilter:_plaintext_length_is_not_a_multiple_of_block_size_and_NO_PADDING_is_specified
lea ecx, [esp + 0x5c]
call fcn.00409c30
lea ecx, [esp + 0x58]
push ecx
lea ecx, [esp + 0x160]
mov dword [esp + 0x198], esi
call fcn.00404730
push 0x5e9ec0
lea edx, [esp + 0x160]
push edx
call fcn.0055fd73
push str.StreamTransformationFilter:_ciphertext_length_is_not_a_multiple_of_block_size
lea ecx, [esp + 0x78]
call fcn.00409c30
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0xb0]
mov dword [esp + 0x198], 1
call fcn.00404730
push 0x5e9de4
lea ecx, [esp + 0xb0]
push ecx
mov dword [esp + 0xb4], vtable.CryptoPP::InvalidCiphertext.0
call fcn.0055fd73
mov edx, dword [ebp + 0x5c]
mov eax, dword [ebp]
push edx
mov edx, dword [eax + 0xa4]
mov ecx, ebp
call edx
push eax
lea edi, [ebp + 0x48]
mov esi, ebx
call fcn.0044e800
mov ecx, dword [ebp + 0x54]
mov edx, dword [esp + 0x18]
mov esi, eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
push ebx
push edx
push esi
call eax
push 1
push ebx
push esi
mov edx, dword [ebp]
mov eax, dword [edx + 0xa4]
mov ecx, ebp
call eax
mov ecx, eax
call fcn.004050c0
mov ecx, dword [esp + 0x18c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x174]
xor ecx, esp
call fcn.0055c88f
add esp, 0x184
ret 8
mov ecx, dword [ebp + 0x54]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov ecx, dword [ebp + 0x5c]
mov edx, dword [ebp]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0xa4]
push ecx
mov ecx, ebp
call eax
mov esi, dword [esp + 0x18]
push eax
lea edi, [ebp + 0x48]
call fcn.0044e800
mov ecx, dword [ebp + 0x54]
mov edx, dword [ecx]
mov esi, eax
mov eax, dword [edx + 0x34]
call eax
test al, al
je 0x45037a
mov eax, dword [esp + 0x18]
test eax, eax
je 0x450330
push ebx
push eax
push esi
call fcn.00563210
add esp, 0xc
cmp dword [ebp + 0x58], 2
mov eax, dword [esp + 0x14]
jne 0x45034a
mov ecx, eax
sub al, bl
sub ecx, ebx
movzx edx, al
push ecx
push edx
add ebx, esi
push ebx
jmp 0x450359
sub eax, ebx
dec eax
push eax
push 0
lea ecx, [ebx + esi + 1]
mov byte [ebx + esi], 0x80
push ecx
call fcn.0055ff30
mov edi, dword [esp + 0x20]
mov ecx, dword [ebp + 0x54]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1c]
add esp, 0xc
push edi
push esi
push esi
call eax
push 1
push edi
jmp 0x4502a2
mov eax, dword [esp + 0x14]
cmp ebx, eax
je 0x4503c9
push str.StreamTransformationFilter:_ciphertext_length_is_not_a_multiple_of_block_size
lea ecx, [esp + 0x40]
call fcn.00409c30
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x134]
mov dword [esp + 0x198], 2
call fcn.00404730
push 0x5e9de4
lea edx, [esp + 0x134]
push edx
mov dword [esp + method.CryptoPP::InvalidCiphertext.virtual_0], vtable.CryptoPP::InvalidCiphertext.0
call fcn.0055fd73
mov ecx, dword [ebp + 0x54]
mov edx, dword [ecx]
mov edx, dword [edx + 0x1c]
push eax
mov eax, dword [esp + 0x1c]
push eax
push esi
call edx
cmp dword [ebp + 0x58], 2
jne 0x45045d
mov ebx, dword [esp + 0x14]
mov al, byte [ebx + esi - 1]
lea edi, [ebx + esi]
cmp al, 1
jb 0x450416
movzx ecx, al
cmp ecx, ebx
ja 0x450416
mov byte [esp + 0x1d], al
mov eax, dword [esp + 0x1c]
sub ebx, ecx
push eax
lea eax, [ebx + esi]
mov ecx, edi
call fcn.00450bf0
add esp, 4
cmp eax, edi
je 0x45029f
push str.StreamTransformationFilter:_invalid_PKCS_7_block_padding_found
lea ecx, [esp + 0x24]
call fcn.00409c30
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0xdc]
mov dword [esp + 0x198], 3
call fcn.00404730
push 0x5e9de4
lea edx, [esp + 0xdc]
push edx
mov dword [esp + 0xe0], vtable.CryptoPP::InvalidCiphertext.0
call fcn.0055fd73
cmp ebx, 1
jbe 0x45046f
cmp byte [esi + ebx - 1], 0
jne 0x45046f
dec ebx
cmp ebx, 1
ja 0x450462
dec ebx
cmp byte [ebx + esi], 0x80
je 0x45029f
push str.StreamTransformationFilter:_invalid_ones_and_zeros_padding_found
lea ecx, [esp + 0x94]
call fcn.00409c30
lea eax, [esp + 0x90]
push eax
lea ecx, [esp + 0x108]
mov dword [esp + 0x198], 4
call fcn.00404730
push 0x5e9de4
lea ecx, [esp + 0x108]
push ecx
mov dword [esp + method.CryptoPP::InvalidCiphertext.virtual_0], vtable.CryptoPP::InvalidCiphertext.0
call fcn.0055fd73
nop
inc edx
add dword [ebp], eax
inc edx
add dword [ebp], eax
loope 0x4504d4
inc ebp
add cl, ah
add al, byte [ebp]
loope 0x4504d8
inc ebp
add ah, cl
int3
int3