Function at 0x40ac70
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x234
mov eax, dword [0x426004]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
push str.SW2_TRACE_LEVEL_INFO
push str.__23s::SW2_ReadRASEAPMethod__
mov eax, 0x40000
mov dword [ebp - 0x218], esi
call fcn.0040b690
movzx eax, byte [esi + 0x2008]
push eax
push str.SYSTEMCurrentControlSetServicesRasManPPPEAP
lea ecx, [ebp - 0x20c]
push str._s_ld
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
lea edx, [ebp - 0x21c]
push edx
push 1
push 0
lea eax, [ebp - 0x20c]
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x40b335
mov ecx, dword [ebp - 0x21c]
push ebx
push edi
push ecx
lea edi, [ebp - 0x234]
lea eax, [ebp - 0x214]
mov ebx, str.FriendlyName
call fcn.0040c4e0
add esp, 4
mov dword [ebp - 0x210], eax
test eax, eax
jne 0x40b2d5
mov esi, dword [ebp - 0x214]
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40ad22
sub eax, edx
sar eax, 1
mov ebx, 8
je 0x40ad90
mov eax, esi
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40ad40
sub eax, edx
sar eax, 1
add eax, 2
cmp eax, 0x100
jae 0x40ad90
mov edi, dword [ebp - 0x218]
push 0x100
add edi, 0x221c
push edi
push esi
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x40ad90
push edi
push str.SW2_TRACE_LEVEL_INFO
push str.__23s::SW2_ReadRASEAPMethod__::Friendly_Name:__s
mov eax, 0x40000
call fcn.0040b690
add esp, 0xc
jmp 0x40ad96
mov dword [ebp - 0x210], ebx
lea eax, [ebp - 0x214]
call fcn.0040bb70
cmp dword [ebp - 0x210], 0
jne 0x40b2d5
mov edx, dword [ebp - 0x21c]
push edx
lea edi, [ebp - 0x228]
lea eax, [ebp - 0x214]
mov ebx, str.ConfigUiPath
call fcn.0040c4e0
add esp, 4
mov dword [ebp - 0x210], eax
test eax, eax
jne 0x40af5a
mov esi, dword [ebp - 0x214]
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40ade7
sub eax, edx
sar eax, 1
je 0x40ae70
mov eax, esi
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40ae00
sub eax, edx
sar eax, 1
add eax, 2
cmp eax, 0x100
jae 0x40ae70
mov edi, dword [ebp - 0x218]
push 0x100
add edi, 0x241c
push edi
push esi
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x40ae50
push edi
push str.SW2_TRACE_LEVEL_INFO
push str.__23s::SW2_ReadRASEAPMethod__::ConfigUiPath:__s
mov eax, 0x40000
call fcn.0040b690
add esp, 0xc
jmp 0x40ae91
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SW2_TRACE_LEVEL_ERROR
push str.__23s::SW2_ReadRASEAPMethod__::ExpandEnvironmentStrings_Failed:__ld
mov eax, 0x10000
call fcn.0040b690
add esp, 0xc
jmp 0x40ae87
push str.SW2_TRACE_LEVEL_ERROR
push str.__23s::SW2_ReadRASEAPMethod__::ConfigUiPath_value_too_large
mov eax, 0x10000
call fcn.0040b690
add esp, 8
mov dword [ebp - 0x210], 8
lea eax, [ebp - 0x214]
call fcn.0040bb70
cmp dword [ebp - 0x210], 0
jne 0x40b2d5
mov esi, dword [ebp - 0x218]
mov ecx, dword [ebp - 0x21c]
push ecx
lea edi, [ebp - 0x230]
lea eax, [ebp - 0x214]
mov ebx, str.IdentityPath
call fcn.0040c4e0
add esp, 4
mov dword [ebp - 0x210], eax
test eax, eax
jne 0x40b084
mov ebx, dword [ebp - 0x214]
mov eax, ebx
lea edx, [eax + 2]
jmp 0x40aef0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40aef0
sub eax, edx
sar eax, 1
je 0x40af9d
mov eax, ebx
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40af10
sub eax, edx
sar eax, 1
add eax, 2
cmp eax, 0x100
jae 0x40af9d
push 0x100
lea edi, [esi + 0x261c]
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x40af8f
push edi
push str.SW2_TRACE_LEVEL_INFO
push str.__23s::SW2_ReadRASEAPMethod__::IdentityPath:__s
mov eax, 0x40000
call fcn.0040b690
add esp, 0xc
jmp 0x40afbe
push str.SW2_TRACE_LEVEL_WARNING
push str.__23s::SW2_ReadRASEAPMethod__::ConfigUiPath_not_defined__cannot_configure_EAP_method
mov eax, 0x20000
call fcn.0040b690
mov esi, dword [ebp - 0x218]
push 0x100
lea eax, [esi + 0x241c]
push 0
push eax
call fcn.00410110
add esp, 0x14
jmp 0x40aeaf
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ExpandEnvironmentStrings_Failed:__ld
jmp 0x40afa7
push str.SW2_TRACE_LEVEL_ERROR
push str.__23s::SW2_ReadRASEAPMethod__::IdentityPath_value_too_large
mov eax, 0x10000
call fcn.0040b690
mov dword [ebp - 0x210], 8
add esp, 8
lea eax, [ebp - 0x214]
call fcn.0040bb70
cmp dword [ebp - 0x210], 0
jne 0x40b2d5
mov esi, dword [ebp - 0x218]
mov eax, dword [ebp - 0x21c]
push eax
lea edi, [ebp - 0x224]
lea eax, [ebp - 0x214]
mov ebx, str.InteractiveUIPath
call fcn.0040c4e0
add esp, 4
mov dword [ebp - 0x210], eax
test eax, eax
jne 0x40b1b4
mov esi, dword [ebp - 0x214]
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40b015
sub eax, edx
sar eax, 1
je 0x40b0ce
mov eax, esi
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40b030
sub eax, edx
sar eax, 1
add eax, 2
cmp eax, 0x100
jae 0x40b0ce
mov edi, dword [ebp - 0x218]
push 0x100
add edi, 0x281c
push edi
push esi
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x40b0ae
push edi
push str.SW2_TRACE_LEVEL_INFO
push str.__23s::SW2_ReadRASEAPMethod__::InteractiveUIPath:__s
mov eax, 0x40000
call fcn.0040b690
add esp, 0xc
jmp 0x40b0ef
push str.IdentityPath_not_defined__EAP_method_not_used_for_identity
mov eax, 0x20000
call fcn.0040b690
push 0x100
lea edx, [esi + 0x261c]
push 0
push edx
call fcn.00410110
add esp, 0x10
jmp 0x40afdc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SW2_TRACE_LEVEL_ERROR
push str.__23s::SW2_ReadRASEAPMethod__::ExpandEnvironmentStrings_Failed:__ld
mov eax, 0x10000
call fcn.0040b690
add esp, 0xc
jmp 0x40b0e5
push str.SW2_TRACE_LEVEL_ERROR
push str.__23s::SW2_ReadRASEAPMethod__::InteractiveUIPath_value_too_large
mov eax, 0x10000
call fcn.0040b690
add esp, 8
mov dword [ebp - 0x210], 8
lea eax, [ebp - 0x214]
call fcn.0040bb70
cmp dword [ebp - 0x210], 0
jne 0x40b2d5
mov ecx, dword [ebp - 0x21c]
push ecx
lea edi, [ebp - 0x22c]
lea eax, [ebp - 0x214]
mov ebx, str.Path
call fcn.0040c4e0
add esp, 4
mov dword [ebp - 0x210], eax
test eax, eax
jne 0x40b2d5
mov esi, dword [ebp - 0x214]
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40b140
sub eax, edx
sar eax, 1
je 0x40b203
mov eax, esi
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40b160
sub eax, edx
sar eax, 1
add eax, 2
cmp eax, 0x100
jae 0x40b203
mov edi, dword [ebp - 0x218]
push 0x100
add edi, 0x2a1c
push edi
push esi
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x40b1e3
push edi
push str.SW2_TRACE_LEVEL_INFO
push str.__23s::SW2_ReadRASEAPMethod__::Path:__s
mov eax, 0x40000
call fcn.0040b690
add esp, 0xc
jmp 0x40b224
push str.SW2_TRACE_LEVEL_WARNING
push str.__23s::SW2_ReadRASEAPMethod__::InteractiveUIPath_not_defined__EAP_method_not_used_for_interactive_UI
mov eax, 0x20000
call fcn.0040b690
push 0x100
push 0
add esi, 0x261c
push esi
call fcn.00410110
add esp, 0x14
jmp 0x40b107
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SW2_TRACE_LEVEL_ERROR
push str.__23s::SW2_ReadRASEAPMethod__::ExpandEnvironmentStrings_Failed:__ld
mov eax, 0x10000
call fcn.0040b690
add esp, 0xc
jmp 0x40b21a
push str.SW2_TRACE_LEVEL_ERROR
push str.__23s::SW2_ReadRASEAPMethod__::Path_value_too_large
mov eax, 0x10000
call fcn.0040b690
add esp, 8
mov dword [ebp - 0x210], 8
lea eax, [ebp - 0x214]
call fcn.0040bb70
cmp dword [ebp - 0x210], 0
jne 0x40b2d5
mov edi, dword [ebp - 0x218]
mov edx, dword [ebp - 0x21c]
push edx
lea ecx, [edi + 0x2c1c]
mov esi, str.InvokeUsernameDialog
mov dword [edi + 0x2c1c], 0
call fcn.0040c480
add esp, 4
test eax, eax
je 0x40b274
mov dword [edi + 0x2c1c], 0
mov eax, dword [edi + 0x2c1c]
push eax
push str.SW2_TRACE_LEVEL_INFO
push str.__23s::SW2_ReadRASEAPMethod__::dwInvokeUsernameDlg:__ld
mov eax, 0x40000
call fcn.0040b690
mov ecx, dword [ebp - 0x21c]
push ecx
lea ecx, [edi + 0x2c20]
mov esi, str.InvokePasswordDialog
call fcn.0040c480
add esp, 0x10
test eax, eax
je 0x40b2b7
mov dword [edi + 0x2c20], 0
mov edx, dword [edi + 0x2c20]
push edx
push str.SW2_TRACE_LEVEL_INFO
push str.__23s::SW2_ReadRASEAPMethod__::dwInvokePasswordDlg:__ld
mov eax, 0x40000
call fcn.0040b690
add esp, 0xc
mov eax, dword [ebp - 0x21c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x210], 0
pop edi
pop ebx
jne 0x40b306
mov eax, dword [ebp - 0x218]
cmp byte [eax + 0x2008], 6
jne 0x40b306
mov dword [eax + 0x2014], 0x71ba
mov esi, dword [ebp - 0x210]
push esi
push str.SW2_TRACE_LEVEL_INFO
push str.__23s::SW2_ReadRASEAPMethod__::returning__ld
mov eax, 0x40000
call fcn.0040b690
mov ecx, dword [ebp - 4]
add esp, 0xc
mov eax, esi
xor ecx, ebp
pop esi
call fcn.0040f43d
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x210], 0x3f3
jmp 0x40b306