Function at 0x409886
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4629ce
mov eax, dword fs:[0]
push eax
mov eax, 0x1454
call fcn.00449600
mov eax, dword [0x47a468]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0xec], edi
call dword [0x47a234]
mov eax, dword [edi + 0xc]
mov ecx, dword [eax - 0xc]
xor esi, esi
cmp ecx, esi
jne 0x4098dc
push str.empty_filename
jmp 0x40a0aa
lea ecx, [ebp - 0x148]
push ecx
push eax
mov dword [ebp - 0xf0], esi
call fcn.004317ca
cmp eax, 0xffffffff
pop ecx
pop ecx
jne 0x409900
push str.error_get_file_length
jmp 0x40a0aa
mov edi, dword [edi + 0xc]
push 0x46c234
lea eax, [ebp - 0xf0]
push edi
push eax
call fcn.00431bc7
add esp, 0xc
test eax, eax
jne 0x40a0a5
cmp dword [ebp - 0xf0], esi
je 0x40a0a5
mov eax, dword [ebp - 0x134]
inc eax
push eax
call fcn.0042e57e
mov ebx, eax
mov eax, dword [ebp - 0x134]
pop ecx
inc eax
push eax
push esi
push ebx
call fcn.004381b0
add esp, 0xc
cmp ebx, esi
jne 0x409971
push str.error_alloc_memory
push 0x40
call fcn.0041a9fb
push dword [ebp - 0xf0]
call fcn.00431c89
add esp, 0xc
jmp 0x40a0b3
push dword [ebp - 0xf0]
push dword [ebp - 0x134]
push 1
push ebx
call fcn.00431fa1
add esp, 0x10
cmp dword [ebp - 0x134], eax
je 0x4099b5
push str.error_read_file
push 0x40
call fcn.0041a9fb
push ebx
call fcn.004300c8
add esp, 0xc
push dword [ebp - 0xf0]
call fcn.00431c89
jmp 0x40a0b2
push dword [ebp - 0xf0]
call fcn.00431c89
xor eax, eax
mov byte [ebp - 0x24], 0
lea edi, [ebp - 0x23]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [esp], str.5EA7652F_DFD4_457c_A564_723978681473
stosw word es:[edi], ax
push 0x46c2cc
push 0xffffffffffffffff
stosb byte es:[edi], al
lea eax, [ebp - 0x24]
push 0x14
push eax
call fcn.00431fd8
add esp, 0x14
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x134]
mov ecx, ebx
call fcn.004194f9
pop ecx
pop ecx
lea eax, [ebp - 0xe8]
push eax
call fcn.00416cf9
push 1
push esi
push ebx
lea ecx, [ebp - 0xe8]
mov dword [ebp - 4], esi
call fcn.0041808f
push ebx
call fcn.004300c8
lea eax, [ebp - 0xe8]
mov dword [esp], str.picpack
call fcn.0040d4c2
mov edi, eax
cmp edi, esi
je 0x409afd
push esi
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x28], 0xf
call fcn.0040530f
push str.zipurl
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 1
call fcn.0040629d
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10c]
push eax
mov eax, edi
mov byte [ebp - 4], 2
call fcn.0040d495
mov ebx, eax
neg ebx
push esi
sbb bl, bl
push 1
lea ecx, [ebp - 0x10c]
inc bl
mov byte [ebp - 4], 1
call fcn.004054b5
test bl, bl
je 0x409aee
cmp dword [ebp - 0x28], 0x10
mov eax, dword [ebp - 0x3c]
jae 0x409aa3
lea eax, [ebp - 0x3c]
lea ecx, [ebp - 0x1458]
push eax
lea eax, [ebp - 0x145c]
mov dword [ebp - 0x145c], ecx
call fcn.0040a3f9
mov eax, dword [ebp - 0xec]
mov byte [ebp - 4], 3
push dword [ebp - 0x145c]
add eax, 0x20
push eax
call fcn.0040651a
lea eax, [ebp - 0x1458]
cmp dword [ebp - 0x145c], eax
je 0x409aee
push dword [ebp - 0x145c]
call fcn.0042fb38
pop ecx
push esi
push 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0
call fcn.004054b5
mov eax, dword [ebp - 0xec]
add eax, 0x10
mov dword [ebp - 0x114], eax
call fcn.0040a289
push str.downloadlist
lea eax, [ebp - 0xe8]
call fcn.0040d4c2
cmp eax, esi
jne 0x409b47
push str.error_find_downloadlist_node
push 0x40
call fcn.0041a9fb
or dword [ebp - 4], 0xffffffff
pop ecx
pop ecx
lea ecx, [ebp - 0xe8]
call fcn.0040d4f7
jmp 0x40a0b3
push str.item
call fcn.0040d4c2
cmp eax, esi
mov dword [ebp - 0xec], eax
je 0x40a092
jmp 0x409b63
xor esi, esi
lea edi, [ebp - 0x70]
call fcn.00408fc4
mov eax, edi
push eax
call dword [0x465588]
push esi
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x28], 0xf
call fcn.0040530f
push str.name
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 5
call fcn.0040629d
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10c]
push eax
mov eax, dword [ebp - 0xec]
mov byte [ebp - 4], 6
call fcn.0040d495
mov ebx, eax
neg ebx
push esi
sbb bl, bl
push 1
lea ecx, [ebp - 0x10c]
inc bl
mov byte [ebp - 4], 5
call fcn.004054b5
test bl, bl
je 0x409c36
cmp dword [ebp - 0x28], 0x10
mov eax, dword [ebp - 0x3c]
jae 0x409bdc
lea eax, [ebp - 0x3c]
mov esi, 0xfde9
push esi
push eax
lea eax, [ebp - 0x24c]
lea ecx, [ebp - 0x248]
push eax
mov dword [ebp - 0x24c], ecx
call fcn.00403271
mov byte [ebp - 4], 7
push dword [ebp - 0x24c]
lea eax, [ebp - 0x60]
push eax
call fcn.0040651a
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 5
cmp dword [ebp - 0x24c], eax
je 0x409c2c
push dword [ebp - 0x24c]
call fcn.0042fb38
pop ecx
lea edi, [ebp - 0x60]
call fcn.0040a0cf
jmp 0x409c3b
mov esi, 0xfde9
push str.desc
lea ecx, [ebp - 0x10c]
call fcn.0040629d
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10c]
push eax
mov eax, dword [ebp - 0xec]
mov byte [ebp - 4], 8
call fcn.0040d495
mov ebx, eax
neg ebx
sbb bl, bl
xor edi, edi
push edi
push 1
lea ecx, [ebp - 0x10c]
inc bl
mov byte [ebp - 4], 5
call fcn.004054b5
test bl, bl
je 0x409cee
cmp dword [ebp - 0x28], 0x10
mov eax, dword [ebp - 0x3c]
jae 0x409c91
lea eax, [ebp - 0x3c]
push esi
push eax
lea eax, [ebp - 0x24c]
lea ecx, [ebp - 0x248]
push eax
mov dword [ebp - 0x24c], ecx
call fcn.00403271
mov byte [ebp - 4], 9
push dword [ebp - 0x24c]
lea eax, [ebp - 0x5c]
push eax
call fcn.0040651a
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 5
cmp dword [ebp - 0x24c], eax
je 0x409cdc
push dword [ebp - 0x24c]
call fcn.0042fb38
pop ecx
lea eax, [ebp - 0x5c]
call fcn.0040a188
lea ebx, [ebp - 0x5c]
call fcn.0040a143
xor edi, edi
push str.version
lea ecx, [ebp - 0x10c]
call fcn.0040629d
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10c]
push eax
mov eax, dword [ebp - 0xec]
mov byte [ebp - 4], 0xa
call fcn.0040d495
mov ebx, eax
neg ebx
push edi
sbb bl, bl
push 1
lea ecx, [ebp - 0x10c]
inc bl
mov byte [ebp - 4], 5
call fcn.004054b5
test bl, bl
je 0x409d97
cmp dword [ebp - 0x28], 0x10
mov eax, dword [ebp - 0x3c]
jae 0x409d42
lea eax, [ebp - 0x3c]
push esi
push eax
lea eax, [ebp - 0x24c]
lea ecx, [ebp - 0x248]
push eax
mov dword [ebp - 0x24c], ecx
call fcn.00403271
mov byte [ebp - 4], 0xb
push dword [ebp - 0x24c]
lea eax, [ebp - 0x58]
push eax
call fcn.0040651a
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 5
cmp dword [ebp - 0x24c], eax
je 0x409d8d
push dword [ebp - 0x24c]
call fcn.0042fb38
pop ecx
lea edi, [ebp - 0x58]
call fcn.0040a0cf
xor edi, edi
push str.tnusage
lea ecx, [ebp - 0x10c]
call fcn.0040629d
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10c]
push eax
mov eax, dword [ebp - 0xec]
mov byte [ebp - 4], 0xc
call fcn.0040d495
mov ebx, eax
neg ebx
push edi
sbb bl, bl
push 1
lea ecx, [ebp - 0x10c]
inc bl
mov byte [ebp - 4], 5
call fcn.004054b5
test bl, bl
je 0x409e36
cmp dword [ebp - 0x28], 0x10
mov eax, dword [ebp - 0x3c]
jae 0x409deb
lea eax, [ebp - 0x3c]
push esi
push eax
lea eax, [ebp - 0x24c]
lea ecx, [ebp - 0x248]
push eax
mov dword [ebp - 0x24c], ecx
call fcn.00403271
mov byte [ebp - 4], 0xd
push dword [ebp - 0x24c]
lea eax, [ebp - 0x54]
push eax
call fcn.0040651a
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 5
cmp dword [ebp - 0x24c], eax
je 0x409e36
push dword [ebp - 0x24c]
call fcn.0042fb38
pop ecx
push 0x46c354
lea ecx, [ebp - 0x10c]
call fcn.0040629d
mov esi, dword [ebp - 0xec]
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10c]
push eax
mov eax, esi
mov byte [ebp - 4], 0xe
call fcn.0040d495
mov ebx, eax
neg ebx
push edi
sbb bl, bl
push 1
lea ecx, [ebp - 0x10c]
inc bl
mov byte [ebp - 4], 5
call fcn.004054b5
test bl, bl
je 0x409ed5
cmp dword [ebp - 0x28], 0x10
mov eax, dword [ebp - 0x3c]
jae 0x409e8c
lea eax, [ebp - 0x3c]
lea ecx, [ebp - 0x1458]
push eax
lea eax, [ebp - 0x145c]
mov dword [ebp - 0x145c], ecx
call fcn.0040a3f9
mov byte [ebp - 4], 0xf
push dword [ebp - 0x145c]
lea eax, [ebp - 0x50]
push eax
call fcn.0040651a
lea eax, [ebp - 0x1458]
mov byte [ebp - 4], 5
cmp dword [ebp - 0x145c], eax
je 0x409ed5
push dword [ebp - 0x145c]
call fcn.0042fb38
pop ecx
push str.attachment
lea ecx, [ebp - 0x10c]
call fcn.0040629d
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10c]
push eax
mov eax, esi
mov byte [ebp - 4], 0x10
call fcn.0040d495
mov ebx, eax
neg ebx
push edi
sbb bl, bl
push 1
lea ecx, [ebp - 0x10c]
inc bl
mov byte [ebp - 4], 5
call fcn.004054b5
test bl, bl
je 0x409f6e
cmp dword [ebp - 0x28], 0x10
mov eax, dword [ebp - 0x3c]
jae 0x409f25
lea eax, [ebp - 0x3c]
lea ecx, [ebp - 0x1458]
push eax
lea eax, [ebp - 0x145c]
mov dword [ebp - 0x145c], ecx
call fcn.0040a3f9
mov byte [ebp - 4], 0x11
push dword [ebp - 0x145c]
lea eax, [ebp - 0x4c]
push eax
call fcn.0040651a
lea eax, [ebp - 0x1458]
mov byte [ebp - 4], 5
cmp dword [ebp - 0x145c], eax
je 0x409f6e
push dword [ebp - 0x145c]
call fcn.0042fb38
pop ecx
push str.installcmd
lea ecx, [ebp - 0x10c]
call fcn.0040629d
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10c]
push eax
mov eax, esi
mov byte [ebp - 4], 0x12
call fcn.0040d495
mov ebx, eax
neg ebx
push edi
sbb bl, bl
push 1
lea ecx, [ebp - 0x10c]
inc bl
mov byte [ebp - 4], 5
call fcn.004054b5
test bl, bl
je 0x40a007
cmp dword [ebp - 0x28], 0x10
mov eax, dword [ebp - 0x3c]
jae 0x409fbe
lea eax, [ebp - 0x3c]
lea ecx, [ebp - 0x454]
push eax
lea eax, [ebp - 0x458]
mov dword [ebp - 0x458], ecx
call fcn.0040a49e
mov byte [ebp - 4], 0x13
push dword [ebp - 0x458]
lea eax, [ebp - 0x48]
push eax
call fcn.0040651a
lea eax, [ebp - 0x454]
mov byte [ebp - 4], 5
cmp dword [ebp - 0x458], eax
je 0x40a007
push dword [ebp - 0x458]
call fcn.0042fb38
pop ecx
push 0x46c370
lea ecx, [ebp - 0x10c]
mov dword [ebp - 0x110], edi
call fcn.0040629d
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x10c]
push eax
mov ecx, esi
mov byte [ebp - 4], 0x14
call fcn.0040a8a1
push edi
push 1
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 5
call fcn.004054b5
mov eax, dword [ebp - 0x110]
mov esi, dword [ebp - 0x114]
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x70]
push eax
call fcn.0040a22a
mov eax, dword [ebp - 0xec]
call fcn.0040d467
push 0
push 1
lea ecx, [ebp - 0x40]
mov dword [ebp - 0xec], eax
call fcn.004054b5
lea esi, [ebp - 0x70]
call fcn.00409001
cmp dword [ebp - 0xec], 0
jne 0x409b61
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe8]
call fcn.0040d4f7
mov al, 1
jmp 0x40a0b5
push str.error_open_file
push 0x40
call fcn.0041a9fb
pop ecx
pop ecx
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042fa17
leave
ret