Function at 0x10009980
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x238
mov eax, dword [0x100554b0]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 0x10]
push edi
xor edi, edi
mov dword [ebp - 0x22c], eax
mov dword [ebp - 0x234], ecx
mov dword [ebp - 0x238], edx
mov dword [ebp - 0x210], edi
mov dword [ebp - 0x21c], edi
mov dword [ebp - 0x218], edi
mov dword [ebp - 0x220], edi
mov dword [ecx], edi
cmp ebx, edi
je 0x10009f90
call fcn.1000a130
mov dword [ebp - 0x228], eax
test eax, eax
jne 0x100099f8
lea eax, [edi + 0x1b]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.10035d36
mov esp, ebp
pop ebp
ret
test esi, esi
jne 0x10009a01
mov esi, str.Content_Type:_multipart_form_data
push eax
push esi
push str._s__boundary_s_r_n
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.100095d0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x10009a42
mov ecx, dword [ebp - 0x228]
push ecx
call dword [0x100560ec]
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.10035d36
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x210]
mov dword [ebp - 0x230], edx
mov edi, edi
or edi, dword [ebp - 0x218]
je 0x10009a7d
push 0x1004c63c
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x210]
push ecx
call fcn.100095d0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x10009f09
mov edx, dword [ebp - 0x228]
push edx
push str.___s_r_n
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x210]
push ecx
call fcn.100095d0
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x10009f09
push str.Content_Disposition:_form_data__name_
lea edx, [ebp - 0x21c]
push edx
lea eax, [ebp - 0x210]
push eax
call fcn.100095d0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x10009f09
mov eax, dword [ebx + 8]
cdq
lea ecx, [ebp - 0x21c]
push ecx
mov ecx, dword [ebx + 4]
push edx
push eax
lea edx, [ebp - 0x210]
push 1
push edx
call fcn.100093c0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x10009f09
push 0x1004c670
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x210]
push ecx
call fcn.100095d0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x10009f09
cmp dword [ebx + 0x24], eax
je 0x10009b74
mov edx, dword [ebp - 0x220]
push edx
call dword [0x100560ec]
mov eax, dword [ebp - 0x22c]
add esp, 4
call fcn.1000a130
mov edi, eax
mov dword [ebp - 0x220], edi
test edi, edi
je 0x10009ed6
push edi
push str._r_nContent_Type:_multipart_mixed__boundary_s_r_n
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x210]
push ecx
call fcn.100095d0
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x10009f0f
mov edi, ebx
mov dword [ebp - 0x224], edi
lea esp, [esp]
cmp dword [ebx + 0x24], 0
je 0x10009bc4
mov edx, dword [ebp - 0x220]
push edx
push str._r_n___s_r_nContent_Disposition:_attachment
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x210]
push ecx
call fcn.100095d0
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x10009f09
lea edx, [ebp - 0x21c]
lea eax, [ebp - 0x210]
push edx
push eax
mov eax, edi
jmp 0x10009be5
mov eax, dword [ebx + 0x28]
test al, 0x51
je 0x10009bf7
cmp dword [ebx + 0x2c], 0
jne 0x10009bd5
test al, 1
je 0x10009bef
lea ecx, [ebp - 0x21c]
push ecx
lea edx, [ebp - 0x210]
push edx
mov eax, ebx
call fcn.100098b0
mov esi, eax
add esp, 8
test esi, esi
jne 0x10009f09
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x10009c24
push eax
push str._r_nContent_Type:__s
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x210]
push ecx
call fcn.100095d0
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x10009f09
mov edi, dword [edi + 0x20]
test edi, edi
je 0x10009c61
jmp 0x10009c30
mov edx, dword [edi]
push edx
push str._r_n_s
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x210]
push ecx
call fcn.100095d0
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x10009f09
mov edi, dword [edi + 4]
test edi, edi
jne 0x10009c30
jmp 0x10009c69
test esi, esi
jne 0x10009f09
push str._r_n_r_n
lea edx, [ebp - 0x21c]
push edx
lea eax, [ebp - 0x210]
push eax
call fcn.100095d0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x10009f09
mov eax, dword [ebx + 0x28]
test al, 3
jne 0x10009d31
test al, 0x10
je 0x10009cc5
mov eax, dword [ebx + 0x18]
cdq
lea ecx, [ebp - 0x21c]
push ecx
mov ecx, dword [ebx + 0x14]
push edx
push eax
lea edx, [ebp - 0x210]
push 2
push edx
call fcn.100093c0
add esp, 0x14
mov esi, eax
jmp 0x10009e76
test al, 0x40
je 0x10009cfd
test al, al
jns 0x10009cd5
mov eax, dword [ebx + 0x38]
mov edx, dword [ebx + 0x3c]
jmp 0x10009cd9
mov eax, dword [ebx + 0x10]
cdq
lea ecx, [ebp - 0x21c]
push ecx
mov ecx, dword [ebx + 0x30]
push edx
push eax
lea edx, [ebp - 0x210]
push 3
push edx
call fcn.100093c0
add esp, 0x14
mov esi, eax
jmp 0x10009e76
test al, al
jns 0x10009d09
mov eax, dword [ebx + 0x38]
mov edx, dword [ebx + 0x3c]
jmp 0x10009d0d
mov eax, dword [ebx + 0x10]
cdq
lea ecx, [ebp - 0x21c]
push ecx
mov ecx, dword [ebx + 0xc]
push edx
push eax
lea edx, [ebp - 0x210]
push 2
push edx
call fcn.100093c0
add esp, 0x14
mov esi, eax
jmp 0x10009e76
mov eax, dword [ebp - 0x224]
mov edi, dword [eax + 0xc]
mov ecx, edi
mov eax, 0x1004c0dc
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10009d61
test dl, dl
je 0x10009d5d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10009d61
add eax, 2
add ecx, 2
test dl, dl
jne 0x10009d41
xor eax, eax
jmp 0x10009d66
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10009d71
call fcn.10036bb0
jmp 0x10009d7f
push 0x1004c6f0
push edi
call fcn.10037032
add esp, 8
mov edi, eax
test edi, edi
je 0x10009e43
call fcn.10036bb0
push edi
cmp edi, eax
je 0x10009dc7
call fcn.100370b6
mov eax, dword [ebp - 0x224]
add esp, 4
lea ecx, [ebp - 0x21c]
push ecx
mov ecx, dword [eax + 0xc]
push 0
push 0
lea edx, [ebp - 0x210]
push 4
push edx
call fcn.100093c0
add esp, 0x14
mov esi, eax
jmp 0x10009e76
push 0x200
lea ecx, [ebp - 0x20c]
push 1
push ecx
call fcn.1003898b
add esp, 0x10
test eax, eax
je 0x10009e76
lea edx, [ebp - 0x21c]
push edx
push 0
push eax
lea eax, [ebp - 0x210]
push 2
push eax
lea ecx, [ebp - 0x20c]
call fcn.100093c0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x10009e76
push edi
call fcn.100381cd
add esp, 4
test eax, eax
jne 0x10009e76
push edi
call fcn.100381f5
add esp, 4
test eax, eax
jne 0x10009e76
push edi
push 0x200
lea ecx, [ebp - 0x20c]
push 1
push ecx
call fcn.1003898b
add esp, 0x10
test eax, eax
jne 0x10009de5
jmp 0x10009e76
mov eax, dword [ebp - 0x22c]
test eax, eax
je 0x10009e65
mov edx, dword [ebp - 0x224]
mov ecx, dword [edx + 0xc]
push ecx
push str.couldnt_open_file___s_
push eax
call fcn.10022ce0
add esp, 0xc
mov edx, dword [ebp - 0x234]
mov dword [edx], 0
mov esi, 0x1a
mov eax, dword [ebp - 0x224]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x224], eax
test eax, eax
je 0x10009e94
test esi, esi
jne 0x10009f09
mov edi, eax
jmp 0x10009b80
test esi, esi
jne 0x10009f09
cmp dword [ebx + 0x24], esi
je 0x10009ec5
mov ecx, dword [ebp - 0x220]
push ecx
push str._r_n___s__
lea edx, [ebp - 0x21c]
push edx
lea eax, [ebp - 0x210]
push eax
call fcn.100095d0
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x10009f09
mov ebx, dword [ebx]
test ebx, ebx
je 0x10009edd
mov edi, dword [ebp - 0x21c]
jmp 0x10009a50
mov esi, 0x1b
jmp 0x10009f0f
test esi, esi
jne 0x10009f09
mov ecx, dword [ebp - 0x228]
push ecx
push str._r_n___s___r_n
lea edx, [ebp - 0x21c]
push edx
lea eax, [ebp - 0x210]
push eax
call fcn.100095d0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x10009f4b
mov edi, dword [ebp - 0x220]
lea ecx, [ebp - 0x230]
push ecx
call fcn.10009630
add esp, 4
push edi
call dword [0x100560ec]
mov edx, dword [ebp - 0x228]
add esp, 4
push edx
call dword [0x100560ec]
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.10035d36
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x238]
mov ecx, dword [ebp - 0x21c]
mov edx, dword [ebp - 0x218]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x220]
push eax
call dword [0x100560ec]
mov ecx, dword [ebp - 0x228]
add esp, 4
push ecx
call dword [0x100560ec]
mov edx, dword [ebp - 0x230]
mov eax, dword [ebp - 0x234]
add esp, 4
mov dword [eax], edx
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.10035d36
mov esp, ebp
pop ebp
ret