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

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
sub esp, 0x60
mov word [ebp - 0xe], 0
mov eax, dword [ebp + 8]
cmp byte [eax + 0x31], 0
je 0x444fc0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x3c], 0
mov eax, dword [ebp + 8]
cmp dword [eax + 0x38], 0x3e9
jne 0x4447ea
sub esp, 0xc
push str.secret_key_parts_are_not_available_n
call fcn.004a7e84
add esp, 4
push eax
call fcn.0049d7de
add esp, 0x10
mov dword [ebp - 0x58], 1
jmp 0x44503d
mov eax, dword [ebp + 8]
cmp byte [eax + 0x34], 0
jne 0x444807
sub esp, 4
push str.do_check
push 0x3b
push str._home_wk_src_gpg4win_build_gpg4win_1.1.3_src_playground_build_gnupg_1.4.7_g10_seckey_cert.c
call fcn.0049d962
sub esp, 0xc
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x34]
and eax, 0xff
push eax
call fcn.00473782
add esp, 0x10
test eax, eax
je 0x444892
sub esp, 4
mov eax, dword [ebp + 8]
cmp byte [eax + 0x34], 1
jne 0x444837
mov dword [ebp - 0x5c], str.__IDEA_
jmp 0x44483e
mov dword [ebp - 0x5c], 0x4e20d4
push dword [ebp - 0x5c]
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x34]
and eax, 0xff
push eax
push str.protection_algorithm__d_s_is_not_supported_n
call fcn.004a7e84
add esp, 4
push eax
call fcn.0049d7de
add esp, 0x10
mov eax, dword [ebp + 8]
cmp byte [eax + 0x34], 1
jne 0x444886
sub esp, 0xc
push 8
call fcn.00428be2
add esp, 0x10
sub esp, 0xc
push 0
call fcn.0041e76a
add esp, 0x10
mov dword [ebp - 0x58], 0xc
jmp 0x44503d
sub esp, 0xc
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x3c]
and eax, 0xff
push eax
call fcn.004759b7
add esp, 0x10
test eax, eax
je 0x4448de
sub esp, 8
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x3c]
and eax, 0xff
push eax
push str.protection_digest__d_is_not_supported_n
call fcn.004a7e84
add esp, 4
push eax
call fcn.0049d7de
add esp, 0x10
mov dword [ebp - 0x58], 5
jmp 0x44503d
sub esp, 8
lea eax, [ebp - 0x38]
push eax
push dword [ebp + 8]
call fcn.004214a4
add esp, 0x10
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov eax, dword [ebp + 8]
cmp byte [eax + 0x30], 0
jne 0x444919
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x2c], eax
sub esp, 4
push dword [ebp + 0x14]
push dword [ebp + 0xc]
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
add eax, 0x38
push eax
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x34]
and eax, 0xff
push eax
mov eax, dword [ebp + 8]
mov al, byte [eax + 0xe]
and eax, 0xff
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.00443d86
add esp, 0x20
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x444973
cmp dword [ebp + 0x14], 0
je 0x444973
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
je 0x444973
mov dword [ebp - 0x58], 1
jmp 0x44503d
sub esp, 4
push 1
push 4
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x34]
and eax, 0xff
push eax
call fcn.00473912
add esp, 0x10
mov dword [ebp - 0x3c], eax
sub esp, 4
mov eax, dword [ebp - 0x20]
push dword [eax + 4]
mov eax, dword [ebp - 0x20]
add eax, 0x14
push eax
push dword [ebp - 0x3c]
call fcn.00473a68
add esp, 0x10
sub esp, 0xc
push dword [ebp - 0x20]
call fcn.004a2f78
add esp, 0x10
sub esp, 8
push dword [ebp + 8]
push 0
call fcn.0040c473
add esp, 0x10
mov dword [ebp - 0x40], eax
sub esp, 4
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x4c]
and eax, 0xff
push eax
mov eax, dword [ebp + 8]
add eax, 0x4d
push eax
push dword [ebp - 0x3c]
call fcn.00473a8b
add esp, 0x10
mov word [ebp - 0xe], 0
mov eax, dword [ebp + 8]
cmp byte [eax + 0xd], 3
jbe 0x444cfc
mov word [ebp - 0x4e], 0
sub esp, 0xc
mov eax, dword [ebp + 8]
mov al, byte [eax + 0xe]
and eax, 0xff
push eax
call fcn.00474eb2
add esp, 0x10
mov dword [ebp - 0x14], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
cmp dword [edx + eax*4 + 0x60], 0
je 0x444a4a
sub esp, 0xc
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
push dword [edx + eax*4 + 0x60]
call fcn.0049d092
add esp, 0x10
and eax, 4
test eax, eax
jne 0x444a5e
sub esp, 4
push 0x65
push str._home_wk_src_gpg4win_build_gpg4win_1.1.3_src_playground_build_gnupg_1.4.7_g10_seckey_cert.c
push str.mpi_is_opaque__sk__skey_i___
call sub.msvcrt.dll__assert
sub esp, 8
lea eax, [ebp - 0x44]
push eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
push dword [edx + eax*4 + 0x60]
call fcn.0049cbcf
add esp, 0x10
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x44], 1
jbe 0x444aa9
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x48]
sub eax, 2
mov al, byte [eax]
and eax, 0xff
mov edx, eax
shl edx, 8
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x48]
dec eax
mov al, byte [eax]
and eax, 0xff
or eax, edx
mov word [ebp - 0x4e], ax
sub esp, 0xc
push dword [ebp - 0x44]
call fcn.004a2e67
add esp, 0x10
mov dword [ebp - 0x4c], eax
push dword [ebp - 0x44]
push dword [ebp - 0x48]
push dword [ebp - 0x4c]
push dword [ebp - 0x3c]
call fcn.00474291
add esp, 0x10
sub esp, 0xc
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
push dword [edx + eax*4 + 0x60]
call fcn.0049ca0a
add esp, 0x10
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
mov dword [edx + eax*4 + 0x60], 0
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 8]
cmp byte [eax + 0x35], 0
je 0x444be3
mov eax, dword [ebp + 8]
mov word [eax + 0x78], 0
mov word [ebp - 0xe], 1
cmp dword [ebp - 0x44], 0x13
ja 0x444b2e
sub esp, 0xc
push str.not_enough_bytes_for_SHA_1_checksum_n
call fcn.0049d87b
add esp, 0x10
jmp 0x444c67
sub esp, 8
push 1
push 2
call fcn.00475a06
add esp, 0x10
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0
jne 0x444b5a
sub esp, 4
push str.do_check
push 0x78
push str._home_wk_src_gpg4win_build_gpg4win_1.1.3_src_playground_build_gnupg_1.4.7_g10_seckey_cert.c
call fcn.0049d962
sub esp, 4
mov eax, dword [ebp - 0x44]
sub eax, 0x14
push eax
push dword [ebp - 0x4c]
push dword [ebp - 0x54]
call fcn.00475d84
add esp, 0x10
sub esp, 0xc
push dword [ebp - 0x54]
call fcn.00475e6f
add esp, 0x10
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x4c]
lea ebx, [eax - 0x14]
sub esp, 8
push 2
push dword [ebp - 0x54]
call fcn.00475ed5
add esp, 0x10
sub esp, 4
push 0x14
push ebx
push eax
call sub.msvcrt.dll_memcmp
add esp, 0x10
test eax, eax
jne 0x444bd0
mov ebx, dword [ebp + 8]
sub esp, 8
mov eax, dword [ebp - 0x44]
sub eax, 0x14
push eax
push dword [ebp - 0x4c]
call fcn.0041e3e9
add esp, 0x10
mov word [ebp - 0xe], ax
mov ax, word [ebp - 0xe]
mov word [ebx + 0x78], ax
sub esp, 0xc
push dword [ebp - 0x54]
call fcn.00475d22
add esp, 0x10
jmp 0x444c67
cmp dword [ebp - 0x44], 1
ja 0x444c0a
sub esp, 0xc
push str.not_enough_bytes_for_checksum_n
call fcn.0049d87b
add esp, 0x10
mov eax, dword [ebp + 8]
mov word [eax + 0x78], 0
mov word [ebp - 0xe], 1
jmp 0x444c67
sub esp, 8
mov eax, dword [ebp - 0x44]
sub eax, 2
push eax
push dword [ebp - 0x4c]
call fcn.0041e3e9
add esp, 0x10
mov word [ebp - 0xe], ax
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x4c]
sub eax, 2
mov al, byte [eax]
and eax, 0xff
mov edx, eax
shl edx, 8
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x4c]
dec eax
mov al, byte [eax]
and eax, 0xff
or eax, edx
mov word [ecx + 0x78], ax
mov eax, dword [ebp + 8]
mov ax, word [eax + 0x78]
cmp ax, word [ebp - 0xe]
je 0x444c67
mov edx, dword [ebp + 8]
mov ax, word [ebp - 0x4e]
mov word [edx + 0x78], ax
mov eax, dword [ebp + 8]
mov ax, word [eax + 0x78]
cmp ax, word [ebp - 0xe]
jne 0x444ce9
sub esp, 0xc
mov eax, dword [ebp + 8]
mov al, byte [eax + 0xe]
and eax, 0xff
push eax
call fcn.00474f32
add esp, 0x10
cmp eax, dword [ebp - 0x14]
jle 0x444ce9
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x1c], eax
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 0x14]
sub esp, 4
push 1
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0x48]
call fcn.0049a6c8
add esp, 0x10
mov dword [ebx + esi*4 + 0x60], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
cmp dword [edx + eax*4 + 0x60], 0
jne 0x444cd2
mov eax, dword [ebp + 8]
mov word [eax + 0x78], 0
mov word [ebp - 0xe], 1
jmp 0x444ce9
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 0x44]
sub dword [eax], edx
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 0x48]
add dword [eax], edx
lea eax, [ebp - 0x14]
inc dword [eax]
jmp 0x444c74
sub esp, 0xc
push dword [ebp - 0x4c]
call fcn.004a2f78
add esp, 0x10
jmp 0x444ed7
sub esp, 0xc
mov eax, dword [ebp + 8]
mov al, byte [eax + 0xe]
and eax, 0xff
push eax
call fcn.00474eb2
add esp, 0x10
mov dword [ebp - 0x14], eax
sub esp, 0xc
mov eax, dword [ebp + 8]
mov al, byte [eax + 0xe]
and eax, 0xff
push eax
call fcn.00474f32
add esp, 0x10
cmp eax, dword [ebp - 0x14]
jle 0x444ed7
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
cmp dword [edx + eax*4 + 0x60], 0
je 0x444d5f
sub esp, 0xc
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
push dword [edx + eax*4 + 0x60]
call fcn.0049d092
add esp, 0x10
and eax, 4
test eax, eax
jne 0x444d76
sub esp, 4
push 0xb3
push str._home_wk_src_gpg4win_build_gpg4win_1.1.3_src_playground_build_gnupg_1.4.7_g10_seckey_cert.c
push str.mpi_is_opaque__sk__skey_i__
call sub.msvcrt.dll__assert
sub esp, 8
lea eax, [ebp - 0x48]
push eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
push dword [edx + eax*4 + 0x60]
call fcn.0049cbcf
add esp, 0x10
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x48], 1
ja 0x444daf
sub esp, 4
push 0xb5
push str._home_wk_src_gpg4win_build_gpg4win_1.1.3_src_playground_build_gnupg_1.4.7_g10_seckey_cert.c
push str.ndata___2
call sub.msvcrt.dll__assert
mov eax, dword [ebp - 0x4c]
mov al, byte [eax]
and eax, 0xff
mov edx, eax
shl edx, 8
mov eax, dword [ebp - 0x4c]
inc eax
mov al, byte [eax]
and eax, 0xff
or eax, edx
add eax, 7
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0
jns 0x444ddb
add dword [ebp - 0x60], 7
mov eax, dword [ebp - 0x60]
sar eax, 3
add eax, 2
cmp eax, dword [ebp - 0x48]
je 0x444e00
sub esp, 4
push 0xb6
push str._home_wk_src_gpg4win_build_gpg4win_1.1.3_src_playground_build_gnupg_1.4.7_g10_seckey_cert.c
push str.ndata____p_0_____8__p_1____7__8__2
call sub.msvcrt.dll__assert
sub esp, 0xc
push dword [ebp - 0x48]
call fcn.004a2e67
add esp, 0x10
mov dword [ebp - 0xc], eax
sub esp, 0xc
push dword [ebp - 0x3c]
call fcn.004743ac
add esp, 0x10
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x4c]
mov al, byte [eax]
mov byte [edx], al
mov edx, dword [ebp - 0xc]
inc edx
mov eax, dword [ebp - 0x4c]
inc eax
mov al, byte [eax]
mov byte [edx], al
mov eax, dword [ebp - 0x48]
sub eax, 2
push eax
mov eax, dword [ebp - 0x4c]
add eax, 2
push eax
mov eax, dword [ebp - 0xc]
add eax, 2
push eax
push dword [ebp - 0x3c]
call fcn.00474291
add esp, 0x10
sub esp, 8
push dword [ebp - 0x48]
push dword [ebp - 0xc]
call fcn.0041e3e9
add esp, 0x10
mov edx, eax
lea eax, [ebp - 0xe]
add word [eax], dx
sub esp, 0xc
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
push dword [edx + eax*4 + 0x60]
call fcn.0049ca0a
add esp, 0x10
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 0x14]
sub esp, 4
push 1
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0xc]
call fcn.0049a6c8
add esp, 0x10
mov dword [ebx + esi*4 + 0x60], eax
sub esp, 0xc
push dword [ebp - 0xc]
call fcn.004a2f78
add esp, 0x10
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
cmp dword [edx + eax*4 + 0x60], 0
jne 0x444ecd
mov eax, dword [ebp + 8]
mov word [eax + 0x78], 0
mov word [ebp - 0xe], 1
jmp 0x444ed7
lea eax, [ebp - 0x14]
inc dword [eax]
jmp 0x444d16
sub esp, 0xc
push dword [ebp - 0x3c]
call fcn.00473a52
add esp, 0x10
mov eax, dword [ebp + 8]
mov ax, word [eax + 0x78]
cmp ax, word [ebp - 0xe]
je 0x444f3a
sub esp, 8
push dword [ebp - 0x40]
push dword [ebp + 8]
call fcn.0040c473
add esp, 0x10
sub esp, 4
mov eax, dword [ebp + 8]
mov al, byte [eax + 0xe]
and eax, 0xff
push eax
push 0
lea eax, [ebp - 0x38]
push eax
call fcn.00443bbb
add esp, 0x10
sub esp, 0xc
push dword [ebp - 0x40]
call fcn.0040c44f
add esp, 0x10
mov dword [ebp - 0x58], 0xb
jmp 0x44503d
sub esp, 8
mov eax, dword [ebp + 8]
add eax, 0x60
push eax
mov eax, dword [ebp + 8]
mov al, byte [eax + 0xe]
and eax, 0xff
push eax
call fcn.004751ce
add esp, 0x10
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x444fa9
sub esp, 8
push dword [ebp - 0x40]
push dword [ebp + 8]
call fcn.0040c473
add esp, 0x10
sub esp, 4
mov eax, dword [ebp + 8]
mov al, byte [eax + 0xe]
and eax, 0xff
push eax
push 0
lea eax, [ebp - 0x38]
push eax
call fcn.00443bbb
add esp, 0x10
sub esp, 0xc
push dword [ebp - 0x40]
call fcn.0040c44f
add esp, 0x10
mov dword [ebp - 0x58], 0xb
jmp 0x44503d
sub esp, 0xc
push dword [ebp - 0x40]
call fcn.0040c44f
add esp, 0x10
mov eax, dword [ebp + 8]
mov byte [eax + 0x31], 0
jmp 0x445036
mov word [ebp - 0xe], 0
sub esp, 0xc
mov eax, dword [ebp + 8]
mov al, byte [eax + 0xe]
and eax, 0xff
push eax
call fcn.00474eb2
add esp, 0x10
mov dword [ebp - 0x14], eax
sub esp, 0xc
mov eax, dword [ebp + 8]
mov al, byte [eax + 0xe]
and eax, 0xff
push eax
call fcn.00474f32
add esp, 0x10
cmp eax, dword [ebp - 0x14]
jle 0x445020
sub esp, 0xc
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
push dword [edx + eax*4 + 0x60]
call fcn.0041e420
add esp, 0x10
mov edx, eax
lea eax, [ebp - 0xe]
add word [eax], dx
lea eax, [ebp - 0x14]
inc dword [eax]
jmp 0x444fe0
mov eax, dword [ebp + 8]
mov ax, word [eax + 0x78]
cmp ax, word [ebp - 0xe]
je 0x445036
mov dword [ebp - 0x58], 0xa
jmp 0x44503d
mov dword [ebp - 0x58], 0
mov eax, dword [ebp - 0x58]
lea esp, [ebp - 8]
pop ebx
pop esi
pop ebp
ret