Function at 0x41f860
Capabilities:
Send data
Send data on socket

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 0x4d44c6
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x298
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 dword [ebp - 0x1f0], ecx
xor edi, edi
mov dword [ebp - 0x15c], 0xf
mov dword [ebp - 0x1c8], edi
mov dword [ebp - 0x160], edi
mov byte [ebp - 0x170], 0
mov dword [ebp - 4], edi
mov eax, dword [ebx + 8]
cmp byte [eax + 0x12], 0
je 0x42008b
push 9
push str.d5:filesl
lea ecx, [ebp - 0x170]
call fcn.00407e90
mov eax, dword [ebx + 8]
mov esi, dword [eax + 0x3d8]
cmp esi, dword [eax + 0x3dc]
je 0x420076
nop dword [eax]
push dword [esi + 0x34]
lea ecx, [ebp - 0x140]
push dword [esi + 0x30]
call fcn.0040d0b0
add esp, 8
push 0xa
push 0x4f03c0
push ecx
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.00453b70
mov dword [ebp - 0x1d8], 0
or edi, 4
mov dword [ebp - 0x1d4], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x1e8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x1d8], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push 0x4f03b4
lea ecx, [ebp - 0x1e8]
mov byte [ebp - 4], 2
call fcn.00406b90
or edi, 8
mov dword [ebp - 0x1c8], edi
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x23c], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
movq qword [ebp - 0x22c], xmm0
mov byte [eax], 0
lea eax, [ebp - 0x23c]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x170]
call fcn.00406c00
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x228]
cmp edx, 0x10
jb 0x41f9ff
mov ecx, dword [ebp - 0x23c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41f9f5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210c1
push edx
push ecx
call fcn.004ad677
add esp, 8
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x1d4]
cmp edx, 0x10
jb 0x41fa3d
mov ecx, dword [ebp - 0x1e8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41fa33
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210c1
push edx
push ecx
call fcn.004ad677
add esp, 8
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x12c]
mov dword [ebp - 0x1d8], 0
mov dword [ebp - 0x1d4], 0xf
mov byte [ebp - 0x1e8], 0
cmp edx, 0x10
jb 0x41fa96
mov ecx, dword [ebp - 0x140]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41fa8c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210c1
push edx
push ecx
call fcn.004ad677
add esp, 8
push 0
push str.::ee
mov ecx, esi
call fcn.00445e80
xor edi, edi
mov dword [ebp - 0x1c0], eax
cmp eax, 0xffffffff
je 0x41fd4d
nop word [eax + eax]
mov ecx, eax
mov dword [ebp - 0x130], 0
xor eax, eax
mov dword [ebp - 0x12c], 7
mov word [ebp - 0x140], ax
sub ecx, edi
mov eax, dword [esi + 0x10]
cmp eax, edi
jb 0x4210bc
sub eax, edi
cmp eax, ecx
cmovb ecx, eax
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x41fafd
mov eax, dword [esi]
push ecx
lea eax, [eax + edi*2]
push eax
lea ecx, [ebp - 0x140]
call fcn.00407d10
push 0
push 0
push 0xdc
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x128]
cmp dword [ebp - 0x12c], 8
lea eax, [ebp - 0x140]
push ecx
cmovae eax, dword [ebp - 0x140]
push 0xffffffffffffffff
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea ecx, [ebp - 0x1b]
lea edx, [eax - 1]
test edx, edx
jns 0x41fb5c
neg edx
call fcn.00453fb0
dec eax
mov byte [eax], 0x2d
jmp 0x41fb61
call fcn.00453fb0
lea ecx, [ebp - 0x1b]
mov dword [ebp - 0x210], 0
mov dword [ebp - 0x20c], 0xf
mov byte [ebp - 0x220], 0
cmp eax, ecx
je 0x41fb92
sub ecx, eax
push ecx
push eax
lea ecx, [ebp - 0x220]
call fcn.00407e90
push 0x4f03d0
lea ecx, [ebp - 0x220]
mov byte [ebp - 4], 5
call fcn.00406b90
mov dword [ebp - 0x1d8], 0
mov dword [ebp - 0x1d4], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x1e8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x1d8], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x128]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0x1e8]
call fcn.00406b90
or dword [ebp - 0x1c8], 0x1f0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x268], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
movq qword [ebp - 0x258], xmm0
mov byte [eax], 0
lea eax, [ebp - 0x268]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x170]
call fcn.00406c00
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x254]
cmp edx, 0x10
jb 0x41fc7e
mov ecx, dword [ebp - 0x268]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41fc74
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210c1
push edx
push ecx
call fcn.004ad677
add esp, 8
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x1d4]
cmp edx, 0x10
jb 0x41fcbc
mov ecx, dword [ebp - 0x1e8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41fcb2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210c1
push edx
push ecx
call fcn.004ad677
add esp, 8
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x20c]
mov dword [ebp - 0x1d8], 0
mov dword [ebp - 0x1d4], 0xf
mov byte [ebp - 0x1e8], 0
cmp edx, 0x10
jb 0x41fd15
mov ecx, dword [ebp - 0x220]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41fd0b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210c1
push edx
push ecx
call fcn.004ad677
add esp, 8
mov edi, dword [ebp - 0x1c0]
mov ecx, esi
inc edi
push edi
push 0x4f03d4
call fcn.00445e80
lea ecx, [ebp - 0x140]
mov dword [ebp - 0x1c0], eax
mov byte [ebp - 4], 0
call fcn.00407cb0
mov eax, dword [ebp - 0x1c0]
cmp eax, 0xffffffff
jne 0x41fac0
xor eax, eax
mov dword [ebp - 0x148], 0
mov word [ebp - 0x158], ax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x144], 7
cmp eax, edi
jb 0x4210bc
sub eax, edi
or ecx, 0xffffffff
cmp eax, 0xffffffff
cmovb ecx, eax
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x41fd8a
mov eax, dword [esi]
push ecx
lea eax, [eax + edi*2]
push eax
lea ecx, [ebp - 0x158]
call fcn.00407d10
push 0
push 0
push 0xdc
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x128]
cmp dword [ebp - 0x144], 8
lea eax, [ebp - 0x158]
push ecx
cmovae eax, dword [ebp - 0x158]
push 0xffffffffffffffff
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea ecx, [ebp - 0x1b]
lea edx, [eax - 1]
test edx, edx
jns 0x41fdec
neg edx
call fcn.00453fb0
mov byte [eax - 1], 0x2d
lea ecx, [eax - 1]
jmp 0x41fdf3
call fcn.00453fb0
mov ecx, eax
lea eax, [ebp - 0x1b]
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 0xf
mov byte [ebp - 0x140], 0
cmp ecx, eax
je 0x41fe24
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x140]
call fcn.00407e90
push 0x4f03dc
lea ecx, [ebp - 0x140]
mov byte [ebp - 4], 9
call fcn.00406b90
mov dword [ebp - 0x1f8], 0
mov dword [ebp - 0x1f4], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x208], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x1f8], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x128]
mov byte [ebp - 4], 0xa
push eax
lea ecx, [ebp - 0x208]
call fcn.00406b90
mov dword [ebp - 0x1d8], 0
mov dword [ebp - 0x1d4], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x1e8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x1d8], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push 0x4f03d8
lea ecx, [ebp - 0x1e8]
mov byte [ebp - 4], 0xb
call fcn.00406b90
mov edi, dword [ebp - 0x1c8]
or edi, 0x7e00
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x280], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
movq qword [ebp - 0x270], xmm0
mov byte [eax], 0
lea eax, [ebp - 0x280]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [ebp - 0x170]
call fcn.00406c00
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x26c]
cmp edx, 0x10
jb 0x41ff62
mov ecx, dword [ebp - 0x280]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41ff58
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210c1
push edx
push ecx
call fcn.004ad677
add esp, 8
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x1d4]
cmp edx, 0x10
jb 0x41ffa0
mov ecx, dword [ebp - 0x1e8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41ff96
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210c1
push edx
push ecx
call fcn.004ad677
add esp, 8
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x1f4]
mov dword [ebp - 0x1d8], 0
mov dword [ebp - 0x1d4], 0xf
mov byte [ebp - 0x1e8], 0
cmp edx, 0x10
jb 0x41fff9
mov ecx, dword [ebp - 0x208]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41ffef
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210c1
push edx
push ecx
call fcn.004ad677
add esp, 8
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x12c]
mov dword [ebp - 0x1f8], 0
mov dword [ebp - 0x1f4], 0xf
mov byte [ebp - 0x208], 0
cmp edx, 0x10
jb 0x420052
mov ecx, dword [ebp - 0x140]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x420048
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210c1
push edx
push ecx
call fcn.004ad677
add esp, 8
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0
call fcn.00407cb0
mov eax, dword [ebx + 8]
add esi, 0x148
cmp esi, dword [eax + 0x3dc]
jne 0x41f900
push 0x4f03e0
lea ecx, [ebp - 0x170]
call fcn.00406b90
jmp 0x42016d
push dword [eax + 0x114]
lea ecx, [ebp - 0x23c]
push dword [eax + 0x110]
call fcn.0040d0b0
add esp, 8
push 0xa
push 0x4f03e8
push ecx
mov ecx, eax
mov byte [ebp - 4], 0xd
call fcn.00453b70
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x140], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x130], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push 0x4f03e4
lea ecx, [ebp - 0x140]
mov byte [ebp - 4], 0xe
call fcn.00406b90
lea ecx, [ebp - 0x170]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
movq qword [ebp - 0x2a8], xmm0
mov byte [eax], 0
call fcn.00406cd0
movups xmm0, xmmword [ebp - 0x28]
lea ecx, [ebp - 0x140]
movups xmmword [ebp - 0x170], xmm0
movq xmm0, qword [ebp - 0x2a8]
movq qword [ebp - 0x160], xmm0
call fcn.00406cd0
lea ecx, [ebp - 0x23c]
mov byte [ebp - 4], 0
call fcn.00406cd0
mov eax, dword [ebx + 8]
add eax, 0xe0
cmp dword [eax + 0x14], 8
jb 0x42017d
mov eax, dword [eax]
push 0
push 0
push 0xdc
lea ecx, [ebp - 0x128]
push ecx
push 0xffffffffffffffff
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ecx, dword [ebx + 8]
mov edi, eax
mov ecx, dword [ecx + 0x120]
lea edx, [ecx + ecx*4]
shl edx, 2
lea ecx, [ebp - 0x1b]
call fcn.00453fb0
lea ecx, [ebp - 0x1b]
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 0xf
mov byte [ebp - 0x140], 0
cmp eax, ecx
je 0x4201e7
sub ecx, eax
push ecx
push eax
lea ecx, [ebp - 0x140]
call fcn.00407e90
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x23c]
mov eax, dword [ebx + 8]
push dword [eax + 0x11c]
push dword [eax + 0x118]
call fcn.0040d0b0
add esp, 8
mov esi, eax
lea edx, [edi - 1]
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x1b]
test edx, edx
jns 0x420228
neg edx
call fcn.00453fb0
mov byte [eax - 1], 0x2d
lea ecx, [eax - 1]
jmp 0x42022f
call fcn.00453fb0
mov ecx, eax
lea eax, [ebp - 0x1b]
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x144], 0xf
mov byte [ebp - 0x158], 0
cmp ecx, eax
je 0x420260
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x158]
call fcn.00407e90
push 6
push 0x4f041c
push ecx
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0x11
call fcn.00453b70
mov dword [ebp - 0x210], 0
mov dword [ebp - 0x20c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x220], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x210], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push 0x4f0418
lea ecx, [ebp - 0x220]
mov byte [ebp - 4], 0x12
call fcn.00406b90
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x254], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x268], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x258], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x128]
mov byte [ebp - 4], 0x13
push eax
lea ecx, [ebp - 0x268]
call fcn.00406b90
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x280], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x270], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push 0x4f0404
lea ecx, [ebp - 0x280]
mov byte [ebp - 4], 0x14
call fcn.00406b90
mov dword [ebp - 0x1d8], 0
mov dword [ebp - 0x1d4], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x1e8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x1d8], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0x15
mov edi, dword [ebp - 0x1d4]
mov eax, edi
mov ecx, dword [ebp - 0x1d8]
sub eax, ecx
mov edx, dword [esi + 0x10]
cmp edx, eax
jbe 0x4203e5
mov eax, dword [esi + 0x14]
sub eax, edx
cmp eax, ecx
jb 0x4203e5
cmp edi, 0x10
lea eax, [ebp - 0x1e8]
push ecx
cmovae eax, dword [ebp - 0x1e8]
push eax
push ecx
mov ecx, esi
call fcn.00453b70
jmp 0x4203f1
push esi
lea ecx, [ebp - 0x1e8]
call fcn.00406c00
mov dword [ebp - 0x1f8], 0
mov dword [ebp - 0x1f4], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x208], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x1f8], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push str.e6:pieces
lea ecx, [ebp - 0x208]
mov byte [ebp - 4], 0x16
call fcn.00406b90
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x284], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x298], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x288], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0x17
mov esi, dword [ebp - 0x284]
mov eax, esi
mov ecx, dword [ebp - 0x288]
sub eax, ecx
mov edx, dword [ebp - 0x130]
cmp edx, eax
jbe 0x4204c7
mov eax, dword [ebp - 0x12c]
sub eax, edx
cmp eax, ecx
jb 0x4204c7
cmp esi, 0x10
lea eax, [ebp - 0x298]
push ecx
cmovae eax, dword [ebp - 0x298]
push eax
push ecx
lea ecx, [ebp - 0x140]
call fcn.00453b70
jmp 0x4204d9
lea eax, [ebp - 0x140]
push eax
lea ecx, [ebp - 0x298]
call fcn.00406c00
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x48], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x38], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push 0x4f03f4
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x18
call fcn.00406b90
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x30], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
movq qword [ebp - 0x20], xmm0
mov byte [eax], 0
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0x19
push eax
lea ecx, [ebp - 0x170]
call fcn.00406c00
mov byte [ebp - 4], 0x18
mov edx, dword [ebp - 0x1c]
cmp edx, 0x10
jb 0x420587
mov ecx, dword [ebp - 0x30]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x42057d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210c1
push edx
push ecx
call fcn.004ad677
add esp, 8
mov byte [ebp - 4], 0x17
mov edx, dword [ebp - 0x34]
cmp edx, 0x10
jb 0x4205bf
mov ecx, dword [ebp - 0x48]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4205b5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210c6
push edx
push ecx
call fcn.004ad677
add esp, 8
mov byte [ebp - 4], 0x16
mov edx, dword [ebp - 0x284]
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0xf
mov byte [ebp - 0x48], 0
cmp edx, 0x10
jb 0x42060f
mov ecx, dword [ebp - 0x298]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x420605
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210cb
push edx
push ecx
call fcn.004ad677
add esp, 8
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x1f4]
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x284], 0xf
mov byte [ebp - 0x298], 0
cmp edx, 0x10
jb 0x420668
mov ecx, dword [ebp - 0x208]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x42065e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210d0
push edx
push ecx
call fcn.004ad677
add esp, 8
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0x1d4]
mov dword [ebp - 0x1f8], 0
mov dword [ebp - 0x1f4], 0xf
mov byte [ebp - 0x208], 0
cmp edx, 0x10
jb 0x4206c1
mov ecx, dword [ebp - 0x1e8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4206b7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210d5
push edx
push ecx
call fcn.004ad677
add esp, 8
mov byte [ebp - 4], 0x13
mov edx, dword [ebp - 0x26c]
mov dword [ebp - 0x1d8], 0
mov dword [ebp - 0x1d4], 0xf
mov byte [ebp - 0x1e8], 0
cmp edx, 0x10
jb 0x42071a
mov ecx, dword [ebp - 0x280]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x420710
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210da
push edx
push ecx
call fcn.004ad677
add esp, 8
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x254]
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 0xf
mov byte [ebp - 0x280], 0
cmp edx, 0x10
jb 0x420773
mov ecx, dword [ebp - 0x268]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x420769
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210df
push edx
push ecx
call fcn.004ad677
add esp, 8
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x20c]
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x254], 0xf
mov byte [ebp - 0x268], 0
cmp edx, 0x10
jb 0x4207cc
mov ecx, dword [ebp - 0x220]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4207c2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210e4
push edx
push ecx
call fcn.004ad677
add esp, 8
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x144]
mov dword [ebp - 0x210], 0
mov dword [ebp - 0x20c], 0xf
mov byte [ebp - 0x220], 0
cmp edx, 0x10
jb 0x420825
mov ecx, dword [ebp - 0x158]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x42081b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210e9
push edx
push ecx
call fcn.004ad677
add esp, 8
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x228]
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x144], 0xf
mov byte [ebp - 0x158], 0
cmp edx, 0x10
jb 0x42087e
mov ecx, dword [ebp - 0x23c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x420874
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210ee
push edx
push ecx
call fcn.004ad677
add esp, 8
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x12c]
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x228], 0xf
mov byte [ebp - 0x23c], 0
cmp edx, 0x10
jb 0x4208d7
mov ecx, dword [ebp - 0x140]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4208cd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4210f3
push edx
push ecx
call fcn.004ad677
add esp, 8
mov eax, dword [ebx + 8]
xor ecx, ecx
mov esi, 0xc
push 4
push 0x4f0424
mov dl, byte [eax + 0x1c]
mov eax, dword [eax + 0x120]
cmp dl, 0xff
mov byte [ebp - 0x1b9], dl
cmovne ecx, esi
mov dword [ebp - 0x178], 0
mov esi, dword [ebp - 0x160]
mov dword [ebp - 0x1c4], ecx
lea edi, [eax + eax*4]
add esi, ecx
shl edi, 2
lea ecx, [ebp - 0x188]
mov dword [ebp - 0x174], 0xf
mov byte [ebp - 0x188], 0
call fcn.00407e90
lea edx, [edi + 1]
mov byte [ebp - 4], 0x1a
add edx, esi
lea ecx, [ebp - 0x33]
call fcn.00453fb0
lea ecx, [ebp - 0x33]
mov dword [ebp - 0x210], 0
mov dword [ebp - 0x20c], 0xf
mov byte [ebp - 0x220], 0
cmp eax, ecx
je 0x420979
sub ecx, eax
push ecx
push eax
lea ecx, [ebp - 0x220]
call fcn.00407e90
mov esi, dword [ebp - 0x1f0]
lea ecx, [ebp - 0x1b]
mov byte [ebp - 4], 0x1b
mov edx, esi
test esi, esi
jns 0x42099c
neg edx
call fcn.00453fb0
mov byte [eax - 1], 0x2d
lea ecx, [eax - 1]
jmp 0x4209a3
call fcn.00453fb0
mov ecx, eax
lea eax, [ebp - 0x1b]
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x144], 0xf
mov byte [ebp - 0x158], 0
cmp ecx, eax
je 0x4209d4
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x158]
call fcn.00407e90
push 0x18
push 0x4f0440
push ecx
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0x1c
call fcn.00453b70
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x140], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x130], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push str.e10:total_sizei
lea ecx, [ebp - 0x140]
mov byte [ebp - 4], 0x1d
call fcn.00406b90
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x228], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x23c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x22c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x220]
mov byte [ebp - 4], 0x1e
push eax
lea edx, [ebp - 0x23c]
lea ecx, [ebp - 0x268]
call fcn.00451620
push 0x4f042c
mov edx, eax
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x1b8]
call fcn.00450d60
add esp, 8
lea ecx, [ebp - 0x268]
call fcn.00406cd0
lea ecx, [ebp - 0x23c]
call fcn.00406cd0
lea ecx, [ebp - 0x140]
call fcn.00406cd0
lea ecx, [ebp - 0x158]
call fcn.00406cd0
lea ecx, [ebp - 0x220]
call fcn.00406cd0
mov edx, dword [ebp - 0x1a8]
mov dword [ebp - 0x1ec], 0
mov dword [ebp - 0x190], 0
mov dword [ebp - 0x18c], 0xf
lea ecx, [edx + 0x4000]
mov byte [ebp - 0x1a0], 0
mov dword [ebp - 0x1c8], ecx
mov byte [ebp - 4], 0x26
test esi, esi
jne 0x420baa
mov eax, dword [ebp - 0x178]
add eax, edx
mov dword [ebp - 0x1cc], esi
add eax, dword [ebp - 0x160]
mov esi, dword [ebp - 0x1c4]
inc esi
mov dword [ebp - 0x1c0], eax
add eax, esi
add eax, edi
cmp eax, ecx
jae 0x420b6b
cmp byte [ebp - 0x1b9], 0xff
mov esi, 1
mov eax, 0xd
cmovne esi, eax
mov dword [ebp - 0x1ec], esi
jmp 0x420b75
mov edi, ecx
sub edi, edx
sub edi, dword [ebp - 0x160]
lea eax, [ebp - 0x170]
push eax
lea ecx, [ebp - 0x1b8]
call fcn.00406c00
push eax
lea ecx, [ebp - 0x188]
call fcn.00406c00
push eax
lea ecx, [ebp - 0x1a0]
call fcn.00406ca0
mov edx, dword [ebp - 0x1ec]
jmp 0x420c42
sub ecx, dword [ebp - 0x1a8]
add edx, dword [ebp - 0x178]
mov dword [ebp - 0x1f0], ecx
sub ecx, dword [ebp - 0x160]
mov dword [ebp - 0x1c0], edx
mov dword [ebp - 0x1cc], ecx
cmp esi, 1
jle 0x420be4
shl esi, 0xe
add esi, 0xffffc000
add ecx, esi
mov dword [ebp - 0x1cc], ecx
mov eax, dword [ebp - 0x1c4]
lea esi, [edi + 1]
sub eax, ecx
lea ecx, [ebp - 0x188]
add eax, edx
add esi, eax
lea eax, [ebp - 0x1b8]
push eax
call fcn.00406c00
push eax
lea ecx, [ebp - 0x1a0]
call fcn.00406ca0
cmp byte [ebp - 0x1b9], 0xff
mov eax, 1
mov ecx, 0xd
cmovne eax, ecx
cmp esi, dword [ebp - 0x1c8]
sbb edx, edx
sub edi, dword [ebp - 0x1cc]
and edx, eax
cmp esi, dword [ebp - 0x1c8]
cmovae edi, dword [ebp - 0x1f0]
mov eax, dword [ebp - 0x1c0]
add edx, 0xfffffffc
add eax, edi
mov dword [ebp - 0x1d0], eax
add eax, edx
push eax
call dword [sym.imp.WS2_32.dll_htonl]
push 0
lea ecx, [ebp - 0x1a0]
mov esi, eax
call fcn.00406b70
mov ecx, dword [ebp - 0x1d0]
mov dword [ebp - 0x1ec], ecx
mov byte [ebp - 0x1b9], 0
mov dword [eax], esi
mov eax, dword [ebx + 8]
cmp byte [eax + 0x1c], 0xff
mov eax, dword [ebp - 0x1c8]
je 0x420caa
mov edx, dword [ebp - 0x1c4]
add edx, ecx
cmp edx, eax
jae 0x420caa
mov ecx, edx
mov byte [ebp - 0x1b9], 1
mov dword [ebp - 0x1ec], ecx
cmp ecx, eax
lea esi, [ecx + 1]
cmovae esi, ecx
push esi
call fcn.004b5cd0
add esp, 4
mov dword [ebp - 0x1c4], eax
test eax, eax
je 0x42105c
push dword [ebp - 0x1c0]
lea ecx, [ebp - 0x1a0]
push 0
call fcn.00406b70
push eax
push dword [ebp - 0x1c4]
call fcn.004aee70
mov eax, dword [ebx + 8]
push edi
mov eax, dword [eax + 0x3a4]
add eax, dword [ebp - 0x1cc]
push eax
mov eax, dword [ebp - 0x1c0]
add eax, dword [ebp - 0x1c4]
push eax
call fcn.004aee70
add esp, 0x18
cmp byte [ebp - 0x1b9], 0
je 0x420da8
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x158]
movsx edx, byte [eax + 0x1c]
call fcn.0040cf50
push eax
mov edx, str.7:privatei
mov byte [ebp - 4], 0x27
lea ecx, [ebp - 0x140]
call fcn.00450d00
push 0x4f045c
mov edx, eax
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x23c]
call fcn.00450d60
add esp, 8
mov ecx, eax
call fcn.00406b60
mov ecx, dword [ebp - 0x1c4]
mov edi, dword [ebp - 0x1d0]
movq xmm0, qword [eax]
movq qword [edi + ecx], xmm0
mov eax, dword [eax + 8]
mov dword [edi + ecx + 8], eax
lea ecx, [ebp - 0x23c]
call fcn.00406cd0
lea ecx, [ebp - 0x140]
call fcn.00406cd0
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0x26
call fcn.00406cd0
add edi, 0xc
jmp 0x420dae
mov edi, dword [ebp - 0x1d0]
mov eax, dword [ebp - 0x1ec]
cmp eax, dword [ebp - 0x1c8]
jae 0x420dc7
mov eax, dword [ebp - 0x1c4]
mov byte [edi + eax], 0x65
inc edi
cmp esi, edi
je 0x420de1
push 0
push 0x4f0470
mov edx, 0x4f0488
xor ecx, ecx
call fcn.0040d370
add esp, 8
mov eax, dword [ebx + 0xc]
cmp dword [eax + 8], 6
jne 0x420e2d
push 0
push esi
push dword [ebp - 0x1c4]
push dword [eax + 0xc]
call dword [sym.imp.WS2_32.dll_send]
mov eax, dword [ebx + 0xc]
push dword [ebp - 0x1c4]
add dword [0x50e4e4], esi
mov eax, dword [eax + 0xf8]
add dword [eax + 0xec], esi
mov eax, dword [ebx + 8]
add dword [eax + 0x248], esi
call fcn.004b5a1c
add esp, 4
jmp 0x421072
mov eax, 0x74e4b041
mul esi
mov eax, esi
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0xa
imul ecx, eax, 0x57e
mov eax, esi
sub eax, ecx
mov dword [ebp - 0x250], eax
mov eax, 0xba725821
je 0x420e67
imul ecx
add edx, ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
lea ecx, [eax + 1]
jmp 0x420e7d
imul esi
mov dword [ebp - 0x250], 0x57e
add edx, esi
sar edx, 0xa
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [ebp - 0x22a], 0x7a120
xor al, al
mov dword [ebp - 0x1f0], ecx
mov edx, 0x57e
mov dword [ebp - 0x226], 0
xor edi, edi
mov dword [ebp - 0x1cc], edx
mov dword [ebp - 0x1d0], eax
mov byte [ebp - 0x22b], al
test ecx, ecx
jle 0x42104c
mov esi, dword [ebp - 0x1c4]
dec ecx
mov dword [ebp - 0x2a4], ecx
mov dword [ebp - 0x1c0], esi
nop
cmp edi, ecx
jne 0x420f03
mov ecx, dword [ebp - 0x1ec]
cmp ecx, dword [ebp - 0x1c8]
mov ecx, 1
mov edx, dword [ebp - 0x250]
movzx eax, al
cmovb eax, ecx
mov dword [ebp - 0x1cc], edx
mov dword [ebp - 0x1d0], eax
mov byte [ebp - 0x22b], al
lea eax, [edx + 0x14]
push eax
mov dword [ebp - 0x2a0], eax
call fcn.004b5cd0
add esp, 4
mov dword [ebp - 0x29c], eax
test eax, eax
je 0x42100b
push dword [ebp - 0x1cc]
lea ecx, [eax + 0x14]
push esi
push ecx
call fcn.004aee70
mov ecx, dword [ebx + 0xc]
push dword [ecx + 0x6e]
push dword [ecx + 0x6a]
push ecx
mov ecx, dword [ecx + 0x5a]
call fcn.00414720
mov cl, byte [0x50e5dc]
add esp, 0x18
and cl, 0xf1
mov esi, eax
or cl, 1
mov byte [0x50e5dc], cl
mov ecx, 0x50e5dc
push 0
call fcn.0040d300
mov ecx, dword [ebx + 0xc]
mov byte [0x50e5dd], 0
movzx eax, word [ecx + 0x14]
push eax
call dword [sym.imp.WS2_32.dll_htons]
push esi
mov word [0x50e5de], ax
call dword [sym.imp.WS2_32.dll_htonl]
mov dword [0x50e5e4], eax
mov eax, dword [ebx + 0xc]
movzx eax, word [eax + 0x1c]
push eax
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [ebx + 0xc]
movups xmm0, xmmword [0x50e5dc]
mov word [0x50e5ec], ax
mov eax, dword [0x50e5ec]
mov dword [ebp - 0x23c], eax
lea ecx, [ecx + 0xc0]
mov eax, dword [ebp - 0x29c]
mov dword [ebp - 0x226], eax
mov eax, dword [ebp - 0x2a0]
mov dword [ebp - 0x230], eax
lea eax, [ebp - 0x24c]
push eax
movups xmmword [ebp - 0x24c], xmm0
mov byte [ebp - 0x22c], 0
call fcn.004456b0
mov eax, dword [ebx + 0xc]
mov esi, dword [ebp - 0x1c0]
inc word [eax + 0x1c]
mov al, byte [ebp - 0x22b]
mov dword [ebp - 0x1d0], eax
jmp 0x421027
push 0
push 0x4f04a4
mov edx, str.pPackage
xor ecx, ecx
call fcn.0040d370
mov eax, dword [ebp - 0x1d0]
add esp, 8
mov edx, dword [ebp - 0x1cc]
inc edi
mov ecx, dword [ebp - 0x2a4]
add esi, 0x57e
mov dword [ebp - 0x1c0], esi
cmp edi, dword [ebp - 0x1f0]
jl 0x420ed0
push dword [ebp - 0x1c4]
call fcn.004b5a1c
add esp, 4
jmp 0x421072
push 0
push str.send_metadata_torrent__
mov edx, str.p_msg_full
xor ecx, ecx
call fcn.0040d370
add esp, 8
lea ecx, [ebp - 0x1a0]
call fcn.00406cd0
lea ecx, [ebp - 0x1b8]
call fcn.00406cd0
lea ecx, [ebp - 0x188]
call fcn.00406cd0
lea ecx, [ebp - 0x170]
call fcn.00406cd0
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
call fcn.00408990
call fcn.004b5c80
call fcn.004b5c80
call fcn.004b5c80
call fcn.004b5c80
call fcn.004b5c80
call fcn.004b5c80
call fcn.004b5c80
call fcn.004b5c80
call fcn.004b5c80
call fcn.004b5c80
call fcn.004b5c80
int3