Function at 0x409350
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x804580]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
push 0x16
push str.vmsBtFile_LoadFromFile
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov ecx, dword [0x8176f8]
xor eax, eax
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test ecx, ecx
jne 0x4093ac
push edi
call ebx
mov ecx, eax
xor eax, eax
mov dword [0x8176f8], ecx
test ecx, ecx
je 0x4093bf
cmp dword [ebp - 8], 0x10
lea eax, [ebp - 0x1c]
cmovae eax, dword [ebp - 0x1c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 8]
mov dword [esi], eax
cmp edx, 0x10
jb 0x4093f5
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4093eb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a615
push edx
push ecx
call fcn.004382df
add esp, 8
push 0x19
push str.vmsBtSession_SetUserAgent
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x40942f
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x409444
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov edx, dword [ebp - 8]
mov dword [esi + 4], ecx
cmp edx, 0x10
jb 0x40947b
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409471
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a61a
push edx
push ecx
call fcn.004382df
add esp, 8
push 0x1a
push str.vmsBtSession_DisableOsCash
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x4094b5
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x4094ca
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov edx, dword [ebp - 8]
mov dword [esi + 8], ecx
cmp edx, 0x10
jb 0x409501
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4094f7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a61f
push edx
push ecx
call fcn.004382df
add esp, 8
push 0x1d
push str.vmsBtSession_SetDownloadLimit
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x40953b
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x409550
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov edx, dword [ebp - 8]
mov dword [esi + 0xc], ecx
cmp edx, 0x10
jb 0x409587
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40957d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a624
push edx
push ecx
call fcn.004382df
add esp, 8
push 0x1b
push str.vmsBtSession_SetUploadLimit
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x4095c1
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x4095d6
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov edx, dword [ebp - 8]
mov dword [esi + 0x10], ecx
cmp edx, 0x10
jb 0x40960d
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409603
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a629
push edx
push ecx
call fcn.004382df
add esp, 8
push 0x16
push str.vmsBtFile_GetFileCount
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x409647
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x40965c
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov edx, dword [ebp - 8]
mov dword [esi + 0x14], ecx
cmp edx, 0x10
jb 0x409693
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409689
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a62e
push edx
push ecx
call fcn.004382df
add esp, 8
push 0x1b
push str.vmsBtSession_CreateDownload
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x4096cd
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x4096e2
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov edx, dword [ebp - 8]
mov dword [esi + 0x18], ecx
cmp edx, 0x10
jb 0x409719
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40970f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a633
push edx
push ecx
call fcn.004382df
add esp, 8
push 0x14
push str.vmsBtDownload_Resume
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x409753
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x409768
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov edx, dword [ebp - 8]
mov dword [esi + 0x1c], ecx
cmp edx, 0x10
jb 0x40979f
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409795
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a638
push edx
push ecx
call fcn.004382df
add esp, 8
push 0x16
push str.vmsBtDownload_GetState
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x4097d9
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x4097ee
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov edx, dword [ebp - 8]
mov dword [esi + 0x20], ecx
cmp edx, 0x10
jb 0x409825
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40981b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a63d
push edx
push ecx
call fcn.004382df
add esp, 8
push 0x1c
push str.vmsBtDownload_GetPercentDone
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x40985f
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x409874
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov edx, dword [ebp - 8]
mov dword [esi + 0x24], ecx
cmp edx, 0x10
jb 0x4098ab
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4098a1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a642
push edx
push ecx
call fcn.004382df
add esp, 8
push 0x1d
push str.vmsBtDownload_GetPeerInfoList
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x4098e5
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x4098fa
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov edx, dword [ebp - 8]
mov dword [esi + 0x28], ecx
cmp edx, 0x10
jb 0x409931
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409927
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a647
push edx
push ecx
call fcn.004382df
add esp, 8
push 0x16
push str.vmsBtFile_GetFileName2
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x40996b
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x409980
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov edx, dword [ebp - 8]
mov dword [esi + 0x2c], ecx
cmp edx, 0x10
jb 0x4099b7
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4099ad
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a64c
push edx
push ecx
call fcn.004382df
add esp, 8
push 0x17
push str.vmsBtFile_GetPieceCount
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x4099f1
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x409a06
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov edx, dword [ebp - 8]
mov dword [esi + 0x30], ecx
cmp edx, 0x10
jb 0x409a3d
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409a33
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a651
push edx
push ecx
call fcn.004382df
add esp, 8
push 0x26
push str.vmsBtDownloadPeerInfoList_GetPeerCount
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x409a77
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x409a8c
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov edx, dword [ebp - 8]
mov dword [esi + 0x34], ecx
cmp edx, 0x10
jb 0x409ac3
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409ab9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a656
push edx
push ecx
call fcn.004382df
add esp, 8
push 0x24
push str.vmsBtDownloadPeerInfoList_UpdateList
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x409afd
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x409b12
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov edx, dword [ebp - 8]
mov dword [esi + 0x38], ecx
cmp edx, 0x10
jb 0x409b49
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409b3f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a65b
push edx
push ecx
call fcn.004382df
add esp, 8
push 0x26
push str.vmsBtSession_GetTotalUploadedByteCount
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x409b83
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x409b98
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov edx, dword [ebp - 8]
mov dword [esi + 0x3c], ecx
cmp edx, 0x10
jb 0x409bcf
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409bc5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a660
push edx
push ecx
call fcn.004382df
add esp, 8
push 0x21
push str.vmsBtDownload_set_ConnectionLimit
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x409c09
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x409c1e
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov edx, dword [ebp - 8]
mov dword [esi + 0x40], ecx
cmp edx, 0x10
jb 0x409c55
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409c4b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a665
push edx
push ecx
call fcn.004382df
add esp, 8
push 0x1c
push str.vmsBtFile_LoadFromMagnetLink
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x409c8f
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x409ca4
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x44], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x1d
push str.vmsBtSession_GetPersistObject
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x409ce9
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x409cfe
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x48], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x11
push str.vmsBtFile_Release
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x409d43
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x409d58
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x4c], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x1a
push str.vmsBtPersistObject_isDirty
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x409d9d
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x409db2
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x50], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x1a
push str.vmsBtSession_DHT_isStarted
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x409df7
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x409e0c
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x54], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x21
push str.vmsBtPersistObject_GetStateBuffer
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x409e51
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x409e66
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x58], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x16
push str.vmsBtSession_DHT_start
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x409eab
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x409ec0
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x5c], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x1d
push str.vmsBtSession_LocalPeers_start
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x409f05
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x409f1a
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x60], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x17
push str.vmsBtSession_UPNP_start
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x409f5f
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x409f74
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x64], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x16
push str.vmsBtSession_UPNP_stop
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x409fb9
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x409fce
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x68], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x19
push str.vmsBtSession_NATPMP_start
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x40a013
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x40a028
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x6c], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x18
push str.vmsBtSession_NATPMP_stop
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x40a06d
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x40a082
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x70], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x10
push str.vmsBtFile_Create
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x40a0c7
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x40a0dc
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x74], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x13
push str.vmsBtSession_Create
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x40a121
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x40a136
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x78], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x1b
push str.vmsBtDownloadPeerInfo_GetIp
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x40a17b
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x40a190
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x7c], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x1f
push str.vmsBtDownloadPeerInfo_GetClient
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x40a1d5
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x40a1ea
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x80], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x26
push str.vmsBtDownloadPeerInfo_GetDownloadSpeed
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x40a232
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x40a247
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x84], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x24
push str.vmsBtDownloadPeerInfo_GetUploadSpeed
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x40a28f
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x40a2a4
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x88], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x28
push str.vmsBtDownloadPeerInfo_GetBytesDownloaded
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x40a2ec
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x40a301
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x8c], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x26
push str.vmsBtDownloadPeerInfo_GetBytesUploaded
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x40a349
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x40a35e
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x90], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x1e
push str.vmsBtDownloadPeerInfo_GetFlags
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x40a3a6
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x40a3bb
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x94], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0x21
push str.vmsBtDownloadPeerInfoList_GetPeer
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x40a403
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x40a418
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x98], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
push 0xe
push str.vmsBt_Shutdown
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call fcn.0040a9c0
mov eax, dword [0x8176f8]
xor ecx, ecx
test eax, eax
jne 0x40a460
push edi
call ebx
xor ecx, ecx
mov dword [0x8176f8], eax
test eax, eax
je 0x40a475
cmp dword [ebp - 8], 0x10
lea ecx, [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x1c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [esi + 0x9c], ecx
lea ecx, [ebp - 0x1c]
call fcn.004026c0
cmp dword [esi + 4], 0
je 0x40a600
cmp dword [esi + 8], 0
je 0x40a600
cmp dword [esi + 0xc], 0
je 0x40a600
cmp dword [esi + 0x10], 0
je 0x40a600
cmp dword [esi], 0
je 0x40a600
cmp dword [esi + 0x14], 0
je 0x40a600
cmp dword [esi + 0x18], 0
je 0x40a600
cmp dword [esi + 0x1c], 0
je 0x40a600
cmp dword [esi + 0x20], 0
je 0x40a600
cmp dword [esi + 0x24], 0
je 0x40a600
cmp dword [esi + 0x28], 0
je 0x40a600
cmp dword [esi + 0x2c], 0
je 0x40a600
cmp dword [esi + 0x30], 0
je 0x40a600
cmp dword [esi + 0x34], 0
je 0x40a600
cmp dword [esi + 0x38], 0
je 0x40a600
cmp dword [esi + 0x44], 0
je 0x40a600
cmp dword [esi + 0x3c], 0
je 0x40a600
cmp dword [esi + 0x48], 0
je 0x40a600
cmp dword [esi + 0x50], 0
je 0x40a600
cmp dword [esi + 0x54], 0
je 0x40a600
cmp dword [esi + 0x58], 0
je 0x40a600
cmp dword [esi + 0x5c], 0
je 0x40a600
cmp dword [esi + 0x60], 0
je 0x40a600
cmp dword [esi + 0x64], 0
je 0x40a600
cmp dword [esi + 0x68], 0
je 0x40a600
cmp dword [esi + 0x6c], 0
je 0x40a600
cmp dword [esi + 0x70], 0
je 0x40a600
cmp dword [esi + 0x74], 0
je 0x40a600
cmp dword [esi + 0x7c], 0
je 0x40a600
cmp dword [esi + 0x80], 0
je 0x40a600
cmp dword [esi + 0x84], 0
je 0x40a600
cmp dword [esi + 0x88], 0
je 0x40a600
cmp dword [esi + 0x8c], 0
je 0x40a600
cmp dword [esi + 0x90], 0
je 0x40a600
cmp dword [esi + 0x94], 0
je 0x40a600
cmp dword [esi + 0x98], 0
je 0x40a600
cmp dword [esi + 0x78], 0
je 0x40a600
cmp dword [esi + 0x9c], 0
je 0x40a600
cmp dword [esi + 0x4c], 0
je 0x40a600
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00438587
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00438587
mov esp, ebp
pop ebp
ret 4
call fcn.004c75d7
call fcn.004c75d7
call fcn.004c75d7
call fcn.004c75d7
call fcn.004c75d7
call fcn.004c75d7
call fcn.004c75d7
call fcn.004c75d7
call fcn.004c75d7
call fcn.004c75d7
call fcn.004c75d7
call fcn.004c75d7
call fcn.004c75d7
call fcn.004c75d7
call fcn.004c75d7
call fcn.004c75d7
call fcn.004c75d7
int3