Function at 0x435421
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [str.PRIVATE_DO_X]
mov dword [ebp - 0x18], eax
mov eax, dword [0x4deaf7]
mov dword [ebp - 0x14], eax
mov eax, dword [0x4deafb]
mov dword [ebp - 0x10], eax
mov al, byte [0x4deaff]
mov byte [ebp - 0xc], al
cmp dword [ebp + 0xc], 0
jle 0x435455
cmp dword [ebp + 0xc], 4
jg 0x435455
jmp 0x43546c
sub esp, 4
push 0x2d6
push str._home_wk_src_gpg4win_build_gpg4win_1.1.3_src_playground_build_gnupg_1.4.7_g10_card_util.c
push str.nr___1__nr___4
call sub.msvcrt.dll__assert
mov eax, dword [ebp + 0xc]
add eax, 0x30
mov byte [ebp - 0xd], al
cmp dword [ebp + 8], 0
je 0x4355e1
sub esp, 8
push 0x3c
push dword [ebp + 8]
call sub.msvcrt.dll_strchr
add esp, 0x10
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
test eax, eax
je 0x4355e1
inc dword [ebp + 8]
mov eax, dword [ebp + 8]
cmp byte [eax], 0x20
je 0x4354b2
mov eax, dword [ebp + 8]
cmp byte [eax], 9
je 0x4354b2
jmp 0x4354b7
inc dword [ebp + 8]
jmp 0x4354a0
sub esp, 8
push 0x4dea30
push dword [ebp + 8]
call sub.msvcrt.dll_fopen
add esp, 0x10
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
je 0x435508
sub esp, 0xc
mov eax, dword [ebp - 0x28]
push dword [eax + 0x10]
call fcn.0041e3a9
add esp, 0x10
test eax, eax
je 0x435508
sub esp, 0xc
push dword [ebp - 0x28]
call sub.msvcrt.dll_fclose
add esp, 0x10
mov dword [ebp - 0x28], 0
call sub.msvcrt.dll__errno
mov dword [eax], 1
cmp dword [ebp - 0x28], 0
jne 0x43554f
sub esp, 4
sub esp, 8
sub esp, 4
call sub.msvcrt.dll__errno
add esp, 4
push dword [eax]
call sub.msvcrt.dll_strerror
add esp, 0xc
push eax
push dword [ebp + 8]
push 0x4dea33
call fcn.004a7e84
add esp, 4
push eax
call fcn.004a0b14
add esp, 0x10
mov dword [ebp - 0x2c], 0xffffffff
jmp 0x4356c9
sub esp, 0xc
push 0xfe
call fcn.004a2e27
add esp, 0x10
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x28]
push 0xfe
push 1
push dword [ebp - 0x1c]
call sub.msvcrt.dll_fread
add esp, 0x10
mov dword [ebp - 0x20], eax
sub esp, 0xc
push dword [ebp - 0x28]
call sub.msvcrt.dll_fclose
add esp, 0x10
cmp dword [ebp - 0x20], 0
jns 0x43563b
sub esp, 4
sub esp, 8
sub esp, 4
call sub.msvcrt.dll__errno
add esp, 4
push dword [eax]
call sub.msvcrt.dll_strerror
add esp, 0xc
push eax
push dword [ebp + 8]
push 0x4dea48
call fcn.004a7e84
add esp, 4
push eax
call fcn.004a0b14
add esp, 0x10
sub esp, 0xc
push dword [ebp - 0x1c]
call fcn.004a2f78
add esp, 0x10
mov dword [ebp - 0x2c], 0xffffffff
jmp 0x4356c9
sub esp, 8
sub esp, 4
push str.Private_DO_data:
call fcn.004a7e84
add esp, 8
push eax
push str.cardedit.change_private_do
call fcn.0042919e
add esp, 0x10
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x435617
mov dword [ebp - 0x2c], 0xffffffff
jmp 0x4356c9
sub esp, 0xc
push dword [ebp - 0x1c]
call fcn.0049f3bc
add esp, 0x10
call fcn.004292da
sub esp, 0xc
push dword [ebp - 0x1c]
call sub.msvcrt.dll_strlen
add esp, 0x10
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0xfe
jle 0x435679
sub esp, 8
push 0xfe
push str.Error:_Private_DO_too_long__limit_is__d_characters_._n
call fcn.004a7e84
add esp, 4
push eax
call fcn.004a0b14
add esp, 0x10
sub esp, 0xc
push dword [ebp - 0x1c]
call fcn.004a2f78
add esp, 0x10
mov dword [ebp - 0x2c], 0xffffffff
jmp 0x4356c9
push 0
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
lea eax, [ebp - 0x18]
push eax
call fcn.00431bb1
add esp, 0x10
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x4356b5
sub esp, 8
sub esp, 4
push dword [ebp - 0x24]
call fcn.004a8910
add esp, 8
push eax
push str.error_setting_private_DO:__s_n
call fcn.0049d87b
add esp, 0x10
sub esp, 0xc
push dword [ebp - 0x1c]
call fcn.004a2f78
add esp, 0x10
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
leave
ret