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

Disassembly:
sub esp, 0x3c
push ebx
push ebp
mov ebp, dword [esp + 0x4c]
push esi
push edi
mov edi, dword [esp + 0x50]
cmp dword [edi + 4], 0
mov esi, eax
je 0x420f03
test ebp, ebp
mov dword [esp + 0x1c], 0
je 0x42084c
mov eax, dword [ebp + 8]
test eax, eax
jl 0x42084c
push 0
push 0
push eax
call dword [sym.imp.MSVCR80.dll__lseek]
add esp, 0xc
cmp esi, 1
jne 0x420b5d
push str.OpenVPN_CLIENT_LIST
mov ecx, ebp
call fcn.0044c8b0
add esp, 4
push 0
push 0
push 0
push 0
lea eax, [esp + 0x2c]
call fcn.004345a0
push eax
push str.Updated__s
mov ecx, ebp
call fcn.0044c8b0
push str.Common_Name_Real_Address_Bytes_Received_Bytes_Sent_Connected_Since
mov ecx, ebp
call fcn.0044c8b0
mov eax, dword [edi + 4]
add esp, 0x1c
push eax
lea esi, [esp + 0x2c]
call fcn.004140e0
add esp, 4
call fcn.00414180
test eax, eax
je 0x420972
mov edi, edi
mov esi, dword [eax]
cmp dword [esi + 0x24], 0
mov dword [esp + 0x18], 0
jne 0x420961
lea ecx, [esi + 0x40]
lea edx, [esp + 0x18]
call fcn.0041cc60
mov ebx, eax
mov eax, dword [esi + 0x85c]
test eax, eax
je 0x4208fd
mov edi, dword [eax + 0x1b0]
test edi, edi
je 0x4208fd
mov eax, edi
lea edx, [eax + 1]
jmp 0x4208f0
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4208f0
sub eax, edx
jne 0x420902
mov edi, str.UNDEF
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x30]
push 0
push 0
push ecx
push edx
lea eax, [esp + 0x28]
call fcn.004345a0
mov ecx, dword [esi + 0x7c0]
mov edx, dword [esi + 0x7b4]
push eax
mov eax, dword [esi + 0x7c4]
push eax
mov eax, dword [esi + 0x7b0]
push ecx
push edx
push eax
push ebx
push edi
push str._s__s__I64u__I64u__s
mov ecx, ebp
call fcn.0044c8b0
mov eax, dword [esp + 0x48]
add esp, 0x30
test eax, eax
je 0x420961
mov edi, dword [sym.imp.MSVCR80.dll_free]
mov esi, dword [eax]
push eax
call edi
add esp, 4
test esi, esi
mov eax, esi
jne 0x420953
lea esi, [esp + 0x28]
call fcn.00414180
test eax, eax
jne 0x4208b0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4209a6
cmp dword [esp + 0x3c], 0
je 0x420996
mov ebx, dword [esp + 0x28]
push eax
call fcn.00414010
add esp, 4
mov dword [esp + 0x3c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x38], 0
push str.ROUTING_TABLE
mov ecx, ebp
call fcn.0044c8b0
add esp, 4
push str.Virtual_Address_Common_Name_Real_Address_Last_Ref
mov ecx, ebp
call fcn.0044c8b0
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx + 8]
add esp, 4
push edx
lea esi, [esp + 0x2c]
call fcn.004140e0
add esp, 4
call fcn.00414180
test eax, eax
je 0x420aff
mov esi, dword [eax]
mov edi, dword [esi + 0x18]
cmp dword [edi + 0x24], 0
mov dword [esp + 0x18], 0
jne 0x420aee
mov eax, dword [esi + 0x1c]
mov ecx, eax
and ecx, 1
je 0x420a18
mov edx, dword [esp + 0x50]
mov edx, dword [edx + 0x24]
mov ebx, dword [esi + 0x20]
cmp ebx, dword [edx]
jne 0x420aee
test al, 2
je 0x420a47
mov eax, dword [esp + 0x50]
mov edx, dword [eax + 0x24]
mov eax, dword [edx + 4]
cdq
add eax, dword [esi + 0x28]
adc edx, dword [esi + 0x2c]
cmp edx, dword [0x5424f4]
jl 0x420aee
jg 0x420a47
cmp eax, dword [0x5424f0]
jb 0x420aee
test ecx, ecx
mov byte [esp + 0x14], 0
mov byte [esp + 0x15], 0
je 0x420a5a
mov byte [esp + 0x14], 0x43
lea ecx, [edi + 0x40]
lea edx, [esp + 0x18]
call fcn.0041cc60
mov ebp, eax
mov eax, dword [edi + 0x85c]
test eax, eax
je 0x420a8e
mov ebx, dword [eax + 0x1b0]
test ebx, ebx
je 0x420a8e
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x420a81
sub eax, edx
jne 0x420a93
mov ebx, str.UNDEF
lea edx, [esp + 0x18]
mov ecx, esi
call fcn.0041cc60
mov ecx, dword [esi + 0x28]
push 0
mov edi, eax
mov eax, dword [esi + 0x2c]
push 0
push eax
push ecx
lea eax, [esp + 0x28]
call fcn.004345a0
mov ecx, dword [esp + 0x64]
push eax
push ebp
push ebx
lea edx, [esp + 0x30]
push edx
push edi
push str._s_s__s__s__s
call fcn.0044c8b0
mov eax, dword [esp + 0x40]
add esp, 0x28
test eax, eax
je 0x420aee
mov edi, dword [sym.imp.MSVCR80.dll_free]
lea ecx, [ecx]
mov esi, dword [eax]
push eax
call edi
add esp, 4
test esi, esi
mov eax, esi
jne 0x420ae0
lea esi, [esp + 0x28]
call fcn.00414180
test eax, eax
jne 0x4209e5
mov eax, dword [esp + 0x30]
test eax, eax
je 0x420b1b
cmp dword [esp + 0x3c], 0
je 0x420b1b
mov ebx, dword [esp + 0x28]
push eax
call fcn.00414010
add esp, 4
mov esi, dword [esp + 0x54]
push str.GLOBAL_STATS
mov ecx, esi
call fcn.0044c8b0
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x14]
add esp, 4
test eax, eax
je 0x420b4c
mov ecx, dword [eax + 0x10]
push ecx
push str.Max_bcast_mcast_queue_length__d
mov ecx, esi
call fcn.0044c8b0
add esp, 8
push 0x514424
mov ecx, esi
call fcn.0044c8b0
jmp 0x420edf
cmp esi, 2
je 0x420b7a
cmp esi, 3
je 0x420b7d
push str.ERROR:_bad_status_format_version_number
mov ecx, ebp
call fcn.0044c8b0
mov esi, ebp
jmp 0x420edf
cmp esi, 3
setne al
sub al, 1
and al, 0xdd
add al, 0x2c
movsx edi, al
push str.OpenVPN_2.1.1_Win32_MSVC__SSL___LZO2___PKCS11__built_on_Apr_20_2010
push edi
push str.TITLE_c_s
mov ecx, ebp
call fcn.0044c8b0
mov eax, dword [0x5424f0]
mov edx, dword [0x5424f4]
add esp, 0xc
push eax
push edi
push 0
push 0
push edx
push eax
lea eax, [esp + 0x34]
call fcn.004345a0
add esp, 0x10
push eax
push edi
push str.TIME_c_s_c_u
mov ecx, ebp
call fcn.0044c8b0
add esp, 0x14
push edi
push edi
push edi
push edi
push edi
push edi
push edi
push edi
push str.HEADER_cCLIENT_LIST_cCommon_Name_cReal_Address_cVirtual_Address_cBytes_Received_cBytes_Sent_cConnected_Since_cConnected_Since__time_t_
mov ecx, ebp
call fcn.0044c8b0
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + 4]
add esp, 0x24
push ecx
lea esi, [esp + 0x2c]
call fcn.004140e0
add esp, 4
call fcn.00414180
test eax, eax
je 0x420cf7
jmp 0x420c10
mov esi, dword [eax]
cmp dword [esi + 0x24], 0
mov dword [esp + 0x18], 0
jne 0x420ce6
lea ecx, [esi + 0x40]
lea edx, [esp + 0x18]
call fcn.0041cc60
mov ebp, eax
mov eax, dword [esi + 0x85c]
test eax, eax
je 0x420c5d
mov ebx, dword [eax + 0x1b0]
test ebx, ebx
je 0x420c5d
mov eax, ebx
lea edx, [eax + 1]
jmp 0x420c50
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x420c50
sub eax, edx
jne 0x420c62
mov ebx, str.UNDEF
mov edx, dword [esi + 0x30]
mov eax, dword [esi + 0x34]
push edx
push edi
push 0
push 0
push eax
mov ecx, edx
push ecx
lea eax, [esp + 0x30]
call fcn.004345a0
mov edx, dword [esi + 0x7c4]
mov ecx, dword [esi + 0x7b4]
add esp, 0x10
push eax
mov eax, dword [esi + 0x7c0]
push edi
push edx
mov edx, dword [esi + 0x7b0]
push eax
mov eax, dword [esi + 0x6c]
push edi
push ecx
push edx
push edi
push 1
push eax
lea eax, [esp + 0x48]
call fcn.004420a0
mov ecx, dword [esp + 0x84]
add esp, 8
push eax
push edi
push ebp
push edi
push ebx
push edi
push str.CLIENT_LIST_c_s_c_s_c_s_c_I64u_c_I64u_c_s_c_u
call fcn.0044c8b0
mov eax, dword [esp + 0x5c]
add esp, 0x44
test eax, eax
je 0x420ce6
mov ebx, dword [sym.imp.MSVCR80.dll_free]
mov esi, dword [eax]
push eax
call ebx
add esp, 4
test esi, esi
mov eax, esi
jne 0x420cd8
lea esi, [esp + 0x28]
call fcn.00414180
test eax, eax
jne 0x420c10
mov eax, dword [esp + 0x30]
test eax, eax
je 0x420d2b
cmp dword [esp + 0x3c], 0
je 0x420d1b
mov ebx, dword [esp + 0x28]
push eax
call fcn.00414010
add esp, 4
mov dword [esp + 0x3c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x38], 0
mov ecx, dword [esp + 0x54]
push edi
push edi
push edi
push edi
push edi
push edi
push str.HEADER_cROUTING_TABLE_cVirtual_Address_cCommon_Name_cReal_Address_cLast_Ref_cLast_Ref__time_t_
call fcn.0044c8b0
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx + 8]
add esp, 0x1c
push edx
lea esi, [esp + 0x2c]
call fcn.004140e0
add esp, 4
call fcn.00414180
test eax, eax
je 0x420e8f
mov esi, dword [eax]
mov ebx, dword [esi + 0x18]
cmp dword [ebx + 0x24], 0
mov dword [esp + 0x18], 0
jne 0x420e7e
mov eax, dword [esi + 0x1c]
mov ecx, eax
and ecx, 1
je 0x420d96
mov edx, dword [esp + 0x50]
mov edx, dword [edx + 0x24]
mov ebp, dword [esi + 0x20]
cmp ebp, dword [edx]
jne 0x420e7e
test al, 2
je 0x420dc5
mov eax, dword [esp + 0x50]
mov edx, dword [eax + 0x24]
mov eax, dword [edx + 4]
cdq
add eax, dword [esi + 0x28]
adc edx, dword [esi + 0x2c]
cmp edx, dword [0x5424f4]
jl 0x420e7e
jg 0x420dc5
cmp eax, dword [0x5424f0]
jb 0x420e7e
test ecx, ecx
mov byte [esp + 0x14], 0
mov byte [esp + 0x15], 0
je 0x420dd8
mov byte [esp + 0x14], 0x43
lea ecx, [ebx + 0x40]
lea edx, [esp + 0x18]
call fcn.0041cc60
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x85c]
test eax, eax
je 0x420e0e
mov ebp, dword [eax + 0x1b0]
test ebp, ebp
je 0x420e0e
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x420e01
sub eax, edx
jne 0x420e13
mov ebp, str.UNDEF
lea edx, [esp + 0x18]
mov ecx, esi
call fcn.0041cc60
mov ecx, dword [esi + 0x2c]
mov ebx, eax
mov eax, dword [esi + 0x28]
push eax
push edi
push 0
push 0
mov edx, eax
push ecx
push edx
lea eax, [esp + 0x30]
call fcn.004345a0
add esp, 0x10
push eax
mov eax, dword [esp + 0x2c]
push edi
push eax
push edi
push ebp
push edi
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x78]
push ebx
push edi
push str.ROUTING_TABLE_c_s_s_c_s_c_s_c_s_c_u
call fcn.0044c8b0
mov eax, dword [esp + 0x48]
add esp, 0x30
test eax, eax
je 0x420e7e
mov ebx, dword [sym.imp.MSVCR80.dll_free]
lea esp, [esp]
mov esi, dword [eax]
push eax
call ebx
add esp, 4
test esi, esi
mov eax, esi
jne 0x420e70
lea esi, [esp + 0x28]
call fcn.00414180
test eax, eax
jne 0x420d63
mov eax, dword [esp + 0x30]
test eax, eax
je 0x420eab
cmp dword [esp + 0x3c], 0
je 0x420eab
mov ebx, dword [esp + 0x28]
push eax
call fcn.00414010
add esp, 4
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 0x14]
test eax, eax
je 0x420ecd
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x54]
push eax
push edi
push edi
push str.GLOBAL_STATS_cMax_bcast_mcast_queue_length_c_d
call fcn.0044c8b0
add esp, 0x10
mov ecx, dword [esp + 0x54]
push 0x514424
call fcn.0044c8b0
mov esi, dword [esp + 0x58]
add esp, 4
call fcn.0044c7c0
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x420f03
mov edi, dword [sym.imp.MSVCR80.dll_free]
mov esi, dword [eax]
push eax
call edi
add esp, 4
test esi, esi
mov eax, esi
jne 0x420ef5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret