Function at 0x445a10
Capabilities:
Set environment variable

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x6c
mov ebp, dword [esp + 0x88]
call fcn.00445790
mov eax, dword [esp + 0x84]
mov dword [eax], 0
mov eax, dword [0x4913fc]
mov dword [esp + 0x38], eax
test eax, eax
je 0x445c82
cmp byte [eax], 0
je 0x445c82
mov ebx, dword [ebp]
test ebx, ebx
je 0x445c9d
xor edx, edx
jmp 0x445a62
mov edx, eax
lea eax, [edx + 1]
mov ecx, dword [ebp + eax*4]
test ecx, ecx
jne 0x445a60
add edx, 3
mov dword [esp + 4], 4
mov dword [esp], edx
call sub.libgcrypt_20.dll_gcry_calloc
mov dword [esp + 0x3c], eax
test eax, eax
je 0x445f00
mov ebx, dword [ebp]
mov esi, eax
mov edx, ebp
xor eax, eax
mov ebp, esi
test ebx, ebx
jne 0x445ab7
jmp 0x445b20
add eax, 1
mov dword [ebp], ebx
add ebp, 4
lea ecx, [eax*4]
mov ebx, dword [edx + ecx]
test ebx, ebx
je 0x445b20
test eax, eax
jne 0x445aa0
mov edi, dword [edx + 4]
mov dword [esp + 0x34], edi
test edi, edi
je 0x445aa0
mov esi, dword [edx]
mov ecx, 7
mov edi, str.__pass
repe cmpsb byte [esi], byte es:[edi]
seta cl
sbb cl, 0
test cl, cl
jne 0x445aa0
mov eax, dword [esp + 0x34]
mov dword [ebp], str.__env_pass
add ebp, 4
mov dword [esp + 0x88], edx
mov dword [esp + 4], eax
mov dword [esp], str.DIRMNGR_LDAP_PASS
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
mov ecx, 8
mov eax, 2
sub esp, 8
mov edx, dword [esp + 0x88]
mov ebx, dword [edx + ecx]
test ebx, ebx
jne 0x445ab7
nop
mov dword [esp + 4], 0x38
mov dword [esp], 1
call sub.libgcrypt_20.dll_gcry_calloc
mov esi, eax
test eax, eax
je 0x445e34
lea eax, [esp + 0x50]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x20], eax
lea eax, [esp + 0x58]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x54]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.00464830
mov dword [esp], edi
mov ebx, eax
call sub.libgcrypt_20.dll_gcry_free
test ebx, ebx
jne 0x445cb0
mov eax, dword [esp + 0x50]
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov eax, dword [esp + 0x54]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x58]
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x80]
add dword [eax + 4], 1
mov dword [esi + 0x18], eax
mov dword [esp], 0
call sub.msvcrt.dll_time
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x84]
mov dword [esp], eax
call sub.libksba_8.dll_ksba_reader_new
mov ebx, eax
test eax, eax
je 0x445ce2
mov dword [esp], ebx
call sub.libgpg_error_0.dll_gpg_strerror
mov dword [esp], str.error_initializing_reader_object:__s_n
mov edi, eax
call sub.libgpg_error_0.dll__gpg_w32_gettext
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.0044dbb0
mov eax, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x445e1c
mov eax, dword [esi + 0x20]
mov dword [esp], eax
call fcn.004674b8
mov eax, dword [esi + 0xc]
mov dword [esp], eax
call sub.libgpg_error_0.dll_gpgrt_fclose
mov eax, dword [esi + 0x14]
mov dword [esi + 0xc], 0
mov dword [esp], eax
call sub.libgpg_error_0.dll_gpgrt_fclose
mov eax, dword [esi + 0x24]
mov dword [esi + 0x14], 0
mov dword [esp], eax
call sub.libgcrypt_20.dll_gcry_free
mov dword [esp], esi
call sub.libgcrypt_20.dll_gcry_free
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004674b8
mov eax, dword [esp + 0x84]
mov dword [eax], 0
add esp, 0x6c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], 0xb
call fcn.004518a0
mov ebx, dword [ebp]
mov dword [esp + 0x38], eax
test ebx, ebx
jne 0x445a55
mov edx, 2
jmp 0x445a70
mov dword [esp], esi
call sub.libgcrypt_20.dll_gcry_free
mov dword [esp], ebx
call sub.libgpg_error_0.dll_gpg_strerror
mov dword [esp], 0x486900
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
call fcn.0044dbb0
add esp, 0x6c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x84]
mov dword [esp + 8], esi
mov dword [esp + 4], 0x4446e0
mov eax, dword [eax]
mov dword [esp], eax
call sub.libksba_8.dll_ksba_reader_set_cb
mov ebx, eax
test eax, eax
jne 0x445bea
mov dword [esp], 0x478884
call sub.libnpth_0.dll_npth_mutex_lock
test eax, eax
jne 0x445f48
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
mov dword [esi + 0x20], eax
mov eax, dword [0x49090c]
mov dword [0x49090c], esi
mov dword [esi], eax
mov dword [esp], 0x478880
call sub.libnpth_0.dll_npth_cond_signal
test eax, eax
jne 0x445e90
mov dword [esp], 0x478884
call sub.libnpth_0.dll_npth_mutex_unlock
test eax, eax
jne 0x445f43
test byte [0x4913e1], 0x40
jne 0x445ed0
mov eax, dword [esp + 0x84]
mov ebp, 1
lea esi, [esp + 0x4f]
mov edi, dword [eax]
lea esi, [esi]
lea eax, [esp + 0x5c]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], eax
mov dword [esp + 4], esi
mov dword [esp], edi
call sub.libksba_8.dll_ksba_reader_read
test eax, eax
jne 0x445dd3
mov edx, dword [esp + 0x5c]
add esi, edx
sub ebp, edx
jne 0x445d80
mov ebx, eax
lea eax, [esp + 0x4f]
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
mov dword [esp], eax
call sub.libksba_8.dll_ksba_reader_unread
add esp, 0x6c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, eax
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
test eax, eax
je 0x445df0
call fcn.00444e10
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004674b8
mov eax, dword [esp + 0x84]
cmp bx, 0x3fff
mov dword [eax], 0
mov eax, 0xa00003a
cmove ebx, eax
add esp, 0x6c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], eax
call fcn.00465c60
mov eax, dword [esi + 4]
mov dword [esp], eax
call fcn.00465a60
jmp 0x445c18
call sub.libgpg_error_0.dll_gpg_err_code_from_syserror
mov ebx, eax
movzx eax, ax
or eax, 0xa000000
test ebx, ebx
cmovne ebx, eax
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp], str.error_allocating_memory:__s_n
mov esi, eax
call sub.libgpg_error_0.dll__gpg_w32_gettext
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.0044dbb0
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call sub.libgcrypt_20.dll_gcry_free
add esp, 0x6c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
call dword [sym.imp.msvcrt.dll__errno]
mov ebx, dword [eax]
call sub.libgpg_error_0.dll_gpg_err_code_from_syserror
movzx edx, ax
or edx, 0xa000000
test eax, eax
cmovne eax, edx
mov dword [esp], eax
call sub.libgpg_error_0.dll_gpg_strerror
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], str.ldap_wrapper:_Ooops:_signaling_condition_failed:__s___d__n
call fcn.0044dbb0
jmp 0x445d4a
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 8], eax
mov eax, dword [esi + 4]
mov dword [esp], str.ldap_wrapper__d_started___p___s__n
mov dword [esp + 4], eax
call fcn.0044ddd0
jmp 0x445d6b
call sub.libgpg_error_0.dll_gpg_err_code_from_syserror
mov ebx, eax
movzx eax, ax
or eax, 0xa000000
test ebx, ebx
cmovne ebx, eax
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp], str.error_allocating_memory:__s_n
mov esi, eax
call sub.libgpg_error_0.dll__gpg_w32_gettext
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.0044dbb0
jmp 0x445cd8
call fcn.00444b50
call fcn.00444b10
nop
nop
nop