Function at 0x40f2e8
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 4], edx
mov byte [ebx], 0
mov dl, byte [esi]
push edi
mov edi, ecx
mov dword [ebp - 8], edi
cmp dl, 0x2d
jne 0x40f82b
cmp byte [esi + 7], dl
jne 0x40f82b
movzx edx, byte [esi + 1]
movzx ebx, byte [esi + 2]
mov eax, edx
shl eax, 8
add eax, ebx
mov ecx, 0x4c54
cmp eax, ecx
jg 0x40f575
je 0x40f56b
mov ecx, 0x4253
cmp eax, ecx
jg 0x40f454
je 0x40f44a
add ecx, 0xffffffef
cmp eax, ecx
jg 0x40f3b2
je 0x40f3a8
sub eax, 0x4147
je 0x40f376
sub eax, 0xb
je 0x40f39e
sub eax, 4
je 0x40f394
dec eax
dec eax
je 0x40f38a
dec eax
dec eax
je 0x40f380
sub eax, 0x24
jne 0x40f77a
mov edi, str.Ares
jmp 0x40f7b5
mov edi, str.Azureus
jmp 0x40f7b5
mov edi, str.BitPump
jmp 0x40f7b5
mov edi, str.Avicora
jmp 0x40f7b5
mov edi, str.Arctic
jmp 0x40f7b5
mov edi, str.BitBuddy
jmp 0x40f7b5
sub eax, 0x4243
je 0x40f440
dec eax
dec eax
je 0x40f436
dec eax
je 0x40f42c
dec eax
je 0x40f422
sub eax, 8
je 0x40f3df
sub eax, 3
jne 0x40f77a
mov edi, str.BitRocket
jmp 0x40f7b5
mov al, byte [esi + 4]
cmp al, 0x41
jne 0x40f40a
cmp byte [esi + 5], 0x30
jne 0x40f40a
movzx eax, byte [esi + 6]
sub eax, 0x3d
push eax
push str.Bits_on_Wheels_1.0._d
push dword [ebp - 4]
push edi
call fcn.0042e92c
add esp, 0x10
jmp 0x40fba4
movzx ecx, byte [esi + 6]
push ecx
movzx ecx, byte [esi + 5]
movzx eax, al
push ecx
push eax
push str.Bits_on_Wheels__c_c_c
jmp 0x40fb21
mov edi, 0x4630c4
jmp 0x40f7b5
mov edi, str.Bitflu
jmp 0x40f7b5
mov edi, str.BitTorrent_SDK
jmp 0x40f7b5
mov edi, str.BitComet
jmp 0x40f7b5
mov edi, str.BitSlave
jmp 0x40f7b5
mov ecx, 0x4654
cmp eax, ecx
jg 0x40f517
je 0x40f4c9
sub eax, 0x4258
je 0x40f4bf
sub eax, 0xec
je 0x40f4b5
sub eax, 0x10
je 0x40f4ab
sub eax, 0xf1
je 0x40f4a1
sub eax, 0xfd
je 0x40f497
sub eax, 0x11
jne 0x40f77a
mov edi, str.electric_sheep
jmp 0x40f7b5
mov edi, str.EBit
jmp 0x40f7b5
mov edi, str.DelugeTorrent
jmp 0x40f7b5
mov edi, str.CTorrent
jmp 0x40f7b5
mov edi, str.Enhanced_CTorrent
jmp 0x40f7b5
mov edi, str.Bittorrent_X
jmp 0x40f7b5
xor edx, edx
movzx ax, byte [esi + edx + 3]
lea ecx, [ebp + edx*2 - 0x14]
mov word [ecx], ax
cmp ax, 0x30
jb 0x40f4ea
cmp ax, 0x39
ja 0x40f4ea
add eax, 0xffffffd0
mov word [ecx], ax
inc edx
cmp edx, 4
jl 0x40f4cb
movzx eax, word [ebp - 0xe]
push eax
movzx eax, word [ebp - 0x10]
push eax
movzx eax, word [ebp - 0x12]
push eax
movzx eax, word [ebp - 0x14]
push eax
push str.FoxTorrent
push str._s__d._d_d_d
push dword [ebp - 4]
push edi
jmp 0x40f81e
sub eax, 0x4845
je 0x40f561
sub eax, 7
je 0x40f557
dec eax
dec eax
je 0x40f54d
sub eax, 0x306
je 0x40f543
sub eax, 0xfc
jne 0x40f77a
mov edi, str.Lphant
jmp 0x40f7b5
mov edi, str.KTorrent
jmp 0x40f7b5
mov edi, str.Hydranode
jmp 0x40f7b5
mov edi, str.Halite
jmp 0x40f7b5
mov edi, str.Helix
jmp 0x40f7b5
mov edi, str.libtorrent
jmp 0x40f7b5
mov ecx, 0x5452
cmp eax, ecx
jg 0x40f665
je 0x40f65b
mov ecx, 0x5254
cmp eax, ecx
jg 0x40f5ff
je 0x40f5f5
sub eax, 0x4c57
je 0x40f5eb
sub eax, 0xf9
je 0x40f5e1
dec eax
dec eax
je 0x40f5d7
dec eax
dec eax
je 0x40f5cd
sub eax, 0x3f0
je 0x40f5c3
sub eax, 0x10
jne 0x40f77a
mov edi, str.Qt_4_Torrent_Example
jmp 0x40f7b5
mov edi, str.QQDownload
jmp 0x40f7b5
mov edi, str.MoonlightTorrent
jmp 0x40f7b5
mov edi, str.Miro
jmp 0x40f7b5
mov edi, str.MooPolice
jmp 0x40f7b5
mov edi, str.LimeWire
jmp 0x40f7b5
mov edi, str.Retriever
jmp 0x40f7b5
sub eax, 0x5344
je 0x40f752
sub eax, 3
je 0x40f651
sub eax, 0xc
je 0x40f647
sub eax, 7
je 0x40f63d
sub eax, 0x24
je 0x40f633
sub eax, 0xd0
jne 0x40f77a
mov edi, str.Torrent_.NET
jmp 0x40f7b5
mov edi, str.Shareaza_alpha_beta
jmp 0x40f7b5
mov edi, str.Shareaza
jmp 0x40f7b5
mov edi, str.SwarmScope
jmp 0x40f7b5
mov edi, str.SG_Torrent
jmp 0x40f7b5
mov edi, str.Transmission
jmp 0x40f7b5
mov ecx, 0x584c
cmp eax, ecx
jg 0x40f759
je 0x40f752
sub eax, 0x5453
je 0x40f74b
dec eax
je 0x40f744
sub eax, 0xf8
je 0x40f73d
sub eax, 8
je 0x40f6c0
sub eax, 0xf3
je 0x40f6b6
sub eax, 0x112
jne 0x40f77a
mov edi, str.Wyzo
jmp 0x40f7b5
mov edi, str.Vagaa
jmp 0x40f7b5
cmp dword [esi + 0x10], 0x30504455
jne 0x40f6d8
mov edx, str._FAKE__BitSpirit
push dword [ebp - 4]
mov ecx, edi
jmp 0x40fa14
movzx eax, byte [esi + 3]
movzx ecx, byte [esi + 4]
shl eax, 8
or eax, ecx
movzx ecx, byte [esi + 5]
shl eax, 8
or eax, ecx
mov ecx, 0x313330
cmp eax, ecx
mov edi, 0x462e7c
jl 0x40f702
cmp byte [ebp + 0xc], 0
jne 0x40f730
cmp eax, 0x313332
jl 0x40f716
mov ecx, esi
call fcn.0040f006
test al, al
jne 0x40f735
jmp 0x40f730
cmp eax, ecx
jl 0x40f735
mov ax, word [esi + 8]
mov ecx, 0x3fff
and ax, cx
mov ecx, 0x1f4
cmp ax, cx
jbe 0x40f735
mov edi, 0x462e5c
sub edi, 0xf0
jmp 0x40f7b5
mov edi, str.uLeecher
jmp 0x40f7b5
mov edi, str.TuoTu
jmp 0x40f7b5
mov edi, str.TorrentStorm
jmp 0x40f7b5
mov edi, str.Xunlei
jmp 0x40f7b5
sub eax, 0x5854
je 0x40f7b0
sub eax, 4
je 0x40f7a9
sub eax, 0x1fc
je 0x40f7a2
sub eax, 0x1220
je 0x40f79b
sub eax, 0x4ce
je 0x40f794
push ebx
push edx
push str.Unknown__c_c
lea eax, [ebp - 0x3c]
push 0x14
push eax
call fcn.0042e92c
add esp, 0x14
lea edi, [ebp - 0x3c]
jmp 0x40f7b5
mov edi, str.qBittorrent
jmp 0x40f7b5
mov edi, str.libTorrent
jmp 0x40f7b5
mov edi, str.ZipTorrent
jmp 0x40f7b5
mov edi, str.Xtorrent
jmp 0x40f7b5
mov edi, str.XanTorrent
xor edx, edx
movzx ax, byte [esi + edx + 3]
lea ecx, [ebp + edx*2 - 0x14]
mov word [ecx], ax
cmp ax, 0x30
jb 0x40f7d5
cmp ax, 0x39
ja 0x40f7d5
add eax, 0xffffffd0
jmp 0x40f7f5
cmp ax, 0x41
jb 0x40f7e6
cmp ax, 0x5a
ja 0x40f7e6
add eax, 0xffffffc9
jmp 0x40f7f5
cmp ax, 0x61
jb 0x40f7f8
cmp ax, 0x7a
ja 0x40f7f8
add eax, 0xffffff90
mov word [ecx], ax
inc edx
cmp edx, 4
jl 0x40f7b7
movzx eax, word [ebp - 0xe]
push eax
movzx eax, word [ebp - 0x10]
push eax
movzx eax, word [ebp - 0x12]
push eax
movzx eax, word [ebp - 0x14]
push eax
push edi
push str._s__d._d._d._d
push dword [ebp - 4]
push dword [ebp - 8]
call fcn.0042e92c
add esp, 0x20
jmp 0x40fba4
mov cl, byte [esi + 4]
cmp cl, 0x2d
jne 0x40f8c6
cmp byte [esi + 5], cl
jne 0x40f8c6
movzx ecx, dl
mov eax, ecx
sub eax, 0x41
je 0x40f899
sub eax, 0xe
je 0x40f892
sub eax, 3
je 0x40f88b
dec eax
je 0x40f884
dec eax
je 0x40f87d
dec eax
je 0x40f876
push ecx
push str.Unknown__c
lea eax, [ebp - 0x3c]
push 0x14
push eax
call fcn.0042e92c
add esp, 0x10
lea ecx, [ebp - 0x3c]
jmp 0x40f89e
mov ecx, str.UPnP
jmp 0x40f89e
mov ecx, str.BitTornado
jmp 0x40f89e
mov ecx, str.Shadow
jmp 0x40f89e
mov ecx, str.Tribler
jmp 0x40f89e
mov ecx, str.Osprey_Permaseed
jmp 0x40f89e
mov ecx, 0x462be8
xor eax, eax
movzx dx, byte [esi + eax + 1]
mov word [ebp + eax*2 - 0x14], dx
inc eax
cmp eax, 4
jl 0x40f8a0
xor eax, eax
mov word [ebp - 0xe], ax
lea eax, [ebp - 0x14]
push eax
push ecx
push 0x462bdc
jmp 0x40fa8d
cmp dl, 0x4d
jne 0x40f924
mov al, byte [esi + 2]
cmp al, 0x2d
jne 0x40f924
cmp cl, al
jne 0x40f8f9
cmp byte [esi + 6], al
jne 0x40f8f9
cmp byte [esi + 7], al
jne 0x40f8f9
movzx eax, byte [esi + 5]
push eax
movzx eax, byte [esi + 3]
push eax
movzx eax, byte [esi + 1]
push eax
push str.Mainline__c._c._c
jmp 0x40fb21
cmp al, 0x2d
jne 0x40f924
cmp byte [esi + 5], al
jne 0x40f924
cmp byte [esi + 7], al
jne 0x40f924
movzx eax, byte [esi + 6]
push eax
movzx eax, cl
push eax
movzx eax, byte [esi + 3]
push eax
movzx eax, byte [esi + 1]
push eax
push str.Mainline__c._c_c._c
jmp 0x40fb50
cmp dl, 0x44
jne 0x40f981
cmp byte [esi + 1], 0x4e
jne 0x40f981
cmp byte [esi + 2], 0x41
jne 0x40f981
add esi, 3
lea edi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x14]
movsw word es:[edi], word [esi]
push eax
mov byte [ebp - 0xe], 0
call sub.MSVCRT.dll_atoi
push 0x64
pop esi
xor edx, edx
mov ecx, eax
div esi
push edx
xor edx, edx
div esi
mov eax, ecx
mov ecx, 0x2710
push edx
xor edx, edx
div ecx
push eax
push str.DNA__u._u._u
push dword [ebp - 4]
push dword [ebp - 8]
call fcn.0042e92c
add esp, 0x1c
mov byte [ebx], 1
jmp 0x40fba4
cmp dl, 0x65
jne 0x40f9ce
cmp byte [esi + 1], 0x78
jne 0x40f9ce
cmp byte [esi + 2], 0x62
jne 0x40f9ce
cmp byte [esi + 3], 0x63
jne 0x40f9ce
cmp byte [esi + 6], 0x4c
jne 0x40f9b5
cmp byte [esi + 7], 0x4f
jne 0x40f9b5
cmp byte [esi + 8], 0x52
jne 0x40f9b5
cmp byte [esi + 9], 0x44
mov eax, str.BitLord
je 0x40f9ba
mov eax, str.BitComet
movzx edx, byte [esi + 5]
push edx
movzx ecx, cl
push ecx
push eax
push str._s__i._i
jmp 0x40fb21
mov cl, byte [esi + 2]
cmp cl, 0x42
jne 0x40fa1e
cmp byte [esi + 3], 0x53
jne 0x40fa1e
mov ecx, dword [esi + 0x10]
mov eax, str.UDP0
cmp ecx, dword [eax]
jne 0x40f9f2
mov edx, str.BitSpirit_v2_UDP0
jmp 0x40f6ce
push 3
add esi, 0xe
pop ecx
push dword [ebp - 4]
mov edi, str.HTTPBT
xor eax, eax
repe cmpsw word [esi], word es:[edi]
mov ecx, dword [ebp - 8]
mov edx, str.BitSpirit_v2_HTTPBT
je 0x40fa14
mov edx, str.Unknown_BitSpirit
call fcn.0040f153
jmp 0x40fba4
mov al, byte [esi + 1]
cmp al, 0x45
jne 0x40fa3a
cmp cl, 0x52
jne 0x40fa3a
cmp byte [esi + 3], 0x53
jne 0x40fa3a
push str.ERSAnonymous
jmp 0x40fb77
cmp dl, 0x41
jne 0x40fa70
cmp al, 0x5a
jne 0x40fa70
cmp cl, 0x32
jne 0x40fa70
cmp byte [esi + 3], 0x35
jne 0x40fa70
cmp byte [esi + 4], 0x30
jne 0x40fa70
cmp byte [esi + 5], 0x30
jne 0x40fa70
cmp byte [esi + 6], 0x42
jne 0x40fa70
cmp byte [esi + 7], 0x54
jne 0x40fa70
push str.BitTyrant
jmp 0x40fb77
cmp dl, 0x42
jne 0x40fa9e
cmp al, 0x4c
jne 0x40fa9e
cmp cl, 0x5a
jne 0x40fa9e
movzx eax, byte [esi + 4]
push eax
movzx eax, byte [esi + 3]
push eax
push str.Blizzard__d._d
push dword [ebp - 4]
push edi
call fcn.0042e92c
add esp, 0x14
jmp 0x40fba4
cmp dl, 0x4d
jne 0x40face
cmp al, 0x62
jne 0x40face
cmp cl, 0x72
jne 0x40face
cmp byte [esi + 3], 0x73
jne 0x40face
cmp byte [esi + 4], 0x74
jne 0x40face
movzx eax, byte [esi + 9]
push eax
movzx eax, byte [esi + 7]
push eax
movzx eax, byte [esi + 5]
push eax
push str.Burst___c._c._c
jmp 0x40fb21
cmp dl, 0x2d
jne 0x40fb2f
cmp al, 0x46
jne 0x40faf4
cmp cl, 0x47
jne 0x40faf4
add esi, 3
push esi
call sub.MSVCRT.dll_atoi
push 0x64
pop ecx
cdq
idiv ecx
push edx
push eax
push str.FlashGet__u._u
jmp 0x40fb21
cmp al, 0x47
jne 0x40fb04
cmp cl, 0x33
jne 0x40fb04
push str.G3_Torrent
jmp 0x40fb77
cmp al, 0x4d
jne 0x40fb2f
cmp cl, 0x4c
jne 0x40fb2f
movzx eax, byte [esi + 7]
push eax
movzx eax, byte [esi + 5]
push eax
movzx eax, byte [esi + 3]
push eax
push str.MLdonkey__c._c._c
push dword [ebp - 4]
push edi
call fcn.0042e92c
add esp, 0x18
jmp 0x40fba4
cmp dl, 0x4f
jne 0x40fb5e
cmp al, 0x50
jne 0x40fb5e
movzx eax, byte [esi + 5]
push eax
movzx eax, byte [esi + 4]
push eax
movzx eax, byte [esi + 3]
push eax
movzx eax, cl
push eax
push str.Opera__c_c_c_c
push dword [ebp - 4]
push edi
call fcn.0042e92c
add esp, 0x1c
jmp 0x40fba4
cmp dl, 0x4c
jne 0x40fb85
cmp al, 0x49
jne 0x40fb85
cmp cl, 0x4d
jne 0x40fb85
cmp byte [esi + 3], 0x45
jne 0x40fb85
push str.Limewire
push dword [ebp - 4]
push edi
call fcn.0042e92c
add esp, 0xc
jmp 0x40fba4
xor eax, eax
mov word [edi + 0x28], ax
mov cl, byte [eax + esi]
test cl, cl
je 0x40fb97
movzx ecx, cl
jmp 0x40fb9a
push 0x20
pop ecx
mov word [edi + eax*2], cx
inc eax
cmp eax, 0x14
jl 0x40fb8b
pop edi
pop esi
pop ebx
leave
ret 0xc