Function at 0x417e70
Capabilities:
Check if file exists
Clear file content
Create directory
Delete file
Encode data using base64
Get common file path
Get disk size
Get file attributes
Get file size
Parse pe header
Write file on windows

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d4241
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x1490
call fcn.004ae220
mov eax, dword [0x508068]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x1244], 0
cmp dword [eax + 0x128], 0
jne 0x417ed2
mov al, 1
jmp 0x41ccfd
cmp dword [eax + 0x124], 0
mov ecx, dword [sym.imp.USER32.dll_MessageBoxA]
jne 0x417f00
cmp byte [0x5102e0], 0
je 0x417f00
push 0
push 0x4eeb04
push str.it_peer__pHeapNetwork__nullptr
push 0
call ecx
mov ecx, dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [ebx + 0xc]
cmp word [eax + 0x10], 0
je 0x417f23
cmp byte [0x5102e0], 0
je 0x417f23
push 0
push 0x4eeb3c
push 0x4eeb50
push 0
call ecx
mov eax, dword [ebx + 0xc]
mov edi, dword [eax + 0x124]
mov esi, dword [eax + 0x128]
add esi, edi
mov dword [ebp - 0x1218], edi
mov dword [ebp - 0x1230], esi
cmp edi, esi
jae 0x41cc70
mov eax, dword [ebp - 0x744]
mov dword [ebp - 0x123c], eax
mov eax, dword [ebp - 0x748]
mov dword [ebp - 0x1240], eax
mov eax, dword [ebx + 0xc]
cmp word [eax + 0x10], 0
je 0x417f87
cmp byte [0x5102e0], 0
je 0x417f87
push 0
push 0x4eeb70
push 0x4eeb84
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [ebx + 8]
cmp byte [eax + 0xc], 0
je 0x417ecb
cmp edi, esi
jbe 0x418039
mov edx, edi
lea ecx, [ebp - 0x6e0]
sub edx, esi
call fcn.0040cfc0
mov esi, dword [ebp - 0x1244]
or esi, 1
push 0x1e
push str.pNetworkMutable___pNetworkEnd
push 0
lea ecx, [ebp - 0x6e0]
mov dword [ebp - 4], 0
call fcn.00453b70
push eax
lea ecx, [ebp - 0x6bc]
call fcn.00406d60
or esi, 2
lea eax, [ebp - 0x6bc]
cmp dword [ebp - 0x6a8], 0x10
mov dword [ebp - 0x1244], esi
cmovae eax, dword [ebp - 0x6bc]
cmp byte [0x5102e0], 0
je 0x418011
push 0
push 0x4eebb0
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x6bc]
mov byte [ebp - 4], 1
call fcn.00406cd0
lea ecx, [ebp - 0x6e0]
mov dword [ebp - 4], 2
call fcn.00406cd0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebx + 0xc]
mov esi, edi
sub esi, dword [eax + 0x124]
mov eax, dword [eax + 0x128]
sub eax, esi
cmp eax, 4
jb 0x41cc6a
push dword [edi]
call dword [sym.imp.WS2_32.dll_ntohl]
mov ecx, eax
mov dword [ebp - 0x122c], ecx
test ecx, ecx
je 0x41890e
mov eax, dword [ebx + 0xc]
mov edi, dword [eax + 0x128]
mov edx, edi
sub edx, esi
lea esi, [ecx + 4]
cmp esi, edx
ja 0x41cc64
mov ecx, dword [ebp - 0x1230]
sub ecx, dword [ebp - 0x1218]
cmp esi, ecx
ja 0x41cc47
cmp edx, 5
jb 0x41cc30
cmp edi, 5
mov edi, dword [ebp - 0x1218]
jb 0x41cc6a
movzx ecx, byte [edi + 4]
cmp ecx, 0x17
ja case.0x4180be.10
jmp dword [ecx*4 + 0x41cd58]
mov eax, dword [eax + 0xf8]
cmp byte [eax + 0xd9], 0
je 0x4188f5
mov byte [eax + 0xd9], 0
jmp 0x4188f5
mov ecx, dword [eax + 0xf8]
cmp byte [ecx + 0xd9], 0
jne 0x4180fd
mov byte [ecx + 0xd9], 1
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0xf8]
cmp dword [ecx + 0x2f4], 0
je 0x4188f5
add ecx, 0x2f0
call fcn.00445760
jmp 0x4188f5
mov eax, dword [eax + 0xf8]
mov byte [eax + 0xda], 1
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0xf8]
cmp byte [eax + 0x71], 0
je 0x4188f5
mov byte [eax + 0x71], 0
jmp 0x4188f5
mov eax, dword [eax + 0xf8]
mov byte [eax + 0xda], 0
jmp 0x4188f5
push dword [edi + 5]
call dword [sym.imp.WS2_32.dll_ntohl]
mov edi, dword [ebx + 8]
mov edx, eax
mov dword [ebp - 0x1220], edx
cmp byte [edi + 0x1b], 0
je 0x4181bb
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0xf8]
cmp dword [eax + 0x2e4], 0
jne 0x4181aa
cmp byte [0x5102e0], 0
je 0x4181aa
push 0
push str.peer_bitField.size____0
push 0x4eec5c
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov edx, dword [ebp - 0x1220]
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0xf8]
mov edi, dword [eax + 0x2e4]
jmp 0x4181c1
mov edi, dword [edi + 0x120]
mov eax, dword [ebx + 0xc]
cmp edx, edi
jbe 0x4181d6
mov ecx, 0x59
mov word [eax + 0x10], cx
jmp 0x4188ef
mov ecx, dword [eax + 0xf8]
cmp dword [ecx + 0x2e4], 0
jne 0x4181f9
push 0
push edi
add ecx, 0x2d8
call fcn.00445bc0
mov edx, dword [ebp - 0x1220]
mov ecx, dword [ebx + 8]
cmp byte [ecx + 0x1b], 0
jne 0x418225
push edx
lea eax, [ebp - 0x1368]
add ecx, 0x3b4
push eax
call fcn.00445b70
mov edx, 1
mov esi, dword [eax]
mov ecx, dword [eax + 4]
shl edx, cl
test dword [esi], edx
jne 0x41823e
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0xf8]
cmp byte [eax + 0xdb], 0
jne 0x41823e
mov byte [eax + 0xdb], 1
mov ecx, dword [ebx + 0xc]
lea eax, [ebp - 0x1370]
push dword [ebp - 0x1220]
push eax
mov ecx, dword [ecx + 0xf8]
add ecx, 0x2d8
call fcn.00445b70
mov edx, 1
mov esi, dword [eax]
mov ecx, dword [eax + 4]
shl edx, cl
test dword [esi], edx
jne 0x4188ef
mov ecx, dword [ebx + 0xc]
lea eax, [ebp - 0x1378]
push dword [ebp - 0x1220]
push eax
mov ecx, dword [ecx + 0xf8]
add ecx, 0x2d8
call fcn.00445b70
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [edx]
bts ecx, eax
mov dword [edx], ecx
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0xf8]
inc dword [eax + 0x2e8]
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0xf8]
mov edx, dword [ecx + 0x2e8]
cmp edx, edi
jbe 0x418362
lea ecx, [ebp - 0x6e0]
call fcn.0040cfc0
mov esi, dword [ebp - 0x1244]
or esi, 4
push 0x17
push str.count_pieces_completed
push 0
lea ecx, [ebp - 0x6e0]
mov dword [ebp - 4], 3
call fcn.00453b70
push eax
lea ecx, [ebp - 0x6bc]
call fcn.00406d60
or esi, 8
lea eax, [ebp - 0x6bc]
cmp dword [ebp - 0x6a8], 0x10
mov dword [ebp - 0x1244], esi
cmovae eax, dword [ebp - 0x6bc]
cmp byte [0x5102e0], 0
je 0x418337
push 0
push eax
push 0x4eec8c
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x6bc]
mov byte [ebp - 4], 4
call fcn.00406cd0
lea ecx, [ebp - 0x6e0]
mov dword [ebp - 4], 5
call fcn.00406cd0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0xf8]
cmp dword [ecx + 0x2e8], edi
jne 0x4188ef
mov eax, dword [ebx + 8]
mov edi, dword [ebp - 0x1218]
cmp byte [eax + 0x1b], 0
jne 0x4188f5
mov byte [ecx + 0x2ec], 1
mov eax, dword [ebx + 8]
inc dword [eax + 0x140]
jmp 0x4188f5
mov ecx, dword [eax + 0xf8]
mov dword [ebp - 0x121c], ecx
cmp dword [ecx + 0x2e4], 0
je 0x418442
lea eax, [ecx + 0x2d8]
lea ecx, [ebp - 0x1380]
mov dword [ebp - 4], 6
push ecx
mov ecx, eax
call fcn.0044cd50
mov ecx, dword [ebp - 0x121c]
mov edi, dword [eax]
mov esi, dword [eax + 4]
lea ecx, [ecx + 0x2d8]
lea eax, [ebp - 0x1388]
push eax
call fcn.00445c80
mov ecx, dword [ebp - 0x121c]
push esi
push edi
push dword [eax + 4]
lea ecx, [ecx + 0x2d8]
push dword [eax]
lea eax, [ebp - 0x1390]
push eax
call fcn.004459b0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0xf8]
mov dword [eax + 0x2e8], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0xf8]
cmp byte [ecx + 0x2ec], 0
je 0x418442
mov byte [ecx + 0x2ec], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
mov edi, dword [ebp - 0x122c]
dec edi
cmp byte [ecx + 0x1b], 0
je 0x418480
cmp edi, 1
jae 0x418477
cmp byte [0x5102e0], 0
je 0x418477
push 0
push 0x4eecac
push 0x4eecc0
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [ebx + 0xc]
lea ecx, [edi*8]
jmp 0x4184a5
mov edx, dword [ecx + 0x120]
add edx, 7
shr edx, 3
cmp edi, edx
je 0x41849f
mov ecx, 0x66
mov word [eax + 0x10], cx
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
mov ecx, dword [ecx + 0x120]
push 0
mov dword [ebp - 0x1234], ecx
push ecx
mov ecx, dword [eax + 0xf8]
add ecx, 0x2d8
call fcn.00445bc0
xor esi, esi
mov dword [ebp - 0x121c], esi
test edi, edi
je 0x4186cf
nop
mov eax, dword [ebp - 0x1218]
mov al, byte [esi + eax + 5]
mov byte [ebp - 0x1211], al
cmp esi, edi
jne 0x4185da
xor edi, edi
shl esi, 3
nop dword [eax]
cmp esi, dword [ebp - 0x1234]
ja 0x4186b3
push esi
lea eax, [ebp - 0x1398]
push eax
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0xf8]
add ecx, 0x2d8
call fcn.00445b70
test byte [ebp - 0x1211], 1
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [edx]
je 0x41852d
bts ecx, eax
jmp 0x418530
btr ecx, eax
shr byte [ebp - 0x1211], 1
lea eax, [ebp - 0x13f0]
mov dword [edx], ecx
push esi
push eax
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0xf8]
add ecx, 0x2d8
call fcn.00445b70
mov edx, 1
mov ecx, dword [eax + 4]
mov eax, dword [eax]
shl edx, cl
test dword [eax], edx
je 0x4185ca
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0xf8]
inc dword [eax + 0x2e8]
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0xf8]
cmp byte [ecx + 0xdb], 0
jne 0x4185ca
mov eax, dword [ebx + 8]
cmp byte [eax + 0x1b], 0
je 0x418597
mov byte [ecx + 0xdb], 1
jmp 0x4185ca
push esi
lea ecx, [ebp - 0x13a0]
push ecx
lea ecx, [eax + 0x3b4]
call fcn.00445b70
mov edx, 1
mov ecx, dword [eax + 4]
mov eax, dword [eax]
shl edx, cl
test dword [eax], edx
jne 0x4185ca
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0xf8]
mov byte [eax + 0xdb], 1
inc edi
inc esi
cmp edi, 8
jl 0x4184f0
jmp 0x4186b3
mov ecx, dword [ebp - 0x1234]
lea esi, [esi*8 + 8]
dec ecx
mov edi, 8
mov dword [ebp - 0x1220], ecx
dec esi
dec edi
cmp esi, ecx
jbe 0x418606
shr al, 1
mov byte [ebp - 0x1211], al
jmp 0x4186ab
push esi
lea eax, [ebp - 0x13a8]
push eax
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0xf8]
add ecx, 0x2d8
call fcn.00445b70
test byte [ebp - 0x1211], 1
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [edx]
je 0x418637
bts ecx, eax
jmp 0x41863a
btr ecx, eax
shr byte [ebp - 0x1211], 1
lea eax, [ebp - 0x13b0]
mov dword [edx], ecx
push esi
push eax
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0xf8]
add ecx, 0x2d8
call fcn.00445b70
mov edx, 1
mov ecx, dword [eax + 4]
mov eax, dword [eax]
shl edx, cl
test dword [eax], edx
je 0x41869f
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0xf8]
inc dword [eax + 0x2e8]
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0xf8]
cmp byte [ecx + 0xdb], 0
jne 0x41869f
mov eax, dword [ebx + 8]
cmp byte [eax + 0x1b], 0
je 0x418712
mov byte [ecx + 0xdb], 1
mov ecx, dword [ebp - 0x1220]
mov al, byte [ebp - 0x1211]
test edi, edi
jne 0x4185f3
mov esi, dword [ebp - 0x121c]
mov edi, dword [ebp - 0x122c]
inc esi
dec edi
mov dword [ebp - 0x121c], esi
cmp esi, edi
jb 0x4184d0
mov eax, dword [ebx + 0xc]
mov edx, dword [eax + 0xf8]
mov eax, dword [ebx + 8]
mov ecx, dword [edx + 0x2e8]
cmp ecx, dword [eax + 0x120]
jne 0x4188ef
cmp byte [eax + 0x1b], 0
mov edi, dword [ebp - 0x1218]
jne 0x4188f5
mov byte [edx + 0x2ec], 1
mov eax, dword [ebx + 8]
inc dword [eax + 0x140]
jmp 0x4188f5
push esi
lea ecx, [ebp - 0x13b8]
push ecx
lea ecx, [eax + 0x3b4]
call fcn.00445b70
mov edx, 1
mov ecx, dword [eax + 4]
mov eax, dword [eax]
shl edx, cl
mov ecx, dword [ebp - 0x1220]
test dword [eax], edx
jne 0x4186a5
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0xf8]
mov byte [eax + 0xdb], 1
jmp 0x4186a5
push dword [edi + 5]
mov esi, dword [sym.imp.WS2_32.dll_ntohl]
mov byte [ebp - 0x774], 0
call esi
push dword [edi + 9]
mov dword [ebp - 0x780], eax
call esi
push dword [edi + 0xd]
mov dword [ebp - 0x77c], eax
call esi
mov ecx, dword [ebx + 8]
mov esi, eax
mov edx, dword [ebp - 0x780]
mov dword [ebp - 0x778], esi
cmp edx, dword [ecx + 0x3c0]
jbe 0x4187aa
mov eax, dword [ebx + 0xc]
mov ecx, 0x68
mov word [eax + 0x10], cx
mov ecx, dword [ebx + 8]
mov esi, dword [ebp - 0x778]
cmp esi, 0x4000
jae 0x4187c8
mov eax, dword [ecx + 0x110]
and eax, 0x3fff
cmp esi, eax
je 0x4187d6
mov ecx, 0x5a
jmp 0x4187cf
jbe 0x4187d6
mov ecx, 0x67
mov eax, dword [ebx + 0xc]
mov word [eax + 0x10], cx
mov eax, dword [ebx + 0xc]
cmp word [eax + 0x10], 0
jne 0x4188f5
lea ecx, [ebp - 0x780]
push ecx
lea ecx, [eax + 0x144]
call fcn.00445320
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0xf8]
inc dword [eax + 0x304]
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0xf8]
cmp byte [eax + 0xd9], 0
jne 0x4188f5
mov byte [eax + 0xd9], 1
jmp 0x4188f5
push dword [edi + 5]
mov esi, dword [sym.imp.WS2_32.dll_ntohl]
call esi
push dword [edi + 9]
mov dword [ebp - 0x73c], eax
call esi
mov ecx, dword [ebx + 8]
mov edi, eax
mov dword [ebp - 0x1238], edi
cmp byte [ecx + 0xd], 0
je 0x418871
call fcn.00410e70
mov dword [0x50e578], eax
cmp eax, dword [0x510380]
jge 0x41892a
mov ecx, dword [ebx + 8]
inc eax
mov dword [0x50e578], eax
mov byte [ecx + 0xd], 0
push 4
lea ecx, [ebp - 0x690]
shr edi, 0xe
call fcn.004029d0
lea eax, [ebp - 0x73c]
push eax
lea eax, [ebp - 0x690]
push eax
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0x124]
call fcn.00445370
lea eax, [ebp - 0x1314]
push eax
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0x124]
call fcn.00406500
push eax
lea ecx, [ebp - 0x690]
call fcn.004063b0
test al, al
je 0x4189f9
lea ecx, [ebx + 8]
call fcn.004445d0
cmp byte [eax + 0xb], 0
jne 0x4188ef
lea ecx, [ebx + 0xc]
call fcn.004445d0
mov ecx, 1
mov word [eax + 8], cx
mov edi, dword [ebp - 0x1218]
lea ecx, [ebx + 0xc]
call fcn.004445d0
cmp word [eax + 8], 0
jne 0x41cc6a
add edi, dword [ebp - 0x122c]
mov esi, dword [ebp - 0x1230]
add edi, 4
mov dword [ebp - 0x1218], edi
cmp edi, esi
jb 0x417f60
jmp 0x41cc70
lea eax, [ebp - 0x68c]
mov dword [ebp - 0x68c], 0
push eax
mov ecx, 0x5108a8
call fcn.00406510
lea eax, [ebp - 0x1280]
mov ecx, 0x5108a8
push eax
call fcn.00406500
mov ecx, dword [ebp - 0x68c]
cmp ecx, dword [eax]
je 0x4189ef
cmp byte [ecx + 0xc], 0
je 0x4189c8
cmp byte [ecx + 0xd], 0
je 0x4189c8
cmp byte [ecx + 0x11], 0
jne 0x4189c8
mov byte [ecx + 0xc], 0
push dword [ebp - 0x68c]
call fcn.004289f0
mov eax, dword [ebp - 0x68c]
add esp, 4
mov dword [eax + 0x4c8], 0xffffffff
mov eax, dword [ebp - 0x68c]
mov dword [eax + 0x154], 0
mov eax, dword [ebp - 0x68c]
mov dword [eax + 0x248], 0
mov eax, dword [ebp - 0x68c]
mov byte [eax + 0x10], 1
mov ecx, dword [ebp - 0x68c]
mov eax, dword [ecx]
mov ecx, 0x5108a8
mov dword [ebp - 0x68c], eax
lea eax, [ebp - 0x1280]
push eax
call fcn.00406500
mov ecx, dword [ebp - 0x68c]
cmp ecx, dword [eax]
jne 0x418964
call fcn.00475770
jmp 0x4188ef
lea ecx, [ebp - 0x690]
call fcn.00406430
cmp edi, dword [eax + 0x1c]
jb 0x41a5e8
lea ecx, [ebp - 0x690]
call fcn.00406430
lea ecx, [ebp - 0x690]
lea esi, [eax + 0x20]
call fcn.00406430
mov eax, dword [eax + 0x1c]
add eax, dword [esi]
cmp edi, eax
ja 0x41a5e8
mov esi, dword [ebp - 0x122c]
lea ecx, [ebx + 8]
add esi, 0xfffffff7
call fcn.004445d0
cmp byte [eax + 0xb], 0
jne 0x418aca
lea ecx, [ebx + 8]
call fcn.004445d0
cmp byte [eax + 9], 0
jne 0x418aca
lea ecx, [ebx + 8]
call fcn.004445d0
xor ecx, ecx
cmp ecx, dword [eax + 0x4dc]
jb 0x418a89
ja 0x418a7c
cmp esi, dword [eax + 0x4d8]
jb 0x418a89
push dword [ebx + 8]
call fcn.00416ab0
add esp, 4
jmp 0x418ab0
lea ecx, [ebx + 8]
call fcn.004445d0
mov ecx, 0
sub dword [eax + 0x4d8], esi
sbb dword [eax + 0x4dc], ecx
lea ecx, [ebp - 0x690]
call fcn.00406430
add dword [eax + 0x28], esi
lea ecx, [ebx + 8]
call fcn.004445d0
cmp byte [eax + 8], 0
jne 0x418aca
lea ecx, [ebx + 8]
call fcn.004445d0
mov byte [eax + 8], 1
push edi
lea eax, [ebp - 0x13c0]
push eax
lea ecx, [ebp - 0x690]
call fcn.00406430
lea ecx, [eax + 4]
call fcn.00445b70
mov ecx, eax
call fcn.00445960
test al, al
jne 0x41a5d6
push 1
push ecx
push edi
lea eax, [ebp - 0x13c8]
push eax
lea ecx, [ebp - 0x690]
call fcn.00406430
lea ecx, [eax + 4]
call fcn.00445b70
add esp, 4
mov ecx, eax
call fcn.00445980
lea ecx, [ebp - 0x690]
call fcn.00406430
lea ecx, [ebx + 0xc]
inc dword [eax + 0x18]
call fcn.004445d0
lea ecx, [ebx + 0xc]
inc dword [eax + 0x148]
call fcn.004445d0
lea ecx, [ebx + 0xc]
lea esi, [eax + 0x148]
call fcn.004445d0
lea ecx, [eax + 0x144]
mov eax, dword [esi]
cmp eax, dword [ecx]
jle 0x418c1f
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [ebp - 0x6bc]
mov edx, dword [eax + 0x144]
call fcn.0040cf50
push eax
mov edx, str.blocks_send
mov dword [ebp - 4], 7
lea ecx, [ebp - 0x760]
call fcn.00450d00
add esp, 4
mov edi, eax
lea ecx, [ebx + 0xc]
mov byte [ebp - 4], 8
call fcn.004445d0
lea ecx, [ebp - 0x724]
mov edx, dword [eax + 0x148]
call fcn.0040cf50
push eax
mov edx, 0x4eecf8
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x6e0]
call fcn.00450d00
add esp, 4
mov esi, eax
push 0
mov ecx, edi
mov byte [ebp - 4], 0xa
call fcn.00406b60
push eax
mov ecx, esi
call fcn.00406b60
mov edx, eax
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x6e0]
call fcn.00406cd0
lea ecx, [ebp - 0x724]
call fcn.00406cd0
lea ecx, [ebp - 0x760]
call fcn.00406cd0
lea ecx, [ebp - 0x6bc]
mov dword [ebp - 4], 0xffffffff
call fcn.00406cd0
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [ebx + 8]
mov eax, dword [eax + 0x158]
cdq
mov edi, eax
mov esi, edx
call fcn.004445d0
push esi
push edi
push dword [eax + 0x114]
push dword [eax + 0x110]
call fcn.004adb20
lea ecx, [ebx + 8]
mov esi, eax
mov edi, edx
call fcn.004445d0
push dword [eax + 0x114]
push dword [eax + 0x110]
push 0
push dword [ebp - 0x73c]
call fcn.004adb20
sub eax, esi
mov ecx, edx
mov dword [ebp - 0x121c], eax
sbb ecx, edi
mov dword [ebp - 0x1234], ecx
lea ecx, [ebx + 0xc]
call fcn.004445d0
mov edi, dword [ebp - 0x1238]
xor esi, esi
mov eax, dword [eax + 0x15c]
cdq
sub edi, eax
sbb esi, edx
add edi, dword [ebp - 0x121c]
adc esi, dword [ebp - 0x1234]
test esi, esi
jg 0x418d1c
jl 0x418cb9
test edi, edi
jae 0x418d1c
push esi
push edi
lea ecx, [ebp - 0x724]
call fcn.0040d020
push eax
mov edx, 0x4eed24
mov dword [ebp - 4], 0xb
lea ecx, [ebp - 0x6e0]
call fcn.00450d00
add esp, 0xc
push 0
push str.p___0
mov ecx, eax
mov byte [ebp - 4], 0xc
call fcn.00406b60
mov edx, eax
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x6e0]
call fcn.00406cd0
lea ecx, [ebp - 0x724]
mov dword [ebp - 4], 0xffffffff
call fcn.00406cd0
lea ecx, [ebx + 0xc]
call fcn.004445d0
mov eax, dword [eax + 0x114]
test esi, esi
jl 0x418d9b
jg 0x418d38
cmp edi, eax
jbe 0x418d9b
push esi
push edi
lea ecx, [ebp - 0x724]
call fcn.0040d020
push eax
mov edx, 0x4eed4c
mov dword [ebp - 4], 0xd
lea ecx, [ebp - 0x6e0]
call fcn.00450d00
add esp, 0xc
push 0
push str.p___sizeof_pMaxFile
mov ecx, eax
mov byte [ebp - 4], 0xe
call fcn.00406b60
mov edx, eax
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x6e0]
call fcn.00406cd0
lea ecx, [ebp - 0x724]
mov dword [ebp - 4], 0xffffffff
call fcn.00406cd0
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [ebx + 0xc]
mov esi, dword [eax + 0x118]
mov eax, dword [ebp - 0x122c]
add eax, 0xfffffff7
add esi, eax
call fcn.004445d0
cmp esi, dword [eax + 0x114]
jbe 0x418e37
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [ebp - 0x724]
mov edx, dword [eax + 0x114]
call fcn.0040cfc0
push eax
mov edx, 0x4eed6c
mov dword [ebp - 4], 0xf
lea ecx, [ebp - 0x6e0]
call fcn.00450d00
add esp, 4
push 0
push str.memcpy__
mov ecx, eax
mov byte [ebp - 4], 0x10
call fcn.00406b60
mov edx, eax
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x6e0]
call fcn.00406cd0
lea ecx, [ebp - 0x724]
mov dword [ebp - 4], 0xffffffff
call fcn.00406cd0
mov esi, dword [ebp - 0x122c]
lea ecx, [ebx + 0xc]
mov eax, dword [ebp - 0x1218]
add esi, 0xfffffff7
push esi
add eax, 0xd
push eax
call fcn.004445d0
mov eax, dword [eax + 0x110]
add eax, edi
push eax
call fcn.004aee70
add esp, 0xc
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [ebp - 0x690]
add dword [eax + 0x118], esi
call fcn.00406430
lea ecx, [ebp - 0x690]
lea esi, [eax + 0x18]
call fcn.00406430
mov eax, dword [eax + 0x14]
cmp eax, dword [esi]
jne 0x418f5d
lea ecx, [ebp - 0x690]
call fcn.00406430
cmp dword [eax + 0x14], 0
jne 0x418ebd
push 0
push 0x4eeda0
mov edx, 0x4eedbc
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x690]
call fcn.00406430
push eax
lea eax, [ebp - 0x7a0]
push eax
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0x12c]
call fcn.004515b0
cmp byte [ebp - 0x79c], 0
jne 0x418f5d
lea ecx, [ebp - 0x690]
call fcn.00406430
lea ecx, [ebp - 0x724]
mov edx, dword [eax]
call fcn.0040cfc0
push eax
mov edx, 0x4eeddc
mov dword [ebp - 4], 0x11
lea ecx, [ebp - 0x6e0]
call fcn.00450d00
add esp, 4
push 0
mov ecx, eax
mov byte [ebp - 4], 0x12
call fcn.00406b60
push eax
mov edx, 0x4eedec
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x6e0]
call fcn.00406cd0
lea ecx, [ebp - 0x724]
mov dword [ebp - 4], 0xffffffff
call fcn.00406cd0
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [ebx + 0xc]
lea esi, [eax + 0x118]
call fcn.004445d0
mov eax, dword [eax + 0x114]
cmp eax, dword [esi]
jne 0x4188ef
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [ebx + 0xc]
lea esi, [eax + 0x148]
call fcn.004445d0
lea ecx, [eax + 0x144]
mov eax, dword [esi]
cmp eax, dword [ecx]
je 0x419083
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [ebp - 0x127c]
mov edx, dword [eax + 0x144]
call fcn.0040cf50
mov esi, eax
lea ecx, [ebx + 0xc]
mov dword [ebp - 4], 0x13
call fcn.004445d0
lea ecx, [ebp - 0x6bc]
mov edx, dword [eax + 0x148]
call fcn.0040cf50
push eax
mov edx, 0x4eee28
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x760]
call fcn.00450d00
add esp, 4
push 0x4eee14
mov edx, eax
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x724]
call fcn.00450d60
add esp, 4
push esi
mov edx, eax
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x6e0]
call fcn.00451620
add esp, 4
push 0
mov ecx, eax
mov byte [ebp - 4], 0x17
call fcn.00406b60
push eax
mov edx, 0x4eee34
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x6e0]
call fcn.00406cd0
lea ecx, [ebp - 0x724]
call fcn.00406cd0
lea ecx, [ebp - 0x760]
call fcn.00406cd0
lea ecx, [ebp - 0x6bc]
call fcn.00406cd0
lea ecx, [ebp - 0x127c]
mov dword [ebp - 4], 0xffffffff
call fcn.00406cd0
lea eax, [ebp - 0x788]
push eax
push 0
push 0
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406760
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
lea ecx, [ebx + 0xc]
call fcn.004445d0
xor ecx, ecx
mov eax, dword [eax + 0x118]
cmp ecx, dword [ebp - 0x784]
jb 0x4190ef
ja 0x4190ca
cmp eax, dword [ebp - 0x788]
jbe 0x4190ef
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [ebx + 0xc]
mov dword [eax + 0x18], 2
call fcn.004445d0
mov ecx, 0x6e
mov word [eax + 8], cx
jmp 0x419617
lea ecx, [ebx + 8]
call fcn.004445d0
cmp byte [eax + 0xb], 0
je 0x419194
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0x12c]
call fcn.00443d80
lea ecx, [ebx + 0xc]
test eax, eax
jne 0x4195b6
call fcn.004445d0
lea ecx, [eax + 0x124]
call fcn.00443d80
cmp eax, 1
ja 0x419617
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0x124]
call fcn.00443d80
cmp eax, 1
jne 0x41917e
lea eax, [ebp - 0x1310]
push eax
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0x124]
call fcn.00406510
mov ecx, eax
call fcn.00406430
push dword [eax]
lea eax, [ebp - 0x13d8]
jmp 0x4195f4
push 0
push str.End_Game
mov edx, 0x4eee78
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebx + 0xc]
mov byte [0x50e469], 0
call fcn.004445d0
lea ecx, [ebx + 8]
mov eax, dword [eax + 0x158]
cdq
mov edi, eax
mov esi, edx
call fcn.004445d0
push esi
push edi
push dword [eax + 0x114]
push dword [eax + 0x110]
call fcn.004adb20
lea ecx, [ebx + 0xc]
mov esi, eax
mov edi, edx
call fcn.004445d0
mov eax, dword [eax + 0x15c]
cdq
add eax, esi
mov ecx, edx
mov dword [ebp - 0x1248], eax
adc ecx, edi
mov dword [ebp - 0x1234], ecx
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [ebx + 0xc]
mov eax, dword [eax + 0x110]
mov dword [ebp - 0x121c], eax
call fcn.004445d0
mov eax, dword [eax + 0x110]
push eax
call fcn.004b6ccd
add esp, 4
lea ecx, [ebx + 0xc]
mov esi, eax
call fcn.004445d0
cmp dword [eax + 0x118], esi
jbe 0x419241
push 0
push 0x4eee94
mov edx, 0x4eeea8
xor ecx, ecx
call fcn.0040d370
add esp, 8
push 4
lea ecx, [ebp - 0x684]
call fcn.004029d0
lea ecx, [ebp - 0x684]
call fcn.00443ce0
lea ecx, [ebx + 0xc]
call fcn.004445d0
xor ecx, ecx
mov dword [ebp - 0x68c], ecx
mov eax, dword [eax + 0x118]
mov dword [ebp - 0x1220], eax
test eax, eax
je 0x41a173
nop dword [eax]
lea eax, [ebp - 0x1308]
xorps xmm0, xmm0
push eax
lea ecx, [ebx + 8]
movlpd qword [ebp - 0x1228], xmm0
call fcn.004445d0
lea ecx, [eax + 0x3d0]
call fcn.00406500
lea ecx, [ebx + 8]
mov eax, dword [eax]
mov dword [ebp - 0x684], eax
lea eax, [ebp - 0x1284]
push eax
call fcn.004445d0
lea ecx, [eax + 0x3d0]
call fcn.00406580
push eax
lea ecx, [ebp - 0x684]
call fcn.00406390
test al, al
je 0x419359
mov edi, dword [ebp - 0x1224]
mov esi, dword [ebp - 0x1228]
nop word [eax + eax]
lea ecx, [ebp - 0x684]
call fcn.00406540
add esi, dword [eax + 0x30]
adc edi, dword [eax + 0x34]
cmp edi, dword [ebp - 0x1234]
ja 0x419666
jb 0x41931b
cmp esi, dword [ebp - 0x1248]
ja 0x419666
push 0
lea eax, [ebp - 0x1304]
push eax
lea ecx, [ebp - 0x684]
call fcn.00406520
lea eax, [ebp - 0x1284]
push eax
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x3d0]
call fcn.00406580
push eax
lea ecx, [ebp - 0x684]
call fcn.00406390
test al, al
jne 0x4192f0
mov esi, dword [ebp - 0x123c]
lea eax, [ebp - 0x1300]
push eax
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x3d0]
call fcn.00406580
push eax
lea ecx, [ebp - 0x684]
call fcn.004063b0
test al, al
je 0x41939f
push 0
push 0x4eeed8
mov edx, str.vFiles.end__
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x684]
call fcn.00406540
lea ecx, [ebp - 0x684]
call fcn.00406540
cmp esi, dword [eax + 0x34]
jb 0x4193dd
ja 0x4193c7
mov ecx, dword [ebp - 0x1240]
cmp ecx, dword [eax + 0x30]
jbe 0x4193dd
push 0
push 0x4eef10
mov edx, 0x4eef18
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406740
test al, al
je 0x419448
lea ecx, [ebx + 8]
call fcn.004445d0
add eax, 0xd8
lea ecx, [ebp - 0x127c]
push eax
mov edx, 0x4eef48
call fcn.00450750
add esp, 4
push 0
push 0x4eef38
mov ecx, eax
mov dword [ebp - 4], 0x18
call fcn.00406760
mov edx, eax
xor ecx, ecx
call fcn.0040d390
add esp, 8
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x127c]
call fcn.00406810
lea ecx, [ebp - 0x684]
call fcn.00406540
mov ecx, eax
call fcn.00406740
test al, al
je 0x4194b2
lea ecx, [ebx + 8]
call fcn.004445d0
add eax, 0xd8
lea ecx, [ebp - 0x127c]
push eax
mov edx, 0x4eef90
call fcn.00450750
add esp, 4
push 0
push 0x4eef7c
mov ecx, eax
mov dword [ebp - 4], 0x19
call fcn.00406760
mov edx, eax
xor ecx, ecx
call fcn.0040d390
add esp, 8
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x127c]
call fcn.00406810
lea ecx, [ebp - 0x684]
call fcn.00406540
cmp dword [eax + 0x18], 0xffffffff
jne 0x419c86
lea ecx, [ebp - 0x6bc]
call fcn.004068f0
lea ecx, [ebx + 8]
mov dword [ebp - 4], 0x1a
call fcn.004445d0
lea ecx, [ebx + 8]
cmp byte [eax + 0xa], 0
je 0x419865
call fcn.004445d0
add eax, 0xf0
lea ecx, [ebp - 0x12b0]
push eax
mov edx, 0x4eefd0
call fcn.00450750
add esp, 4
mov esi, eax
lea ecx, [ebx + 8]
mov byte [ebp - 4], 0x1b
call fcn.004445d0
add eax, 0xd8
lea ecx, [ebp - 0x127c]
push eax
mov edx, esi
call fcn.00450640
add esp, 4
push 0x4eef8c
mov edx, eax
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x760]
call fcn.00408c90
add esp, 4
lea ecx, [ebp - 0x127c]
call fcn.00406810
lea ecx, [ebp - 0x12b0]
mov byte [ebp - 4], 0x1f
call fcn.00406810
lea ecx, [ebp - 0x760]
call fcn.00406760
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x419698
push 0
lea ecx, [ebp - 0x760]
call fcn.00406760
mov edi, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push eax
call edi
test eax, eax
jne 0x41969e
push eax
push 0x4eefdc
mov edx, 0x4eeff0
xor ecx, ecx
call fcn.0040d370
add esp, 8
jmp 0x41969e
call fcn.004445d0
lea ecx, [eax + 0x12c]
call fcn.00443d80
cmp eax, 1
jne 0x419617
lea eax, [ebp - 0x130c]
push eax
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0x12c]
call fcn.00406510
mov ecx, eax
call fcn.00406430
push dword [eax]
lea eax, [ebp - 0x13e0]
push eax
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x3ac]
call fcn.00445b70
mov ecx, eax
call fcn.00445960
cmp al, 1
jne 0x419194
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [ebx + 0xc]
mov dword [eax + 0x118], 0
call fcn.004445d0
lea ecx, [ebx + 0xc]
mov dword [eax + 0x120], 0
call fcn.004445d0
lea ecx, [eax + 0x12c]
call fcn.00445760
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0x124]
call fcn.004453d0
jmp 0x4188ef
lea ecx, [ebp - 0x684]
call fcn.00406540
mov ecx, dword [eax + 0x30]
sub ecx, esi
mov esi, dword [eax + 0x34]
sbb esi, edi
add ecx, dword [ebp - 0x1248]
mov dword [ebp - 0x1240], ecx
adc esi, dword [ebp - 0x1234]
mov dword [ebp - 0x123c], esi
jmp 0x41935f
mov edi, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0
push 0x4ef010
lea ecx, [ebp - 0x684]
call fcn.00406540
mov ecx, eax
call fcn.00445e80
mov esi, eax
cmp esi, 0xffffffff
je 0x4197a5
push esi
push 0
lea eax, [ebp - 0x6e0]
push eax
lea ecx, [ebp - 0x684]
call fcn.00406540
mov ecx, eax
call fcn.00445ca0
lea eax, [ebp - 0x6e0]
mov byte [ebp - 4], 0x20
push eax
lea edx, [ebp - 0x760]
lea ecx, [ebp - 0x1264]
call fcn.004506a0
add esp, 4
push 0x4ef014
mov edx, eax
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x724]
call fcn.00408c90
add esp, 4
lea ecx, [ebp - 0x1264]
mov byte [ebp - 4], 0x23
call fcn.00406810
lea ecx, [ebp - 0x724]
call fcn.00406760
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x419765
push 0
lea ecx, [ebp - 0x724]
call fcn.00406760
push eax
call edi
test eax, eax
jne 0x419765
push eax
push str.CreateDirectory__
mov edx, 0x4ef02c
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea eax, [esi + 1]
push eax
push 0x4ef050
lea ecx, [ebp - 0x684]
call fcn.00406540
mov ecx, eax
call fcn.00445e80
lea ecx, [ebp - 0x724]
mov esi, eax
call fcn.00406810
lea ecx, [ebp - 0x6e0]
mov byte [ebp - 4], 0x1f
call fcn.00406810
cmp esi, 0xffffffff
jne 0x4196c2
lea ecx, [ebx + 8]
call fcn.004445d0
add eax, 0xf0
lea ecx, [ebp - 0x700]
push eax
mov edx, 0x4ef058
call fcn.00450750
add esp, 4
mov esi, eax
lea ecx, [ebx + 8]
mov byte [ebp - 4], 0x24
call fcn.004445d0
add eax, 0xd8
lea ecx, [ebp - 0x724]
push eax
mov edx, esi
call fcn.00450640
add esp, 4
push 0x4ef054
mov edx, eax
mov byte [ebp - 4], 0x25
lea ecx, [ebp - 0x6e0]
call fcn.00408c90
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x684]
mov byte [ebp - 4], 0x26
call fcn.00406540
push eax
mov edx, esi
lea ecx, [ebp - 0x1264]
call fcn.00450640
add esp, 4
lea ecx, [ebp - 0x6bc]
push eax
call fcn.00406820
lea ecx, [ebp - 0x1264]
call fcn.00406810
lea ecx, [ebp - 0x6e0]
call fcn.00406810
lea ecx, [ebp - 0x724]
call fcn.00406810
lea ecx, [ebp - 0x700]
call fcn.00406810
lea ecx, [ebp - 0x760]
jmp 0x4198c2
call fcn.004445d0
add eax, 0xf0
lea ecx, [ebp - 0x1264]
push eax
mov edx, 0x4ef064
call fcn.00450750
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x684]
mov byte [ebp - 4], 0x27
call fcn.00406540
push eax
mov edx, esi
lea ecx, [ebp - 0x700]
call fcn.00450640
add esp, 4
lea ecx, [ebp - 0x6bc]
push eax
call fcn.00406820
lea ecx, [ebp - 0x700]
call fcn.00406810
lea ecx, [ebp - 0x1264]
mov byte [ebp - 4], 0x1a
call fcn.00406810
lea ecx, [ebp - 0x684]
call fcn.00406540
push 0
push 0x40000080
mov ecx, dword [eax + 0x28]
or ecx, dword [eax + 0x2c]
lea ecx, [ebp - 0x6bc]
je 0x41994f
push 3
push 0
push 3
push 0xc0000000
call fcn.00406760
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileW]
push eax
call edi
lea ecx, [ebp - 0x684]
mov esi, eax
call fcn.00406540
lea ecx, [ebp - 0x684]
mov dword [eax + 0x18], esi
call fcn.00406540
cmp dword [eax + 0x18], 0xffffffff
jne 0x419c6e
lea ecx, [ebx + 8]
call fcn.004445d0
cmp dword [eax + 0x18], 1
je 0x41a161
lea ecx, [ebx + 8]
call fcn.004445d0
mov dword [eax + 0x18], 1
jmp 0x41a161
push 1
push 0
push 3
push 0xc0000000
call fcn.00406760
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileW]
push eax
call edi
lea ecx, [ebp - 0x684]
mov esi, eax
call fcn.00406540
lea ecx, [ebp - 0x684]
mov dword [eax + 0x18], esi
call fcn.00406540
push 0
cmp dword [eax + 0x18], 0xffffffff
jne 0x419b76
push 0x40000080
push 3
push 0
push 3
push 0xc0000000
lea ecx, [ebp - 0x6bc]
call fcn.00406760
push eax
call edi
lea ecx, [ebp - 0x684]
mov esi, eax
call fcn.00406540
lea ecx, [ebp - 0x684]
mov dword [eax + 0x18], esi
call fcn.00406540
cmp dword [eax + 0x18], 0xffffffff
je 0x41a117
lea eax, [ebp - 0x770]
push eax
lea ecx, [ebp - 0x684]
call fcn.00406540
mov eax, dword [eax + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x419a0f
push eax
push 0x4ef0e8
mov edx, str.error_GetFileSizeEx____0
xor ecx, ecx
call fcn.0040d390
mov eax, dword [ebp - 0x76c]
add esp, 8
jmp 0x419a3a
lea ecx, [ebp - 0x684]
call fcn.00406540
mov ecx, dword [ebp - 0x770]
mov edx, eax
cmp ecx, dword [edx + 0x30]
jne 0x419f54
mov eax, dword [ebp - 0x76c]
cmp eax, dword [edx + 0x34]
jne 0x419f54
mov dword [ebp - 0xab0], eax
lea ecx, [ebp - 0x6bc]
lea eax, [ebp - 0xab0]
push eax
call fcn.00406760
push eax
call dword [sym.imp.KERNEL32.dll_GetCompressedFileSizeW]
lea ecx, [ebp - 0x684]
mov edi, eax
call fcn.00406540
mov ecx, dword [ebp - 0xab0]
add ecx, edi
cmp dword [eax + 0x2c], 0
jb 0x419c6e
ja 0x419a83
cmp dword [eax + 0x28], ecx
jbe 0x419c6e
lea ecx, [ebp - 0x684]
call fcn.00406540
lea ecx, [ebp - 0x127c]
push dword [eax + 0x2c]
push dword [eax + 0x28]
call fcn.0040d250
mov esi, eax
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x12b0]
mov edx, dword [ebp - 0xab0]
lea edx, [edi + edx]
call fcn.0040d1d0
push 0x4ef254
mov edx, eax
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0x1264]
call fcn.00408c90
add esp, 0xc
push esi
mov edx, eax
mov byte [ebp - 4], 0x30
lea ecx, [ebp - 0x700]
call fcn.004505b0
add esp, 4
push 0
push str.GetCompressedFileSize___parser_msg_peer__
mov ecx, eax
mov byte [ebp - 4], 0x31
call fcn.00406760
mov edx, eax
xor ecx, ecx
call fcn.0040d390
add esp, 8
lea ecx, [ebp - 0x700]
call fcn.00406810
lea ecx, [ebp - 0x1264]
call fcn.00406810
lea ecx, [ebp - 0x12b0]
call fcn.00406810
lea ecx, [ebp - 0x127c]
mov byte [ebp - 4], 0x1a
call fcn.00406810
lea ecx, [ebp - 0x684]
call fcn.00406540
cmp dword [eax + 0x18], 0xffffffff
je 0x419c6e
lea ecx, [ebp - 0x684]
call fcn.00406540
mov eax, dword [eax + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x684]
call fcn.00406540
mov dword [eax + 0x18], 0xffffffff
jmp 0x419c6e
lea eax, [ebp - 0x764]
push eax
push 0
push 0
push 0
push 0
push 0x900c4
lea ecx, [ebp - 0x684]
call fcn.00406540
mov esi, dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov eax, dword [eax + 0x18]
push eax
call esi
test eax, eax
je 0x419c6e
lea ecx, [ebp - 0x684]
call fcn.00406540
push 0
xorps xmm0, xmm0
mov ecx, dword [eax + 0x30]
mov eax, dword [eax + 0x34]
mov dword [ebp - 0x78c], eax
lea eax, [ebp - 0x764]
push eax
push 0
push 0
push 0x10
lea eax, [ebp - 0x798]
mov dword [ebp - 0x790], ecx
push eax
push 0x980c8
lea ecx, [ebp - 0x684]
movlpd qword [ebp - 0x798], xmm0
call fcn.00406540
mov eax, dword [eax + 0x18]
push eax
call esi
test eax, eax
jne 0x419c16
push eax
push 0x4ef25c
mov edx, str.DeviceIoControl___FSCTL_SET_ZERO_DATA
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x684]
call fcn.00406540
push 0
push 0
lea ecx, [ebp - 0x684]
push dword [eax + 0x34]
push dword [eax + 0x30]
call fcn.00406540
mov eax, dword [eax + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x419c59
push eax
push 0x4ef464
mov edx, str.SetFilePointerEx__
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x684]
call fcn.00406540
mov eax, dword [eax + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
lea ecx, [ebp - 0x6bc]
mov dword [ebp - 4], 0xffffffff
call fcn.00406810
mov esi, dword [ebp - 0x123c]
lea ecx, [ebp - 0x684]
call fcn.00406540
lea ecx, [ebp - 0x684]
cmp dword [eax + 0x18], 0xffffffff
jne 0x419cc6
push 0
call fcn.00406540
mov ecx, eax
call fcn.00406760
push eax
mov edx, 0x4ef48c
xor ecx, ecx
call fcn.0040d390
mov eax, dword [ebp - 0x68c]
add esp, 8
jmp 0x419f34
call fcn.00406540
mov ecx, dword [eax + 0x30]
sub ecx, dword [ebp - 0x1240]
mov eax, dword [eax + 0x34]
sbb eax, esi
xor edx, edx
cmp edx, eax
jb 0x419d0d
ja 0x419ceb
mov esi, dword [ebp - 0x1220]
cmp esi, ecx
jbe 0x419d13
lea ecx, [ebp - 0x684]
call fcn.00406540
mov edi, dword [eax + 0x30]
sub edi, dword [ebp - 0x1240]
mov esi, dword [eax + 0x34]
sbb esi, dword [ebp - 0x123c]
jmp 0x419d8b
mov esi, dword [ebp - 0x1220]
mov eax, dword [ebp - 0x68c]
lea ecx, [ebp - 0x684]
mov edi, esi
mov dword [ebp - 0x1238], eax
call fcn.00406540
mov ecx, dword [eax + 0x28]
add ecx, esi
mov esi, dword [eax + 0x2c]
mov dword [ebp - 0x1224], ecx
lea ecx, [ebp - 0x684]
adc esi, dword [ebp - 0x68c]
call fcn.00406540
mov ecx, eax
cmp esi, dword [ecx + 0x34]
jb 0x419d85
ja 0x419d5f
mov eax, dword [ebp - 0x1224]
cmp eax, dword [ecx + 0x30]
jbe 0x419d85
lea ecx, [ebp - 0x684]
call fcn.00406540
lea ecx, [ebp - 0x684]
lea esi, [eax + 0x30]
call fcn.00406540
mov edi, dword [esi]
mov esi, dword [esi + 4]
sub edi, dword [eax + 0x28]
sbb esi, dword [eax + 0x2c]
jmp 0x419d8b
mov esi, dword [ebp - 0x1238]
mov eax, edi
or eax, esi
jne 0x419da6
push eax
push 0x4ef4b8
mov edx, 0x4ef4cc
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x684]
call fcn.00406540
mov ecx, dword [eax + 0x30]
sub ecx, dword [ebp - 0x1240]
mov eax, dword [eax + 0x34]
sbb eax, dword [ebp - 0x123c]
cmp esi, eax
jb 0x419de3
ja 0x419dcd
cmp edi, ecx
jbe 0x419de3
push 0
push 0x4ef4e8
mov edx, 0x4ef4fc
xor ecx, ecx
call fcn.0040d370
add esp, 8
mov eax, dword [ebp - 0x123c]
lea ecx, [ebp - 0x684]
mov dword [0x50e4a4], eax
mov eax, dword [ebp - 0x1240]
mov dword [0x50e4a0], eax
mov eax, dword [0x51028c]
mov dword [0x50e4a8], eax
call fcn.00406540
cmp dword [eax + 0x18], 0xffffffff
jne 0x419e2a
push 0
push 0x4ef51c
mov edx, str.it_vFile__second.handle
xor ecx, ecx
call fcn.0040d370
add esp, 8
push 0x50e498
push 0
push edi
push dword [ebp - 0x121c]
lea ecx, [ebp - 0x684]
call fcn.00406540
mov eax, dword [eax + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
push 0x3e8
push dword [0x50e4a8]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x419e92
call fcn.00416bc0
push 0xbb8
push dword [0x50e4a8]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x419e92
push 0
push 0x4ef59c
mov edx, 0x4ef5b0
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebx + 8]
call fcn.004445d0
cmp byte [eax + 0xb], 0
jne 0x419ed1
lea ecx, [ebp - 0x684]
call fcn.00406540
lea ecx, [ebp - 0x684]
add dword [eax + 0x20], edi
adc dword [eax + 0x24], esi
call fcn.00406540
cmp byte [eax + 0x39], 0
jne 0x419ed1
lea ecx, [ebp - 0x684]
call fcn.00406540
mov byte [eax + 0x39], 1
sub dword [ebp - 0x1220], edi
lea ecx, [ebx + 8]
sbb dword [ebp - 0x68c], esi
call fcn.004445d0
lea ecx, [ebx + 8]
add dword [eax + 0x4d0], edi
adc dword [eax + 0x4d4], esi
call fcn.004445d0
add dword [eax + 0x4e8], edi
adc dword [eax + 0x4ec], esi
mov eax, dword [ebp - 0x68c]
test eax, eax
jl 0x41a173
jg 0x419f22
cmp dword [ebp - 0x1220], 0
jbe 0x41a173
add dword [ebp - 0x121c], edi
add dword [ebp - 0x1248], edi
adc dword [ebp - 0x1234], esi
test eax, eax
jl 0x41a173
jg 0x419280
cmp dword [ebp - 0x1220], 0
jbe 0x41a173
jmp 0x419280
lea ecx, [ebp - 0x684]
call fcn.00406540
cmp dword [eax + 0x18], 0xffffffff
je 0x419f8c
lea ecx, [ebp - 0x684]
call fcn.00406540
mov eax, dword [eax + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x684]
call fcn.00406540
mov dword [eax + 0x18], 0xffffffff
push dword [ebx + 8]
call fcn.00480470
add esp, 4
lea ecx, [ebx + 8]
cmp dword [0x5103fc], 0
jne 0x41a052
call fcn.004445d0
add eax, 0xd8
lea ecx, [ebp - 0x127c]
push eax
mov edx, 0x4ef270
call fcn.00450750
add esp, 4
push 0x4ef144
mov edx, eax
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x12b0]
call fcn.00408c90
add esp, 4
mov esi, eax
lea ecx, [ebx + 8]
mov byte [ebp - 4], 0x29
call fcn.004445d0
add eax, 0x334
lea ecx, [ebp - 0x1264]
push eax
mov edx, esi
call fcn.00408c90
add esp, 4
push 0x4ef150
mov edx, eax
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0x700]
call fcn.00408c90
add esp, 4
mov ecx, 0x50c990
push eax
call fcn.00406820
lea ecx, [ebp - 0x700]
call fcn.00406810
lea ecx, [ebp - 0x1264]
call fcn.00406810
lea ecx, [ebp - 0x12b0]
call fcn.00406810
lea ecx, [ebp - 0x127c]
jmp 0x41a0f8
call fcn.004445d0
add eax, 0xd8
lea ecx, [ebp - 0x1488]
push eax
mov edx, str.Info_message._Torrent_was_stopped_n_n
call fcn.00450750
add esp, 4
push str._nHash:
mov edx, eax
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x1470]
call fcn.00408c90
add esp, 4
mov esi, eax
lea ecx, [ebx + 8]
mov byte [ebp - 4], 0x2c
call fcn.004445d0
add eax, 0x334
lea ecx, [ebp - 0x1458]
push eax
mov edx, esi
call fcn.00408c90
add esp, 4
push str._n_nThis_file_exists_on_disk._You_can:_n1.Choose_another_path_to_save__n2.Delete_existing_files
mov edx, eax
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x1428]
call fcn.00408c90
add esp, 4
mov ecx, 0x50c990
push eax
call fcn.00406820
lea ecx, [ebp - 0x1428]
call fcn.00406810
lea ecx, [ebp - 0x1458]
call fcn.00406810
lea ecx, [ebp - 0x1470]
call fcn.00406810
lea ecx, [ebp - 0x1488]
call fcn.00406810
push 0
push 0x177b
push 0x111
push dword [0x50e598]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x41a161
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebx + 8]
cmp eax, 0x70
jne 0x41a13f
call fcn.004445d0
push 0
push 0x4ef070
mov edx, str.ERROR_DISK_FULL
mov dword [eax + 0x18], 2
jmp 0x41a157
call fcn.004445d0
push 0
push 0x4ef094
mov edx, 0x4ef0a8
mov dword [eax + 0x18], 1
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x6bc]
mov dword [ebp - 4], 0xffffffff
call fcn.00406810
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [ebx + 0xc]
mov dword [eax + 0x118], 0
call fcn.004445d0
lea ecx, [eax + 0x12c]
call fcn.00443a40
test al, al
jne 0x41a1bd
push dword [ebx + 0xc]
push dword [ebx + 8]
call fcn.00416be0
add esp, 8
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0x12c]
call fcn.00445760
lea ecx, [ebx + 8]
call fcn.004445d0
cmp byte [eax + 0xb], 0
jne 0x4188ef
lea ecx, [ebx + 8]
call fcn.004445d0
cmp dword [eax + 0x114], 0
ja 0x41a1f0
cmp dword [eax + 0x110], 0x4000
jbe 0x4188ef
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
cmp byte [eax + 0x5a], 0
jne 0x4188ef
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0x124]
call fcn.00443d80
cmp eax, 1
jbe 0x41a23b
push 0
push 0x4ef5c8
mov edx, str.it_peer__peer_requested.size_____1
xor ecx, ecx
call fcn.0040d370
add esp, 8
push 4
lea ecx, [ebp - 0x694]
call fcn.004029d0
lea eax, [ebp - 0x694]
push eax
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0x124]
call fcn.00406510
lea eax, [ebp - 0x1288]
push eax
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0x124]
call fcn.00406500
push eax
lea ecx, [ebp - 0x694]
call fcn.00406390
test al, al
je 0x4188ef
lea ecx, [ebp - 0x694]
call fcn.00406430
lea ecx, [ebx + 0xc]
mov eax, dword [eax]
mov dword [ebp - 0xab4], eax
call fcn.004445d0
mov ecx, dword [ebp - 0xab4]
cmp ecx, dword [eax + 0x158]
jae 0x41a2d5
push 0
push 0x4ef600
mov edx, 0x4ef614
xor ecx, ecx
call fcn.0040d370
mov ecx, dword [ebp - 0xab4]
add esp, 8
push ecx
lea eax, [ebp - 0x13e8]
push eax
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x3ac]
call fcn.00445b70
mov ecx, eax
call fcn.00445960
test al, al
jne 0x41a58f
lea eax, [ebp - 0xab4]
push eax
lea ecx, [ebp - 0x12fc]
call fcn.0041cdd0
lea ecx, [ebx + 8]
push dword [eax]
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x1224], esp
push eax
call fcn.004445d0
lea ecx, [eax + 0x3bc]
call fcn.00443bb0
sub esp, 0xc
mov dword [ebp - 4], 0x32
lea ecx, [ebx + 8]
push esp
call fcn.004445d0
lea ecx, [eax + 0x3bc]
call fcn.00443bd0
lea ecx, [ebp - 0x738]
mov dword [ebp - 4], 0xffffffff
call fcn.00451520
add esp, 0x1c
lea eax, [ebp - 0x1320]
mov dword [ebp - 4], 0x33
push eax
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x3bc]
call fcn.00443bb0
push eax
lea ecx, [ebp - 0x738]
mov byte [ebp - 4], 0x34
call fcn.00444f30
lea ecx, [ebp - 0x1320]
mov byte [ebp - 0x1211], al
mov byte [ebp - 4], 0x33
call fcn.004079a0
cmp byte [ebp - 0x1211], 0
je 0x41a3ca
push 0
push 0x4ef63c
mov edx, 0x4ef650
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x694]
call fcn.00406430
lea ecx, [ebp - 0x694]
mov edi, dword [eax + 0x1c]
call fcn.00406430
mov eax, dword [eax + 0x20]
add eax, edi
mov dword [ebp - 0x1238], eax
cmp eax, edi
ja 0x41a408
push 0
push 0x4ef66c
mov edx, str.end_index_block___begin_index_block
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x738]
call fcn.00444140
lea ecx, [eax + 0x10]
call fcn.00445bb0
mov esi, dword [ebp - 0x1238]
cmp eax, esi
jae 0x41a43b
push 0
push 0x4ef6a8
mov edx, str.bitField_blocks_write.size_____end_index_block
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x694]
call fcn.00406430
cmp dword [eax + 0x14], esi
jb 0x41a462
lea ecx, [ebp - 0x694]
call fcn.00406430
lea ecx, [eax + 4]
call fcn.00445bb0
cmp eax, esi
jae 0x41a478
push 0
push 0x4ef6ec
mov edx, 0x4ef700
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x738]
call fcn.00444140
lea ecx, [eax + 0x10]
call fcn.00445bb0
cmp edi, esi
jae 0x41a57d
push edi
lea eax, [ebp - 0x1350]
push eax
lea ecx, [ebp - 0x738]
call fcn.00444140
lea ecx, [eax + 0x10]
call fcn.00445b70
mov ecx, eax
call fcn.00445960
test al, al
je 0x41a4ca
push 0
push 0x4ef72c
mov edx, 0x4ef740
jmp 0x41a566
push 1
push ecx
push edi
lea eax, [ebp - 0x13f8]
push eax
lea ecx, [ebp - 0x738]
call fcn.00444140
lea ecx, [eax + 0x10]
call fcn.00445b70
add esp, 4
mov ecx, eax
call fcn.00445980
lea ecx, [ebp - 0x738]
call fcn.00444140
lea ecx, [ebp - 0x738]
inc dword [eax + 0x20]
call fcn.00444140
lea ecx, [ebp - 0x694]
lea esi, [eax + 0x20]
call fcn.00406430
lea ecx, [eax + 0x14]
mov eax, dword [esi]
cmp eax, dword [ecx]
jne 0x41a538
push 0
push 0x4ef760
mov edx, str.count_write_blocks__count_all_blocks.
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x738]
call fcn.00444140
lea ecx, [ebp - 0x694]
lea esi, [eax + 0x20]
call fcn.00406430
lea ecx, [eax + 0x14]
mov eax, dword [esi]
cmp eax, dword [ecx]
jbe 0x41a570
push 0
push 0x4ef774
mov edx, 0x4ef7cc
xor ecx, ecx
call fcn.0040d370
add esp, 8
inc edi
cmp edi, dword [ebp - 0x1238]
jb 0x41a493
lea ecx, [ebp - 0x738]
mov dword [ebp - 4], 0xffffffff
call fcn.004079a0
push 0
lea eax, [ebp - 0x12e4]
push eax
lea ecx, [ebp - 0x694]
call fcn.004063d0
lea eax, [ebp - 0x1288]
push eax
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0x124]
call fcn.00406500
push eax
lea ecx, [ebp - 0x694]
call fcn.00406390
test al, al
jne 0x41a290
jmp 0x4188ef
lea ecx, [ebx + 0xc]
call fcn.004445d0
mov ecx, 3
jmp 0x4188eb
lea ecx, [ebx + 8]
call fcn.004445d0
cmp byte [eax + 0xb], 0
jne 0x4188ef
lea ecx, [ebx + 0xc]
call fcn.004445d0
mov ecx, 2
jmp 0x4188eb
push dword [edi + 5]
call dword [sym.imp.WS2_32.dll_ntohl]
push dword [edi + 9]
mov esi, eax
call dword [sym.imp.WS2_32.dll_ntohl]
mov edi, eax
mov eax, dword [ebp - 0x1218]
push dword [eax + 0xd]
call dword [sym.imp.WS2_32.dll_ntohl]
push 4
lea ecx, [ebp - 0x698]
mov dword [ebp - 0x1224], eax
call fcn.004029d0
lea eax, [ebp - 0x698]
push eax
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0x13c]
call fcn.00406510
lea eax, [ebp - 0x128c]
push eax
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0x13c]
call fcn.00406500
push eax
lea ecx, [ebp - 0x698]
call fcn.00406390
test al, al
je 0x4188ef
nop dword [eax]
lea ecx, [ebp - 0x698]
call fcn.004445d0
cmp dword [eax], esi
jne 0x41a6d4
lea ecx, [ebp - 0x698]
call fcn.004445d0
cmp dword [eax + 4], edi
jne 0x41a6d4
lea ecx, [ebp - 0x698]
call fcn.004445d0
mov ecx, dword [ebp - 0x1224]
cmp dword [eax + 8], ecx
jne 0x41a6d4
lea ecx, [ebp - 0x698]
call fcn.004445d0
mov byte [eax + 0xc], 1
push 0
lea eax, [ebp - 0x12f4]
push eax
lea ecx, [ebp - 0x698]
call fcn.004445a0
lea eax, [ebp - 0x128c]
push eax
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0x13c]
call fcn.00406500
push eax
lea ecx, [ebp - 0x698]
call fcn.00406390
test al, al
jne 0x41a690
jmp 0x4188ef
movzx eax, word [edi + 5]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx edi, ax
mov eax, dword [ebp - 0x1218]
movzx esi, word [eax + 5]
test edi, edi
je 0x4188ef
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
mov word [eax + 0x52], si
cmp byte [0x510408], 0
je 0x41a910
lea ecx, [ebx + 8]
call fcn.004445d0
cmp byte [eax + 0x11], 0
je 0x41a910
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
cmp byte [eax + 0x63], 0
je 0x41a910
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x4b8]
call fcn.00443d80
cmp eax, 0x64
jae 0x41a910
mov ecx, 0x5102cc
call fcn.00443d80
cmp eax, 0x2710
jae 0x41a910
lea ecx, [ebp - 0xa60]
call fcn.0041cde0
lea ecx, [ebx + 0xc]
mov dword [ebp - 4], 0x35
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [ebx + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0xa60], eax
mov word [ebp - 0xa5c], si
mov byte [ebp - 0xa5a], 1
call fcn.004445d0
mov ecx, 0x5102bc
movups xmm0, xmmword [eax + 0x386]
movups xmmword [ebp - 0xa42], xmm0
mov eax, dword [eax + 0x396]
mov dword [ebp - 0xa32], eax
xorps xmm0, xmm0
lea eax, [ebp - 0xa60]
mov byte [ebp - 0xa43], 1
push eax
lea eax, [ebp - 0x748]
mov word [ebp - 0xa59], 0
push eax
movlpd qword [ebp - 0x7e0], xmm0
movlpd qword [ebp - 0x7d8], xmm0
call fcn.004516a0
cmp byte [ebp - 0x744], 0
je 0x41a8fe
lea eax, [ebp - 0xa60]
push eax
lea eax, [ebp - 0x1400]
push eax
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x4b8]
call fcn.004516a0
lea ecx, [ebp - 0x3f0]
call fcn.0041d050
lea ecx, [ebp - 0x748]
mov byte [ebp - 4], 0x36
call fcn.00406430
push eax
lea ecx, [ebp - 0x3f0]
call fcn.0041d170
lea ecx, [ebx + 8]
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x134], 1
call fcn.004445d0
mov ecx, 0x5101f4
movups xmm0, xmmword [eax + 0x386]
movups xmmword [ebp - 0x130], xmm0
mov eax, dword [eax + 0x396]
mov dword [ebp - 0x120], eax
lea eax, [ebp - 0x3f0]
push eax
call fcn.004441f0
lea ecx, [ebp - 0x3f0]
call fcn.0041d0a0
lea ecx, [ebp - 0xa60]
mov dword [ebp - 4], 0xffffffff
call fcn.0041cfe0
lea ecx, [ebx + 0xc]
call fcn.004445d0
cmp byte [eax + 0xa], 0
je 0x4188ef
lea ecx, [ebx + 0xc]
call fcn.004445d0
cmp dword [eax], 6
jne 0x4188ef
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
cmp dword [eax + 0x4c], 0
jne 0x4188ef
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
push eax
lea ecx, [ebp - 0x3a8]
call fcn.0041d490
mov dword [ebp - 4], 0x37
lea ecx, [ebp - 0xaa8]
mov dword [ebp - 0x35c], edi
mov word [ebp - 0x358], si
call fcn.00414170
mov byte [ebp - 4], 0x38
lea ecx, [ebx + 0xc]
mov dword [ebp - 0xa5c], edi
mov word [ebp - 0xa58], si
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
add eax, 8
lea ecx, [ebp - 0xaa0]
push eax
call fcn.00406ca0
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
add eax, 0x20
lea ecx, [ebp - 0xa88]
push eax
call fcn.004067e0
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [ebx + 0xc]
mov eax, dword [eax + 4]
mov dword [ebp - 0xaa4], eax
xor eax, eax
mov word [ebp - 0xaa8], ax
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [ebx + 0xc]
mov al, byte [eax + 0x57]
mov byte [ebp - 0xa51], al
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [ebx + 0xc]
mov al, byte [eax + 0x58]
mov byte [ebp - 0xa50], al
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [ebx + 0xc]
mov al, byte [eax + 0x56]
mov byte [ebp - 0xa52], al
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [ebx + 0xc]
mov ax, word [eax + 0x54]
mov word [ebp - 0xa54], ax
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [ebx + 0xc]
mov eax, dword [eax + 0x5c]
mov dword [ebp - 0xa4c], eax
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
mov ecx, dword [eax + 0xd0]
mov dword [ebp - 0x9d8], ecx
lea ecx, [ebp - 0x6c8]
mov eax, dword [eax + 0xd4]
mov dword [ebp - 0x9d4], eax
call fcn.00450f00
lea eax, [ebp - 0x12e0]
push eax
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x3f0]
call fcn.00406500
push 0x3e8
lea ecx, [ebx + 8]
mov eax, dword [eax]
mov dword [ebp - 0x6c8], eax
mov byte [ebp - 0x6c4], 0
call fcn.004445d0
mov esi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [eax + 0x3f8]
push eax
call esi
test eax, eax
jne 0x41ac0f
sub esp, 0x300
lea eax, [ebp - 0xaa8]
mov ecx, esp
push eax
call fcn.0041d490
push dword [ebx + 8]
lea ecx, [ebp - 0x1408]
call fcn.00415e40
add esp, 0x304
lea ecx, [ebp - 0x6c8]
push eax
call fcn.00450f10
cmp byte [ebp - 0x6c4], 0
jne 0x41abe0
lea eax, [ebp - 0x12dc]
push eax
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x3f0]
call fcn.00406500
push eax
lea ecx, [ebp - 0x6c8]
call fcn.00406390
test al, al
je 0x41abca
lea ecx, [ebp - 0x6c8]
call fcn.00406430
cmp byte [eax + 0x57], 0
je 0x41abb9
lea eax, [ebp - 0x12d8]
push eax
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x3f0]
call fcn.00406500
mov eax, dword [eax]
mov dword [ebp - 0x6c8], eax
jmp 0x41abe0
lea ecx, [ebp - 0x6c8]
call fcn.00406430
mov byte [eax + 0x57], 1
jmp 0x41abe0
push 0
push 0x4ef7fc
mov edx, str.PORT_
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebx + 8]
call fcn.004445d0
mov edi, dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [eax + 0x3f8]
push eax
call edi
test eax, eax
jne 0x41ac2b
push eax
push 0x4ef834
mov edx, str._ReleaseMutex_it_torrent__mutex_peers_all
xor ecx, ecx
call fcn.0040d370
jmp 0x41ac28
push 0
push 0x4ef874
mov edx, str._WAIT_OBJECT_0_it_torrent__mutex_peers_all
xor ecx, ecx
call fcn.0040d370
mov edi, dword [sym.imp.KERNEL32.dll_ReleaseMutex]
add esp, 8
lea eax, [ebp - 0x12d4]
push eax
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x3f0]
call fcn.00406500
push eax
lea ecx, [ebp - 0x6c8]
call fcn.00406390
test al, al
je 0x41ad89
lea ecx, [ebx + 0xc]
call fcn.004445d0
mov ecx, dword [ebp - 0x6c8]
mov dword [eax + 0xec], ecx
lea ecx, [ebp - 0x72c]
call fcn.00450f00
lea eax, [ebp - 0x12d0]
push eax
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x40c]
call fcn.00406500
push 0x3e8
lea ecx, [ebx + 8]
mov eax, dword [eax]
mov dword [ebp - 0x72c], eax
mov byte [ebp - 0x728], 0
call fcn.004445d0
mov eax, dword [eax + 0x414]
push eax
call esi
test eax, eax
jne 0x41ad59
lea eax, [ebp - 0x3a8]
push eax
lea eax, [ebp - 0x1410]
push eax
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x40c]
call fcn.00450ed0
push eax
lea ecx, [ebp - 0x72c]
call fcn.00450f10
cmp byte [ebp - 0x728], 0
je 0x41ad37
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [ebx + 0xc]
mov byte [eax + 0x57], 0
call fcn.004445d0
mov ecx, dword [ebp - 0x72c]
mov dword [eax + 0xf0], ecx
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
mov byte [eax + 0x57], 1
lea ecx, [ebx + 8]
call fcn.004445d0
mov eax, dword [eax + 0x414]
push eax
call edi
test eax, eax
jne 0x41ad6f
push eax
push 0x4ef8b4
mov edx, 0x4ef8c8
jmp 0x41ad65
push 0
push str.parser_msg_peer___error
mov edx, 0x4ef8fc
xor ecx, ecx
call fcn.0040d370
add esp, 8
cmp byte [ebp - 0x728], 0
je 0x41ad89
push dword [ebp - 0x72c]
push dword [ebx + 8]
call fcn.00414660
add esp, 8
lea ecx, [ebp - 0xaa8]
call fcn.00414370
lea ecx, [ebp - 0x3a8]
mov dword [ebp - 4], 0xffffffff
call fcn.00414370
jmp 0x4188ef
lea ecx, [ebx + 8]
call fcn.004445d0
cmp byte [eax + 0x13], 0
jne 0x4188f5
lea ecx, [ebx + 8]
call fcn.004445d0
cmp byte [eax + 9], 0
jne 0x4188f5
lea ecx, [ebx + 8]
call fcn.004445d0
cmp byte [eax + 0xb], 0
jne 0x4188f5
push dword [edi + 5]
call dword [sym.imp.WS2_32.dll_ntohl]
lea ecx, [ebx + 0xc]
mov dword [ebp - 0xaac], eax
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [eax + 0x2c8]
call fcn.00445ba0
test al, al
je 0x41ae57
push 0
push 0x4ef918
mov edx, str.Suggest_Piece_bitField.empty__
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebx + 8]
push 0
call fcn.004445d0
lea ecx, [ebx + 0xc]
mov eax, dword [eax + 0x118]
push eax
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [eax + 0x2c8]
call fcn.00445bc0
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [eax + 0x2c8]
call fcn.00445bb0
mov ecx, dword [ebp - 0xaac]
cmp ecx, eax
jae 0x4188f5
push ecx
lea eax, [ebp - 0x1328]
push eax
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [eax + 0x2c8]
call fcn.00445b70
mov ecx, eax
call fcn.00445960
test al, al
jne 0x41af1f
push 1
push ecx
push dword [ebp - 0xaac]
lea eax, [ebp - 0x1330]
push eax
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [eax + 0x2c8]
call fcn.00445b70
add esp, 4
mov ecx, eax
call fcn.00445980
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
push 0
push 0x4ef960
mov edx, str.Suggest_Piece_piece_index
xor ecx, ecx
inc dword [eax + 0x2d8]
call fcn.0040d370
add esp, 8
push dword [ebp - 0xaac]
lea eax, [ebp - 0x1338]
push eax
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x3ac]
call fcn.00445b70
mov ecx, eax
call fcn.00445960
test al, al
jne 0x4188f5
lea eax, [ebp - 0xaac]
push eax
lea eax, [ebp - 0x1340]
push eax
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [eax + 0x2e8]
call fcn.004515b0
jmp 0x4188f5
mov eax, dword [ebp - 0x122c]
cmp eax, 1
je 0x41aff1
mov edx, eax
lea ecx, [ebp - 0x1264]
call fcn.0040cfc0
push eax
mov edx, str.Have_All__message_lenght:
mov dword [ebp - 4], 0x39
lea ecx, [ebp - 0x700]
call fcn.00450d00
add esp, 4
push 0
push 0x4ef9a0
mov ecx, eax
mov byte [ebp - 4], 0x3a
call fcn.00406b60
mov edx, eax
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x700]
call fcn.00406cd0
lea ecx, [ebp - 0x1264]
mov dword [ebp - 4], 0xffffffff
call fcn.00406cd0
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [eax + 0x2c8]
call fcn.00445ba0
test al, al
je 0x4188f5
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [ebx + 0xc]
mov byte [eax + 0x2dc], 1
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [ebx + 8]
mov byte [eax + 0xcb], 1
call fcn.004445d0
lea ecx, [ebx + 8]
inc dword [eax + 0x138]
call fcn.004445d0
cmp byte [eax + 0x13], 0
jne 0x4188f5
push 1
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [ebx + 0xc]
mov eax, dword [eax + 0x118]
push eax
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [eax + 0x2c8]
call fcn.00445bc0
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [ebx + 0xc]
lea esi, [eax + 0x118]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [eax + 0x2d8]
mov eax, dword [esi]
mov dword [ecx], eax
jmp 0x4188f5
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [eax + 0x2c8]
call fcn.00445ba0
test al, al
je 0x4188f5
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [ebx + 8]
mov byte [eax + 0xcb], 0
call fcn.004445d0
cmp byte [eax + 0x13], 0
jne 0x4188f5
push 0
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [ebx + 0xc]
mov eax, dword [eax + 0x118]
push eax
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [eax + 0x2c8]
call fcn.00445bc0
jmp 0x4188f5
lea ecx, [ebx + 0xc]
call fcn.004445d0
cmp word [eax + 8], 0
jne 0x4188f5
lea ecx, [ebx + 0xc]
call fcn.004445d0
mov ecx, 0x69
mov word [eax + 8], cx
jmp 0x4188f5
lea ecx, [ebx + 8]
call fcn.004445d0
cmp byte [eax + 0x13], 0
jne 0x4188f5
push dword [edi + 5]
call dword [sym.imp.WS2_32.dll_ntohl]
lea ecx, [ebx + 0xc]
mov dword [ebp - 0xab8], eax
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [eax + 0x2c8]
call fcn.00445ba0
test al, al
je 0x41b1eb
push 0
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [ebx + 0xc]
mov eax, dword [eax + 0x118]
push eax
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [eax + 0x2c8]
call fcn.00445bc0
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [eax + 0x2c8]
call fcn.00445bb0
mov ecx, dword [ebp - 0xab8]
cmp ecx, eax
jae 0x4188f5
push ecx
lea eax, [ebp - 0x1348]
push eax
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [eax + 0x2c8]
call fcn.00445b70
mov ecx, eax
call fcn.00445960
test al, al
jne 0x41b299
push 1
push ecx
push dword [ebp - 0xab8]
lea eax, [ebp - 0x13d0]
push eax
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [eax + 0x2c8]
call fcn.00445b70
add esp, 4
mov ecx, eax
call fcn.00445980
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
inc dword [eax + 0x2d8]
lea eax, [ebp - 0xab8]
push eax
lea eax, [ebp - 0x1358]
push eax
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [eax + 0xf0]
call fcn.00406430
lea ecx, [eax + 0x2e0]
call fcn.004515b0
jmp 0x4188f5
movzx eax, byte [edi + 5]
cmp eax, 3
ja case.default.0x41b2d7
jmp dword [eax*4 + 0x41cdb8]
mov ecx, dword [ebp - 0x1218]
add edi, 6
mov edx, dword [ebp - 0x122c]
mov eax, edi
sub eax, ecx
add eax, 4
cmp eax, edx
jae 0x4188ef
nop dword [eax]
mov al, byte [edi]
cmp al, 0x64
jne 0x41b30c
inc edi
jmp 0x41b499
cmp al, 0x65
jne 0x41b316
inc edi
jmp 0x41b499
movzx eax, al
push eax
call fcn.004b6c19
add esp, 4
test eax, eax
je 0x4188ef
mov edx, str.:e::
mov ecx, edi
call fcn.0040c720
mov dword [ebp - 0x1224], eax
test eax, eax
je 0x4188ef
mov ecx, eax
mov edx, edi
sub ecx, edi
push ecx
lea ecx, [ebp - 0x9c]
call fcn.004516c0
add esp, 4
lea eax, [ebp - 0x9c]
push eax
call fcn.004b5a4b
mov edi, dword [ebp - 0x1224]
lea ecx, [ebp - 0x9c]
add esp, 4
mov esi, eax
inc edi
mov edx, edi
push esi
call fcn.004516c0
mov al, byte [edi + esi]
add edi, esi
add esp, 4
cmp al, 0x69
jne 0x41b3f4
inc edi
mov edx, 0x4ef9dc
mov ecx, edi
call fcn.0040c720
mov dword [ebp - 0x1224], eax
test eax, eax
je 0x41b3ec
mov esi, eax
lea eax, [ebp - 0x68]
sub esi, edi
push esi
push edi
push eax
call fcn.004aee70
add esp, 0xc
cmp esi, 0x32
jae 0x41cd53
lea ecx, [ebx + 0xc]
mov byte [ebp + esi - 0x68], 0
call fcn.004445d0
lea edx, [ebp - 0x68]
lea ecx, [ebp - 0x9c]
mov eax, dword [eax + 0xf0]
push eax
call fcn.00416060
mov eax, dword [ebp - 0x1224]
add esp, 4
lea edi, [eax + 1]
jmp 0x41b48d
cmp al, 0x64
jne 0x41b3fe
inc edi
jmp 0x41b48d
movzx eax, al
push eax
call fcn.004b6c19
add esp, 4
test eax, eax
je 0x4188ef
mov edx, 0x4ef9e0
mov ecx, edi
call fcn.0040c720
mov dword [ebp - 0x1224], eax
test eax, eax
je 0x4188ef
mov ecx, eax
mov edx, edi
sub ecx, edi
push ecx
lea ecx, [ebp - 0x68]
call fcn.004516c0
add esp, 4
lea eax, [ebp - 0x68]
push eax
call fcn.004b5a4b
mov edi, dword [ebp - 0x1224]
mov esi, eax
add esp, 4
inc edi
cmp esi, 0x32
jae 0x41b48b
push esi
lea eax, [ebp - 0x68]
push edi
push eax
call fcn.004aee70
add esp, 0xc
mov byte [ebp + esi - 0x68], 0
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea edx, [ebp - 0x68]
lea ecx, [ebp - 0x9c]
mov eax, dword [eax + 0xf0]
push eax
call fcn.00416060
add esp, 4
add edi, esi
mov ecx, dword [ebp - 0x1218]
mov edx, dword [ebp - 0x122c]
mov eax, edi
sub eax, ecx
add eax, 4
cmp eax, edx
jb 0x41b300
jmp 0x4188ef
cmp byte [edi + 6], 0x64
je 0x41b4c5
lea ecx, [ebx + 0xc]
call fcn.004445d0
mov ecx, 5
jmp 0x4188eb
push 8
lea ecx, [ebp - 0x6a4]
add edi, 7
call fcn.0041d720
lea ecx, [ebp - 0x6a4]
call fcn.004455f0
mov eax, edi
mov dword [ebp - 4], 0x3b
sub eax, dword [ebp - 0x1218]
add eax, 4
cmp eax, dword [ebp - 0x122c]
jae 0x41ba6c
nop
mov edx, 0x4ef9e4
mov ecx, edi
call fcn.0040c720
mov esi, eax
test esi, esi
je 0x41ba6c
mov ecx, esi
mov edx, edi
sub ecx, edi
push ecx
lea ecx, [ebp - 0x680]
call fcn.004516e0
add esp, 4
lea eax, [ebp - 0x680]
push eax
call fcn.004b5a4b
add esp, 4
mov dword [ebp - 0x1224], eax
cmp eax, 0x5dc
jg 0x41ba6c
lea edi, [esi + 1]
push eax
mov edx, edi
lea ecx, [ebp - 0x680]
call fcn.004516e0
add edi, dword [ebp - 0x1224]
lea ecx, [ebp - 0x700]
add esp, 4
push 0x4ef9e8
call fcn.00406da0
mov edx, eax
mov byte [ebp - 4], 0x3c
lea ecx, [ebp - 0x680]
call fcn.00450f80
lea ecx, [ebp - 0x700]
mov byte [ebp - 0x1211], al
mov byte [ebp - 4], 0x3b
call fcn.00406cd0
cmp byte [ebp - 0x1211], 0
je 0x41b842
mov edx, 0x4ef9f0
mov ecx, edi
call fcn.0040c720
mov dword [ebp - 0x1224], eax
test eax, eax
je 0x41ba55
mov ecx, eax
mov edx, edi
sub ecx, edi
push ecx
lea ecx, [ebp - 0x680]
call fcn.004516e0
add esp, 4
lea eax, [ebp - 0x680]
push eax
call fcn.004b5a4b
mov esi, eax
add esp, 4
mov eax, 0x2aaaaaab
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x121c], eax
lea ecx, [eax + eax*2]
add ecx, ecx
sub esi, ecx
je 0x41b61b
push 0
push str.len_key___6___0
mov edx, str.PEX
xor ecx, ecx
call fcn.0040d370
add esp, 8
mov edi, dword [ebp - 0x1224]
lea ecx, [ebp - 0xaa8]
inc edi
call fcn.00414170
push 0xb0
lea ecx, [ebp - 0xba8]
mov byte [ebp - 4], 0x3d
call fcn.00416a90
push 1
push 3
lea ecx, [ebp - 0xba8]
call fcn.00448720
cmp dword [ebp - 0x121c], 0
mov byte [ebp - 4], 0x3e
jle 0x41b823
movzx eax, byte [edi]
lea ecx, [ebp - 0xb98]
push eax
call fcn.00448f10
mov edx, 0x4efa1c
mov ecx, eax
call fcn.00450fc0
movzx eax, byte [edi + 1]
lea ecx, [ebp - 0xb98]
push eax
call fcn.00448f10
mov edx, 0x4efa20
mov ecx, eax
call fcn.00450fc0
movzx eax, byte [edi + 2]
lea ecx, [ebp - 0xb98]
push eax
call fcn.00448f10
mov edx, 0x4efa24
mov ecx, eax
call fcn.00450fc0
movzx eax, byte [edi + 3]
lea ecx, [ebp - 0xb98]
push eax
call fcn.00448f10
lea eax, [ebp - 0x700]
add edi, 4
push eax
lea ecx, [ebp - 0xba8]
mov dword [ebp - 0x1224], edi
call fcn.00448660
push eax
lea ecx, [ebp - 0xaa0]
call fcn.00406d20
lea ecx, [ebp - 0x700]
call fcn.00406cd0
lea edx, [ebp - 0xaa0]
lea ecx, [ebp - 0x12cc]
call fcn.00450e60
lea edx, [ebp - 0xaa0]
mov edi, eax
lea ecx, [ebp - 0x12f8]
call fcn.00450e40
lea ecx, [ebp - 0x124a]
mov esi, eax
call fcn.00407910
push eax
push dword [edi]
lea ecx, [ebp - 0x700]
push dword [esi]
call fcn.00450e80
push eax
lea ecx, [ebp - 0xa88]
call fcn.00406820
lea ecx, [ebp - 0x700]
call fcn.00406810
lea ecx, [ebp - 0xaa0]
call fcn.00406b60
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
mov edi, dword [ebp - 0x1224]
mov dword [ebp - 0xaa4], eax
mov dword [ebp - 0xa4c], 1
mov ax, word [edi]
mov word [ebp - 0xa58], ax
push dword [ebp - 0xa58]
call dword [sym.imp.WS2_32.dll_ntohs]
xor ecx, ecx
movzx eax, ax
cmp dword [ebp - 0xaa4], 0xffffffff
mov dword [ebp - 0xa5c], eax
mov word [ebp - 0xaa8], cx
je 0x41b7c4
test eax, eax
je 0x41b7c4
lea eax, [ebp - 0xaa8]
push eax
lea eax, [ebp - 0x1360]
push eax
lea ecx, [ebp - 0x6a4]
call fcn.00450ed0
push 0x4eb003
lea ecx, [ebp - 0x6e0]
add edi, 2
call fcn.00406da0
lea eax, [ebp - 0x6e0]
mov byte [ebp - 4], 0x3f
push eax
lea ecx, [ebp - 0xba8]
call fcn.00448540
lea ecx, [ebp - 0x6e0]
mov byte [ebp - 4], 0x3e
call fcn.00406cd0
mov eax, dword [ebp - 0xba8]
lea ecx, [ebp - 0xba8]
push 0
push 0
mov eax, dword [eax + 4]
add ecx, eax
call fcn.00449cd0
sub dword [ebp - 0x121c], 1
jne 0x41b661
lea ecx, [ebp - 0xba8]
call fcn.00416990
lea ecx, [ebp - 0xaa8]
mov byte [ebp - 4], 0x3b
call fcn.00414370
jmp 0x41ba55
push 0x4efa28
lea ecx, [ebp - 0x700]
call fcn.00406da0
mov edx, eax
mov byte [ebp - 4], 0x40
lea ecx, [ebp - 0x680]
call fcn.00450f80
lea ecx, [ebp - 0x700]
mov byte [ebp - 0x1211], al
mov byte [ebp - 4], 0x3b
call fcn.00406cd0
cmp byte [ebp - 0x1211], 0
je 0x41b960
mov edx, 0x4efa30
mov ecx, edi
call fcn.0040c720
mov dword [ebp - 0x1224], eax
test eax, eax
je 0x41ba55
mov ecx, eax
mov edx, edi
sub ecx, edi
push ecx
lea ecx, [ebp - 0x680]
call fcn.004516e0
add esp, 4
lea eax, [ebp - 0x680]
push eax
call fcn.004b5a4b
add esp, 4
lea ecx, [ebp - 0x6a4]
mov esi, eax
call fcn.00443d80
cmp esi, eax
jne 0x41ba55
mov edi, dword [ebp - 0x1224]
lea ecx, [ebp - 0x6e4]
push 4
inc edi
call fcn.004029d0
lea eax, [ebp - 0x6e4]
push eax
lea ecx, [ebp - 0x6a4]
call fcn.00406510
lea eax, [ebp - 0x1290]
push eax
lea ecx, [ebp - 0x6a4]
call fcn.00406500
push eax
lea ecx, [ebp - 0x6e4]
call fcn.00406390
test al, al
je 0x41ba55
push 0
lea eax, [ebp - 0x12f0]
inc edi
push eax
lea ecx, [ebp - 0x6e4]
call fcn.004063d0
lea eax, [ebp - 0x1290]
push eax
lea ecx, [ebp - 0x6a4]
call fcn.00406500
push eax
lea ecx, [ebp - 0x6e4]
call fcn.00406390
test al, al
jne 0x41b924
jmp 0x41ba55
push str.added6
lea ecx, [ebp - 0x700]
call fcn.00406da0
mov edx, eax
mov byte [ebp - 4], 0x41
lea ecx, [ebp - 0x680]
call fcn.00450f80
lea ecx, [ebp - 0x700]
mov byte [ebp - 0x1211], al
mov byte [ebp - 4], 0x3b
call fcn.00406cd0
cmp byte [ebp - 0x1211], 0
jne 0x41ba55
push str.added6.f
lea ecx, [ebp - 0x700]
call fcn.00406da0
mov edx, eax
mov byte [ebp - 4], 0x42
lea ecx, [ebp - 0x680]
call fcn.00450f80
lea ecx, [ebp - 0x700]
mov byte [ebp - 0x1211], al
mov byte [ebp - 4], 0x3b
call fcn.00406cd0
cmp byte [ebp - 0x1211], 0
jne 0x41ba55
push str.dropped
lea ecx, [ebp - 0x700]
call fcn.00406da0
mov edx, eax
mov byte [ebp - 4], 0x43
lea ecx, [ebp - 0x680]
call fcn.00450f80
lea ecx, [ebp - 0x700]
mov byte [ebp - 0x1211], al
mov byte [ebp - 4], 0x3b
call fcn.00406cd0
cmp byte [ebp - 0x1211], 0
jne 0x41ba55
push str.dropped6
lea ecx, [ebp - 0x700]
call fcn.00406da0
mov edx, eax
mov byte [ebp - 4], 0x44
lea ecx, [ebp - 0x680]
call fcn.00450f80
lea ecx, [ebp - 0x700]
mov byte [ebp - 4], 0x3b
call fcn.00406cd0
mov eax, edi
sub eax, dword [ebp - 0x1218]
add eax, 4
cmp eax, dword [ebp - 0x122c]
jb 0x41b500
lea ecx, [ebp - 0x6a4]
call fcn.00443a40
test al, al
jne 0x41bb9c
push 0x3e8
lea ecx, [ebx + 8]
call fcn.004445d0
mov eax, dword [eax + 0x3f8]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x41bb7b
push 4
lea ecx, [ebp - 0x6c0]
call fcn.004029d0
lea eax, [ebp - 0x6c0]
push eax
lea ecx, [ebp - 0x6a4]
call fcn.00406510
lea eax, [ebp - 0x1294]
push eax
lea ecx, [ebp - 0x6a4]
call fcn.00406500
push eax
lea ecx, [ebp - 0x6c0]
call fcn.00406390
test al, al
je 0x41bb55
nop word [eax + eax]
sub esp, 0x300
lea ecx, [ebp - 0x6c0]
mov esi, esp
call fcn.00406430
push eax
mov ecx, esi
call fcn.0041d490
push dword [ebx + 8]
lea ecx, [ebp - 0x7a8]
call fcn.00415e40
add esp, 0x304
lea eax, [ebp - 0x12ec]
lea ecx, [ebp - 0x6c0]
push 0
push eax
call fcn.004063d0
lea eax, [ebp - 0x1294]
push eax
lea ecx, [ebp - 0x6a4]
call fcn.00406500
push eax
lea ecx, [ebp - 0x6c0]
call fcn.00406390
test al, al
jne 0x41baf0
lea ecx, [ebx + 8]
call fcn.004445d0
mov eax, dword [eax + 0x3f8]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
test eax, eax
jne 0x41bb91
push eax
push 0x4efa5c
mov edx, 0x4efa74
jmp 0x41bb87
push 0
push 0x4efa90
mov edx, 0x4efa94
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x6a4]
call fcn.00445430
lea ecx, [ebp - 0x6a4]
mov dword [ebp - 4], 0xffffffff
call fcn.004145a0
jmp 0x4188ef
add edi, 7
mov edx, 0x4efac0
mov ecx, edi
call fcn.0040c720
mov dword [ebp - 0x1224], eax
test eax, eax
je 0x4188ef
mov ecx, eax
mov edx, edi
sub ecx, edi
push ecx
lea ecx, [ebp - 0x34]
call fcn.00451700
add esp, 4
lea eax, [ebp - 0x34]
push eax
call fcn.004b5a4b
mov edi, dword [ebp - 0x1224]
lea ecx, [ebp - 0x34]
add esp, 4
mov esi, eax
lea edx, [edi + 1]
push esi
call fcn.00451700
add esp, 4
lea ecx, [ebp - 0x700]
add edi, 2
push str.msg_type
call fcn.00406da0
mov edx, eax
mov dword [ebp - 4], 0x45
lea ecx, [ebp - 0x34]
call fcn.00450f80
lea ecx, [ebp - 0x700]
mov byte [ebp - 0x1211], al
mov dword [ebp - 4], 0xffffffff
call fcn.00406cd0
cmp byte [ebp - 0x1211], 0
je 0x4188ef
add edi, esi
push edi
call fcn.004b5a4b
movzx edx, al
add esp, 4
mov eax, edx
sub eax, 0
je 0x41cb1a
sub eax, 1
je 0x41bcde
sub eax, 1
je 0x4188ef
lea ecx, [ebp - 0x1440]
call fcn.0040cf50
push eax
mov edx, str.msg_type:
mov dword [ebp - 4], 0x5a
lea ecx, [ebp - 0x14a0]
call fcn.00450d00
add esp, 4
push 0
mov ecx, eax
mov byte [ebp - 4], 0x5b
call fcn.00406b60
push eax
mov edx, str.Extended_metadata
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x14a0]
call fcn.00406cd0
lea ecx, [ebp - 0x1440]
mov dword [ebp - 4], 0xffffffff
call fcn.00406cd0
jmp 0x4188ef
lea ecx, [ebx + 8]
call fcn.004445d0
cmp byte [eax + 0x13], 0
jne 0x41bd41
lea ecx, [ebx + 0xc]
call fcn.004445d0
cmp dword [eax + 0x170], 0
je 0x4188ef
lea ecx, [ebx + 0xc]
call fcn.004445d0
mov eax, dword [eax + 0x170]
push eax
call fcn.004b5a1c
add esp, 4
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [ebx + 0xc]
mov dword [eax + 0x170], 0
call fcn.004445d0
mov dword [eax + 0x174], 0
jmp 0x4188ef
mov edx, str.5:piecei
lea ecx, [edi + 2]
call fcn.0040c720
test eax, eax
je 0x4188ef
add edi, 0xa
mov edx, 0x4efaec
mov ecx, edi
call fcn.0040c720
mov esi, eax
test esi, esi
je 0x4188ef
mov ecx, esi
mov edx, edi
sub ecx, edi
push ecx
lea ecx, [ebp - 0x34]
call fcn.00451700
add esp, 4
lea eax, [ebp - 0x34]
push eax
call fcn.004b5a4b
add esp, 4
lea edi, [esi + 1]
mov edx, str.10:total_sizei
mov ecx, edi
call fcn.0040c720
test eax, eax
je 0x4188ef
add edi, 0xe
mov edx, 0x4efb00
mov ecx, edi
call fcn.0040c720
mov dword [ebp - 0x1224], eax
test eax, eax
je 0x41be57
mov ecx, eax
mov edx, edi
sub ecx, edi
push ecx
lea ecx, [ebp - 0x34]
call fcn.00451700
add esp, 4
lea eax, [ebp - 0x34]
push eax
call fcn.004b5a4b
add esp, 4
lea ecx, [ebx + 0xc]
mov esi, eax
call fcn.004445d0
lea ecx, [ebx + 0xc]
mov dword [eax + 0x178], esi
call fcn.004445d0
cmp dword [eax + 0x170], 0
jne 0x41be4e
lea ecx, [ebx + 0xc]
call fcn.004445d0
mov eax, dword [eax + 0x178]
push eax
call fcn.004b5cd0
add esp, 4
lea ecx, [ebx + 0xc]
mov esi, eax
call fcn.004445d0
lea ecx, [ebx + 0xc]
mov dword [eax + 0x170], esi
call fcn.004445d0
cmp dword [eax + 0x170], 0
jne 0x41be4e
push 0
push str.it_peer__pHeapMagnet
mov edx, 0x4efb1c
xor ecx, ecx
call fcn.0040d370
add esp, 8
mov edi, dword [ebp - 0x1224]
add edi, 2
mov eax, dword [ebp - 0x122c]
mov ecx, dword [ebp - 0x1218]
sub eax, edi
add ecx, 4
add eax, ecx
lea ecx, [ebx + 0xc]
mov dword [ebp - 0x121c], eax
call fcn.004445d0
lea ecx, [ebx + 0xc]
mov esi, dword [eax + 0x174]
add esi, dword [ebp - 0x121c]
call fcn.004445d0
cmp esi, dword [eax + 0x178]
jbe 0x41beaa
push 0
push 0x4efb34
mov edx, 0x4efb48
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [ebx + 0xc]
lea esi, [eax + 0x174]
call fcn.004445d0
push dword [ebp - 0x121c]
push edi
mov eax, dword [eax + 0x170]
add eax, dword [esi]
push eax
call fcn.004aee70
add esp, 0xc
lea ecx, [ebx + 0xc]
call fcn.004445d0
mov ecx, dword [ebp - 0x121c]
add dword [eax + 0x174], ecx
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [ebx + 0xc]
lea esi, [eax + 0x178]
call fcn.004445d0
mov eax, dword [eax + 0x174]
cmp eax, dword [esi]
jne 0x4188ef
lea ecx, [ebx + 0xc]
call fcn.004445d0
mov edx, 0x4efb64
mov ecx, dword [eax + 0x170]
call fcn.0040c720
lea ecx, [ebp - 0x760]
mov esi, eax
call fcn.004068f0
mov dword [ebp - 4], 0x46
test esi, esi
je 0x41c068
add esi, 6
mov edx, 0x4efb6c
mov ecx, esi
call fcn.0040c720
mov edi, eax
test edi, edi
je 0x41c07e
mov ecx, edi
mov edx, esi
sub ecx, esi
push ecx
lea ecx, [ebp - 0x34]
call fcn.00451700
add esp, 4
lea eax, [ebp - 0x34]
push eax
call fcn.004b5a4b
add esp, 4
lea ecx, [ebp - 0x1249]
mov esi, eax
inc edi
call fcn.00407910
push eax
lea eax, [esi + edi]
push eax
push edi
lea ecx, [ebp - 0x6bc]
call fcn.00451720
push 0
push 0
push 0xffffffffffffffff
lea ecx, [ebp - 0x6bc]
mov byte [ebp - 4], 0x47
call fcn.00406b60
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor ecx, ecx
mov edi, eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004b5cd0
mov esi, eax
add esp, 4
test esi, esi
je 0x41c041
lea ecx, [ebp - 0x6bc]
call fcn.00406750
push edi
inc eax
lea ecx, [ebp - 0x6bc]
push esi
push 0xffffffffffffffff
cmp edi, eax
jne 0x41c008
call fcn.00406b60
push eax
push 0
push 0
jmp 0x41c015
call fcn.00406b60
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push esi
lea ecx, [ebp - 0x760]
call fcn.004067b0
push esi
call fcn.004b5a1c
add esp, 4
mov byte [ebp - 4], 0x46
lea ecx, [ebp - 0x6bc]
call fcn.00406cd0
jmp 0x41c07e
push 0
push 0x4efb70
mov edx, 0x4efb88
xor ecx, ecx
call fcn.0040d370
add esp, 8
mov byte [ebp - 4], 0x46
lea ecx, [ebp - 0x6bc]
call fcn.00406cd0
jmp 0x41c07e
push 0
push 0x4efba0
mov edx, 0x4efba8
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea eax, [ebp - 0x760]
mov edx, 0x4efbe4
push eax
lea ecx, [ebp - 0x700]
call fcn.00450750
add esp, 4
push 0x4efbd0
mov edx, eax
mov byte [ebp - 4], 0x48
lea ecx, [ebp - 0x6e0]
call fcn.00408c90
add esp, 4
lea ecx, [ebp - 0x700]
mov byte [ebp - 4], 0x4a
call fcn.00406810
lea eax, [ebp - 0x2b0]
push eax
push 0
push 0
push 0x801a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
push 0x104
lea ecx, [ebp - 0x6e0]
call fcn.00406760
mov edx, eax
lea ecx, [ebp - 0x2b0]
call fcn.004508c0
add esp, 4
lea eax, [ebp - 0x2b0]
push 0
push 0x80
push 2
push 0
push 3
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
push 0
cmp edi, 0xffffffff
jne 0x41c141
push 0x4efc10
lea ecx, [ebp - 0x6e0]
call fcn.00406760
mov edx, eax
xor ecx, ecx
call fcn.0040d390
add esp, 8
jmp 0x41c3f8
mov esi, dword [sym.imp.KERNEL32.dll_WriteFile]
lea eax, [ebp - 0x6e8]
push eax
push 1
push 0x4efc70
push edi
call esi
push 0x3e8
lea ecx, [ebx + 8]
call fcn.004445d0
mov eax, dword [eax + 0x3e4]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x41c38b
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x3dc]
call fcn.00443a40
test al, al
jne 0x41c365
push str.13:announce_listl
lea ecx, [ebp - 0x6bc]
call fcn.00406da0
push 4
lea ecx, [ebp - 0x69c]
mov byte [ebp - 4], 0x4b
call fcn.004029d0
lea eax, [ebp - 0x69c]
push eax
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x3dc]
call fcn.00406510
lea eax, [ebp - 0x1298]
push eax
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x3dc]
call fcn.00406500
push eax
lea ecx, [ebp - 0x69c]
call fcn.00406390
test al, al
je 0x41c322
nop
lea ecx, [ebp - 0x69c]
call fcn.00406430
lea ecx, [eax + 0x3c]
call fcn.00406750
mov edx, eax
lea ecx, [ebp - 0x12c8]
call fcn.0040cfc0
push eax
mov edx, 0x4efc90
mov byte [ebp - 4], 0x4c
lea ecx, [ebp - 0x724]
call fcn.00450d00
add esp, 4
push 0x4efc8c
mov edx, eax
mov byte [ebp - 4], 0x4d
lea ecx, [ebp - 0x127c]
call fcn.00450d60
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x69c]
mov byte [ebp - 4], 0x4e
call fcn.00406430
add eax, 0x3c
lea ecx, [ebp - 0x12b0]
push eax
mov edx, esi
call fcn.004515d0
add esp, 4
push str.e:le
mov edx, eax
mov byte [ebp - 4], 0x4f
lea ecx, [ebp - 0x1264]
call fcn.00450d60
add esp, 4
push eax
lea ecx, [ebp - 0x6bc]
mov byte [ebp - 4], 0x50
call fcn.00446080
lea ecx, [ebp - 0x1264]
call fcn.00406cd0
lea ecx, [ebp - 0x12b0]
call fcn.00406cd0
lea ecx, [ebp - 0x127c]
call fcn.00406cd0
lea ecx, [ebp - 0x724]
call fcn.00406cd0
lea ecx, [ebp - 0x12c8]
mov byte [ebp - 4], 0x4b
call fcn.00406cd0
push 0
lea eax, [ebp - 0x12e8]
push eax
lea ecx, [ebp - 0x69c]
call fcn.004063d0
lea eax, [ebp - 0x1298]
push eax
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x3dc]
call fcn.00406500
push eax
lea ecx, [ebp - 0x69c]
call fcn.00406390
test al, al
jne 0x41c200
mov esi, dword [sym.imp.KERNEL32.dll_WriteFile]
push 0x4efc94
lea ecx, [ebp - 0x6bc]
call fcn.00446070
push 0
lea eax, [ebp - 0x6e8]
push eax
lea ecx, [ebp - 0x6bc]
call fcn.00406750
push eax
lea ecx, [ebp - 0x6bc]
call fcn.00406b60
push eax
push edi
call esi
lea ecx, [ebp - 0x6bc]
mov byte [ebp - 4], 0x4a
call fcn.00406cd0
lea ecx, [ebx + 8]
call fcn.004445d0
mov eax, dword [eax + 0x3e4]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
test eax, eax
jne 0x41c3a1
push eax
push 0x4efc98
mov edx, 0x4efcb0
jmp 0x41c397
push 0
push 0x4efcd0
mov edx, 0x4efce4
xor ecx, ecx
call fcn.0040d370
add esp, 8
push 0
lea eax, [ebp - 0x6e8]
push eax
push 6
push str.4:info
push edi
call esi
push 0
lea eax, [ebp - 0x6e8]
push eax
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [ebx + 0xc]
mov eax, dword [eax + 0x174]
push eax
call fcn.004445d0
mov eax, dword [eax + 0x170]
push eax
push edi
call esi
push 0
lea eax, [ebp - 0x6e8]
push eax
push 1
push 0x4efd1c
push edi
call esi
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebx + 0xc]
call fcn.004445d0
mov eax, dword [eax + 0x170]
push eax
call fcn.004b5a1c
add esp, 4
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [ebx + 0xc]
mov dword [eax + 0x170], 0
call fcn.004445d0
push 0xb8
lea ecx, [ebp - 0xbb0]
mov dword [eax + 0x174], 0
call fcn.0041d7c0
push 1
push 0x40
push 0x20
lea eax, [ebp - 0x2b0]
push eax
lea ecx, [ebp - 0xbb0]
call fcn.004460e0
mov byte [ebp - 4], 0x51
lea ecx, [ebp - 0xbb0]
mov eax, dword [ebp - 0xbb0]
mov eax, dword [eax + 4]
add ecx, eax
call fcn.0040ce30
test al, al
je 0x41c490
push 0
push 0x4efd20
lea edx, [ebp - 0x2b0]
xor ecx, ecx
call fcn.0040d390
add esp, 8
lea ecx, [ebp - 0xbb0]
call fcn.004460d0
test al, al
jne 0x41c4b5
push 0
push 0x4efd84
mov edx, 0x4efd8c
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x1210]
call fcn.00413590
lea eax, [ebp - 0x685]
mov byte [ebp - 4], 0x52
push eax
lea edx, [ebp - 0x1210]
mov byte [ebp - 0x685], 0
lea ecx, [ebp - 0xbb0]
call fcn.004036c0
add esp, 4
cmp byte [ebp - 0x685], 0
jne 0x41cac1
lea ecx, [ebx + 8]
call fcn.004445d0
add eax, 0x334
lea ecx, [ebp - 0xedc]
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x41c52c
test dx, dx
je 0x41c528
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x41c52c
add ecx, 4
add eax, 4
test dx, dx
jne 0x41c506
xor eax, eax
jmp 0x41c531
sbb eax, eax
or eax, 1
test eax, eax
jne 0x41c9ab
lea ecx, [ebx + 8]
call fcn.004445d0
movzx ecx, byte [ebp - 0x11fc]
mov byte [eax + 0x14], cl
lea ecx, [ebx + 8]
call fcn.004445d0
movzx ecx, byte [ebp - 0x1206]
mov byte [eax + 0xa], cl
lea ecx, [ebx + 8]
call fcn.004445d0
push 0x4efda8
lea edx, [ebp - 0x760]
lea ecx, [ebp - 0x12c8]
mov byte [eax + 0xc], 0
call fcn.00408bc0
add esp, 4
push eax
lea ecx, [ebx + 8]
mov byte [ebp - 4], 0x53
call fcn.004445d0
lea ecx, [eax + 0x48]
call fcn.00406820
lea ecx, [ebp - 0x12c8]
mov byte [ebp - 4], 0x52
call fcn.00406810
lea eax, [ebp - 0x1138]
push eax
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0xd8]
call fcn.004067e0
lea ecx, [ebx + 8]
call fcn.004445d0
mov ecx, dword [ebp - 0x1108]
mov dword [eax + 0x108], ecx
mov ecx, dword [ebp - 0x1104]
mov dword [eax + 0x10c], ecx
lea ecx, [ebx + 8]
call fcn.004445d0
mov ecx, dword [ebp - 0x1108]
mov dword [eax + 0x4d8], ecx
mov ecx, dword [ebp - 0x1104]
mov dword [eax + 0x4dc], ecx
lea ecx, [ebx + 8]
call fcn.004445d0
mov ecx, dword [ebp - 0x1100]
mov dword [eax + 0x110], ecx
mov ecx, dword [ebp - 0x10fc]
mov dword [eax + 0x114], ecx
lea ecx, [ebx + 8]
call fcn.004445d0
mov ecx, dword [ebp - 0x10f8]
mov dword [eax + 0x118], ecx
lea ecx, [ebx + 8]
call fcn.004445d0
mov ecx, dword [ebp - 0xe74]
mov dword [eax + 0x39c], ecx
lea eax, [ebp - 0xe70]
push eax
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x3a0]
call fcn.00445020
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [ebx + 8]
mov esi, eax
call fcn.004445d0
lea ecx, [esi + 0x51c]
push dword [eax + 0x10c]
push dword [eax + 0x108]
call fcn.00473510
add esp, 8
lea ecx, [ebx + 8]
push 0
push dword [ebp - 0x10f8]
call fcn.004445d0
lea ecx, [eax + 0x3ac]
call fcn.00445bc0
lea ecx, [ebp - 0x70c]
call fcn.004140b0
mov byte [ebp - 4], 0x54
mov ecx, dword [ebp - 0x1100]
mov eax, dword [ebp - 0x10fc]
shrd ecx, eax, 0xe
push 0
push ecx
lea ecx, [ebp - 0x6fc]
call fcn.00445bc0
mov eax, dword [ebp - 0x10f8]
xor edi, edi
test eax, eax
je 0x41c78c
dec eax
mov dword [ebp - 0x70c], edi
cmp edi, eax
jne 0x41c763
mov eax, dword [ebp - 0x10fc]
mov ecx, dword [ebp - 0x1108]
mul edi
mov esi, eax
mov eax, dword [ebp - 0x1100]
mul edi
add esi, edx
mov edx, dword [ebp - 0x1104]
sub ecx, eax
sbb edx, esi
call fcn.004d2ad0
mulsd xmm0, qword [0x4fcfc0]
sub esp, 8
movsd qword [ebp - 0x1228], xmm0
fld qword [ebp - 0x1228]
fstp qword [esp]
call fcn.004d15f0
add esp, 8
fstp qword [ebp - 0x1228]
movsd xmm0, qword [ebp - 0x1228]
call fcn.004d29a1
push 0
push eax
lea ecx, [ebp - 0x6fc]
call fcn.00445bc0
lea eax, [ebp - 0x70c]
push eax
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x3bc]
call fcn.00444f50
mov eax, dword [ebp - 0x10f8]
inc edi
cmp edi, eax
jb 0x41c6e6
cmp byte [0x510410], 0
jne 0x41c7df
sub esp, 0xc
lea ecx, [ebx + 8]
mov eax, esp
mov dword [ebp - 0x1224], esp
push eax
call fcn.004445d0
lea ecx, [eax + 0x3bc]
call fcn.00443bb0
sub esp, 0xc
mov byte [ebp - 4], 0x55
lea ecx, [ebx + 8]
push esp
call fcn.004445d0
lea ecx, [eax + 0x3bc]
call fcn.00443bd0
mov byte [ebp - 4], 0x54
call fcn.00451760
add esp, 0x18
lea eax, [ebp - 0xe40]
push eax
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x3d0]
call fcn.00444ec0
lea ecx, [ebx + 8]
call fcn.004445d0
cmp byte [eax + 4], 0
je 0x41c813
lea ecx, [ebx + 8]
call fcn.004445d0
mov byte [eax + 4], 0
push dword [ebx + 8]
call fcn.00482f30
add esp, 4
test al, al
jne 0x41c82e
lea ecx, [ebx + 8]
call fcn.004445d0
mov byte [eax + 4], 1
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [ebx + 8]
mov byte [eax + 0x13], 0
call fcn.004445d0
lea ecx, [eax + 0x334]
call fcn.00473100
mov esi, eax
cmp esi, 0xffffffff
je 0x41c99b
xorps xmm0, xmm0
mov dword [ebp - 0xaf0], esi
lea ecx, [ebx + 8]
movlpd qword [ebp - 0xae8], xmm0
movlpd qword [ebp - 0xae0], xmm0
movlpd qword [ebp - 0xad8], xmm0
movlpd qword [ebp - 0xad0], xmm0
movlpd qword [ebp - 0xac8], xmm0
movlpd qword [ebp - 0xac0], xmm0
mov dword [ebp - 0xaf4], 1
mov dword [ebp - 0xaec], 1
call fcn.004445d0
lea ecx, [eax + 0xd8]
call fcn.00406760
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0xae0], eax
lea eax, [ebp - 0xaf4]
push eax
push 0
push 0x104c
push dword [0x50fb8c]
call edi
lea ecx, [ebx + 8]
mov dword [ebp - 0xaec], 2
call fcn.004445d0
add eax, 0x51c
mov dword [ebp - 0xae0], eax
lea eax, [ebp - 0xaf4]
push eax
push 0
push 0x104c
push dword [0x50fb8c]
call edi
push 1
push 0xffffffffffffffff
push 0x100c
push dword [0x50fb8c]
call edi
cmp eax, esi
jne 0x41c99b
push 0
lea ecx, [ebx + 8]
call fcn.004445d0
lea ecx, [eax + 0x3d0]
call fcn.00406560
push eax
push 0x102f
push dword [0x50fb90]
call edi
lea ecx, [ebx + 8]
call fcn.004445d0
add eax, 0xd8
lea ecx, [ebx + 8]
push eax
call fcn.004445d0
lea ecx, [ebp - 0x12c8]
lea edx, [eax + 0xf0]
call fcn.004506a0
add esp, 4
mov ecx, eax
mov byte [ebp - 4], 0x56
call fcn.00406760
push eax
push 0xe7
push dword [0x50fbdc]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
lea ecx, [ebp - 0x12c8]
call fcn.00406810
lea ecx, [ebp - 0x70c]
call fcn.004140f0
jmp 0x41cae2
push 0x4efdf8
lea ecx, [ebp - 0x1264]
call fcn.004068a0
push eax
lea edx, [ebp - 0xedc]
mov byte [ebp - 4], 0x57
lea ecx, [ebp - 0x700]
call fcn.00450830
add esp, 4
mov esi, eax
lea ecx, [ebx + 8]
mov byte [ebp - 4], 0x58
call fcn.004445d0
add eax, 0x334
lea ecx, [ebp - 0x12c8]
push eax
mov edx, esi
call fcn.00408c90
add esp, 4
push 0
push str.magnet__infoHash
mov ecx, eax
mov byte [ebp - 4], 0x59
call fcn.00406760
mov edx, eax
xor ecx, ecx
call fcn.0040d390
add esp, 8
lea ecx, [ebp - 0x12c8]
call fcn.00406810
lea ecx, [ebp - 0x700]
call fcn.00406810
lea ecx, [ebp - 0x1264]
mov byte [ebp - 4], 0x52
call fcn.00406810
lea eax, [ebp - 0x9b0]
push eax
push 0
push 0
push 0x801a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
push 0x104
mov edx, 0x4efe04
lea ecx, [ebp - 0x9b0]
call fcn.004508c0
add esp, 4
lea ecx, [ebx + 8]
call fcn.004445d0
add eax, 0x48
lea edx, [ebp - 0x9b0]
push eax
lea ecx, [ebp - 0x724]
call fcn.00450750
add esp, 4
lea ecx, [ebp - 0x724]
call fcn.00406760
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x41cab4
lea ecx, [ebp - 0x724]
call fcn.00406760
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x724]
call fcn.00406810
jmp 0x41cae2
lea ecx, [ebp - 0xbb0]
call fcn.00446090
push 0
push 0x4efe30
mov edx, 0x4efe38
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x1210]
call fcn.00413bf0
lea ecx, [ebp - 0xbb0]
call fcn.0041d730
lea ecx, [ebp - 0x6e0]
call fcn.00406810
lea ecx, [ebp - 0x760]
mov dword [ebp - 4], 0xffffffff
call fcn.00406810
jmp 0x4188ef
mov edx, 0x4efad0
lea ecx, [edi + 2]
call fcn.0040c720
test eax, eax
je 0x4188ef
add edi, 0xa
mov edx, 0x4efadc
mov ecx, edi
call fcn.0040c720
test eax, eax
je 0x4188ef
sub eax, edi
lea ecx, [ebp - 0x34]
push eax
mov edx, edi
call fcn.00451700
add esp, 4
lea eax, [ebp - 0x34]
push eax
call fcn.004b5a4b
add esp, 4
lea ecx, [ebx + 0xc]
mov esi, eax
call fcn.004445d0
cmp dword [eax], 0x11
jne 0x41cb80
lea ecx, [ebx + 0xc]
call fcn.004445d0
mov dword [eax + 0x20], 9
push dword [ebx + 0xc]
mov ecx, esi
push dword [ebx + 8]
call fcn.0041f860
add esp, 8
jmp 0x4188ef
push 0
push 0x4efe88
mov edx, str.extended_id__3
xor ecx, ecx
call fcn.0040d370
add esp, 8
jmp 0x4188ef
push 0
push str.extended_id___0__1__2__3
lea edx, [edi + 5]
xor ecx, ecx
call fcn.0040d370
add esp, 8
jmp 0x4188ef
push 0
push 0x4efecc
mov edx, str.hash_request
xor ecx, ecx
call fcn.0040d370
add esp, 8
jmp 0x4188f5
push 0
push 0x4efef0
mov edx, str.hashes
xor ecx, ecx
call fcn.0040d370
add esp, 8
jmp 0x4188f5
push 0
push 0x4eff0c
mov edx, str.hash_reject
xor ecx, ecx
call fcn.0040d370
add esp, 8
jmp 0x4188f5
lea ecx, [ebx + 0xc]
call fcn.004445d0
mov ecx, 0x5d
mov word [eax + 8], cx
jmp 0x4188f5
cmp byte [0x5102e0], 0
je 0x41cc64
push 0
push 0x4eec14
push 0x4eec28
jmp 0x41cc5c
cmp byte [0x5102e0], 0
je 0x41cc64
push 0
push 0x4eebe4
push 0x4eebf8
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov edi, dword [ebp - 0x1218]
mov esi, dword [ebp - 0x1230]
lea ecx, [ebx + 0xc]
call fcn.004445d0
cmp word [eax + 8], 0
jne 0x41ccfb
cmp edi, esi
je 0x417ecb
jae 0x41cd33
sub esi, edi
mov dword [ebp - 0x1230], esi
lea eax, [esi + 0x4000]
push eax
call fcn.004b5cd0
mov esi, eax
add esp, 4
test esi, esi
je 0x41cd1b
push dword [ebp - 0x1230]
push edi
push esi
call fcn.004aee70
add esp, 0xc
lea ecx, [ebx + 0xc]
call fcn.004445d0
mov eax, dword [eax + 0x11c]
push eax
call fcn.004b5a1c
add esp, 4
lea ecx, [ebx + 0xc]
call fcn.004445d0
lea ecx, [ebx + 0xc]
mov dword [eax + 0x11c], esi
call fcn.004445d0
mov ecx, dword [ebp - 0x1230]
mov dword [eax + 0x120], ecx
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004ad19c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push 0
push 0x4eff2c
mov edx, 0x4eff44
xor ecx, ecx
call fcn.0040d370
add esp, 8
jmp 0x41ccfb
jbe 0x41cd4b
push 0
push str.parser_msg_peer__
mov edx, 0x4eff70
xor ecx, ecx
call fcn.0040d370
add esp, 8
mov al, byte [ebp - 0x685]
jmp 0x41ccfd
call fcn.004ad2d3
lds eax, [eax - 0x7f1bffbf]
inc ecx
add byte [eax], ah
add dword [ecx], case.0x4180be.3
pop ebx
add dword [ecx], case.0x4180be.5
push esp
xchg dword [ecx], eax
daa
mov byte [ecx], al
or al, 0xa6
inc ecx
add byte [ebx], bl
cmpsd dword [esi], dword es:[edi]
inc ecx
add byte [edx], bl
int3