Function at 0x551cb0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x21c
mov eax, dword [esp + 0x224]
push ebx
mov ebx, dword [esp + 0x22c]
push ebp
push esi
push edi
xor edi, edi
cmp ebx, edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], edi
mov dword [eax], edi
je 0x5521e3
mov ecx, dword [esp + 0x230]
push ecx
call fcn.00552780
mov ebp, eax
add esp, 4
cmp ebp, edi
mov dword [esp + 0x24], ebp
jne 0x551d0e
pop edi
pop esi
pop ebp
mov eax, 0x1b
pop ebx
add esp, 0x21c
ret
mov eax, dword [esp + 0x23c]
cmp eax, edi
jne 0x551d1e
mov eax, str.Content_Type:_multipart_form_data
push ebp
push eax
push str._s__boundary_s_r_n
lea edx, [esp + 0x1c]
push edi
push edx
call fcn.00552400
mov esi, eax
add esp, 0x14
test esi, esi
je 0x551d50
push ebp
call dword [0x5af228]
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x21c
ret
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
or ecx, eax
je 0x551d85
lea edx, [esp + 0x14]
push 0x5afb6c
lea eax, [esp + 0x14]
push edx
push eax
call fcn.00552400
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x55217d
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x14]
push ecx
push str.___s_r_n
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00552400
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x55217d
lea ecx, [esp + 0x14]
push str.Content_Disposition:_form_data__name_
lea edx, [esp + 0x14]
push ecx
push edx
call fcn.00552400
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x55217d
lea eax, [esp + 0x14]
mov ecx, dword [ebx + 4]
push eax
mov eax, dword [ebx + 8]
cdq
push edx
push eax
push ecx
lea edx, [esp + 0x20]
push 1
push edx
call fcn.005521f0
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x55217d
lea eax, [esp + 0x14]
push 0x5b6430
lea ecx, [esp + 0x14]
push eax
push ecx
call fcn.00552400
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x55217d
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x551e61
push edi
call dword [0x5af228]
mov edx, dword [esp + 0x234]
push edx
call fcn.00552780
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
je 0x552150
push eax
lea eax, [esp + 0x18]
push str._r_nContent_Type:_multipart_mixed__boundary_s_r_n
lea ecx, [esp + 0x18]
push eax
push ecx
call fcn.00552400
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x55217d
mov dword [esp + 0x1c], ebx
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x551eb5
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x14]
push edx
push str._r_n___s_r_nContent_Disposition:_attachment
lea ecx, [esp + 0x18]
push eax
push ecx
call fcn.00552400
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x55217d
mov ebp, dword [esp + 0x1c]
lea edx, [esp + 0x14]
lea eax, [esp + 0x10]
push edx
push eax
push ebp
call fcn.00552450
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x55217d
jmp 0x551ee8
mov eax, dword [ebx + 0x28]
test al, 0x51
je 0x551ee4
mov ecx, dword [ebx + 0x2c]
test ecx, ecx
jne 0x551ec7
test al, 1
je 0x551edc
lea ecx, [esp + 0x14]
lea edx, [esp + 0x10]
push ecx
push edx
push ebx
call fcn.00552450
add esp, 0xc
mov esi, eax
test esi, esi
jne 0x55217d
mov ebp, dword [esp + 0x1c]
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x551f11
push eax
lea eax, [esp + 0x18]
push str._r_nContent_Type:__s
lea ecx, [esp + 0x18]
push eax
push ecx
call fcn.00552400
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x55217d
mov edi, dword [ebp + 0x20]
test edi, edi
je 0x551f45
mov edx, dword [edi]
lea eax, [esp + 0x14]
push edx
push str._r_n_s
lea ecx, [esp + 0x18]
push eax
push ecx
call fcn.00552400
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x55217d
mov edi, dword [edi + 4]
test edi, edi
jne 0x551f18
jmp 0x551f4d
test esi, esi
jne 0x55217d
lea edx, [esp + 0x14]
push str._r_n_r_n
lea eax, [esp + 0x14]
push edx
push eax
call fcn.00552400
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x55217d
mov eax, dword [ebx + 0x28]
test al, 3
jne 0x551fe7
test al, 0x10
je 0x551f9e
mov eax, dword [ebx + 0x18]
lea ecx, [esp + 0x14]
cdq
push ecx
push edx
mov edx, dword [ebx + 0x14]
push eax
push edx
push 2
lea eax, [esp + 0x24]
push eax
call fcn.005521f0
add esp, 0x18
mov esi, eax
jmp 0x552100
test al, 0x40
je 0x551fc1
test al, 0x80
je 0x551fae
mov eax, dword [ebx + 0x38]
mov edx, dword [ebx + 0x3c]
jmp 0x551fb2
mov eax, dword [ebx + 0x10]
cdq
lea ecx, [esp + 0x14]
push ecx
push edx
mov edx, dword [ebx + 0x30]
push eax
push edx
push 3
jmp 0x551f8a
test al, 0x80
je 0x551fd7
mov edx, dword [ebx + 0x3c]
mov eax, dword [ebx + 0x38]
lea ecx, [esp + 0x14]
push ecx
push edx
mov edx, dword [ebx + 0xc]
push eax
jmp 0x551f87
mov eax, dword [ebx + 0x10]
lea ecx, [esp + 0x14]
cdq
push ecx
push edx
mov edx, dword [ebx + 0xc]
push eax
jmp 0x551f87
mov ebp, dword [ebp + 0xc]
mov eax, 0x5b02ac
mov edi, ebp
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [edi]
jne 0x552015
test cl, cl
je 0x552011
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [edi + 1]
jne 0x552015
add eax, 2
add edi, 2
test cl, cl
jne 0x551ff1
xor eax, eax
jmp 0x55201a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x552025
mov edi, 0x5adf10
jmp 0x552035
push 0x5b63b0
push ebp
call fcn.0050517b
add esp, 8
mov edi, eax
test edi, edi
je 0x5520cd
cmp edi, 0x5adf10
push edi
je 0x552072
call fcn.00504aff
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x18]
push eax
push 0
mov edx, dword [ecx + 0xc]
push 0
push edx
lea eax, [esp + 0x24]
push 4
push eax
call fcn.005521f0
add esp, 0x1c
mov esi, eax
jmp 0x552100
push 0x200
lea ecx, [esp + 0x34]
push 1
push ecx
call fcn.0050796a
add esp, 0x10
test eax, eax
je 0x552100
lea edx, [esp + 0x14]
lea ecx, [esp + 0x10]
push edx
push 0
push eax
lea eax, [esp + 0x38]
push eax
push 2
push ecx
call fcn.005521f0
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x552100
test byte [edi + 0xc], 0x30
jne 0x552100
push edi
push 0x200
lea edx, [esp + 0x34]
push 1
push edx
call fcn.0050796a
add esp, 0x10
test eax, eax
jne 0x55208a
jmp 0x552100
mov eax, dword [esp + 0x230]
test eax, eax
je 0x5520ee
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0xc]
push edx
push str.couldnt_open_file___s_
push eax
call fcn.0052a610
add esp, 0xc
mov eax, dword [esp + 0x234]
mov esi, 0x1a
mov dword [eax], 0
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x24]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x552118
test esi, esi
jne 0x55217d
jmp 0x551e65
test esi, esi
jne 0x55217d
mov eax, dword [ebx + 0x24]
mov edi, dword [esp + 0x20]
test eax, eax
je 0x552145
push edi
lea edx, [esp + 0x18]
push str._r_n___s__
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00552400
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x55217d
mov ebx, dword [ebx]
test ebx, ebx
je 0x552157
jmp 0x551d58
mov esi, 0x1b
jmp 0x55217d
test esi, esi
jne 0x55217d
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x14]
push ecx
push str._r_n___s___r_n
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00552400
mov esi, eax
add esp, 0x10
test esi, esi
je 0x5521ad
lea ecx, [esp + 0x28]
push ecx
call fcn.00551c70
mov edx, dword [esp + 0x24]
push edx
call dword [0x5af228]
mov eax, dword [esp + 0x2c]
push eax
call dword [0x5af228]
add esp, 0xc
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x21c
ret
mov eax, dword [esp + 0x240]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push edi
mov dword [eax], ecx
mov dword [eax + 4], edx
call dword [0x5af228]
mov eax, dword [esp + 0x28]
push eax
call dword [0x5af228]
mov edx, dword [esp + 0x23c]
mov ecx, dword [esp + 0x30]
add esp, 8
mov dword [edx], ecx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x21c
ret