Function at 0x449540
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x268
mov eax, dword [0x489ec0]
xor eax, esp
mov dword [esp + 0x264], eax
mov eax, dword [esp + 0x26c]
mov ecx, dword [esp + 0x270]
mov edx, dword [esp + 0x27c]
push esi
xor esi, esi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x278]
push edi
mov edi, dword [esp + 0x280]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], edx
mov dword [esp + 8], esi
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x24], esi
mov dword [ecx], esi
cmp eax, esi
jne 0x4495ba
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x264]
xor ecx, esp
call fcn.0044e030
add esp, 0x268
ret
push ebp
call fcn.004494d0
mov ebp, eax
mov dword [esp + 0x20], ebp
cmp ebp, esi
jne 0x4495e7
pop ebp
pop edi
mov eax, 0x1b
pop esi
mov ecx, dword [esp + 0x264]
xor ecx, esp
call fcn.0044e030
add esp, 0x268
ret
cmp edi, esi
jne 0x4495f0
mov edi, str.Content_Type:_multipart_form_data
push ebx
push ebp
push edi
lea eax, [esp + 0x18]
push str._s__boundary_s_r_n
push eax
xor ebx, ebx
call fcn.00449170
mov edi, eax
add esp, 0x10
test edi, edi
je 0x44961b
push ebp
call dword [0x489db0]
mov eax, edi
jmp 0x449c35
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], ecx
or esi, dword [esp + 0x18]
je 0x44964d
lea edx, [esp + 0x10]
push 0x477cf8
push edx
lea ebx, [esp + 0x1c]
call fcn.00449170
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x449bbc
mov ebp, dword [esp + 0x24]
push ebp
lea eax, [esp + 0x14]
push str.___s_r_n
push eax
lea ebx, [esp + 0x20]
call fcn.00449170
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x449bbc
lea ecx, [esp + 0x10]
push str.Content_Disposition:_form_data__name_
push ecx
lea ebx, [esp + 0x1c]
call fcn.00449170
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x449bbc
mov ecx, dword [esp + 0x20]
mov ebx, dword [ecx + 4]
lea edx, [esp + 0x14]
push edx
push eax
lea eax, [esp + 0x18]
push eax
mov eax, dword [ecx + 8]
call fcn.00449070
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x449bbc
lea ecx, [esp + 0x10]
push 0x47be10
push ecx
lea ebx, [esp + 0x1c]
call fcn.00449170
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x449bbc
mov esi, dword [esp + 0x20]
cmp dword [esi + 0x24], eax
je 0x449708
call fcn.004494d0
push eax
lea edx, [esp + 0x14]
push str._r_nContent_Type:_multipart_mixed__boundary_s_r_n
push edx
lea ebx, [esp + 0x20]
mov dword [esp + 0x38], eax
call fcn.00449170
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x449bbc
mov ebp, esi
mov dword [esp + 0x1c], ebp
mov edi, edi
cmp dword [esi + 0x24], 0
je 0x4497b6
xor esi, esi
cmp dword [ebp + 0x2c], esi
jne 0x449788
mov eax, dword [ebp + 0xc]
push eax
call dword [0x489db8]
mov esi, eax
add esp, 4
test esi, esi
je 0x449b58
push 0x2f
push esi
mov ebx, esi
call fcn.00452690
push 0x5c
push esi
mov edi, eax
call fcn.00452690
add esp, 0x10
test edi, edi
je 0x449764
test eax, eax
je 0x44975f
cmp edi, eax
jbe 0x449768
mov eax, edi
jmp 0x449768
lea ebx, [edi + 1]
jmp 0x44976b
test eax, eax
je 0x44976b
lea ebx, [eax + 1]
push ebx
call dword [0x489db8]
push esi
mov edi, eax
call dword [0x489db0]
add esp, 8
mov esi, edi
test edi, edi
je 0x449b58
mov eax, dword [ebp + 0x2c]
test eax, eax
jne 0x449791
mov eax, esi
push eax
mov eax, dword [esp + 0x30]
push eax
lea ecx, [esp + 0x18]
push str._r_n___s_r_nContent_Disposition:_attachment__filename__s_
push ecx
lea ebx, [esp + 0x24]
call fcn.00449170
add esp, 0x10
mov ebx, eax
test esi, esi
je 0x449800
push esi
jmp 0x4497f7
test byte [esi + 0x28], 0x51
je 0x44980c
cmp dword [esi + 0x2c], 0
jne 0x4497ce
mov eax, dword [esi + 0xc]
call fcn.004492c0
mov edi, eax
jmp 0x4497d0
xor edi, edi
mov eax, dword [esi + 0x2c]
test eax, eax
jne 0x4497d9
mov eax, edi
push eax
lea edx, [esp + 0x14]
push str.__filename__s_
push edx
lea ebx, [esp + 0x20]
call fcn.00449170
add esp, 0xc
mov ebx, eax
test edi, edi
je 0x449800
push edi
call dword [0x489db0]
add esp, 4
test ebx, ebx
jne 0x449b99
mov ebp, dword [esp + 0x1c]
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x449838
push eax
lea eax, [esp + 0x14]
push str._r_nContent_Type:__s
push eax
lea ebx, [esp + 0x20]
call fcn.00449170
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x449b99
mov ebp, dword [esp + 0x1c]
mov esi, dword [ebp + 0x20]
test esi, esi
je 0x44986c
nop
mov ecx, dword [esi]
push ecx
lea edx, [esp + 0x14]
push str._r_n_s
push edx
lea ebx, [esp + 0x20]
call fcn.00449170
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x449b7a
mov esi, dword [esi + 4]
test esi, esi
jne 0x449840
jmp 0x449874
test ebx, ebx
jne 0x449b7a
lea eax, [esp + 0x10]
push str._r_n_r_n
push eax
lea ebx, [esp + 0x1c]
call fcn.00449170
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x449b99
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x28]
test al, 3
jne 0x449935
test al, 0x10
je 0x4498c8
mov ebx, dword [ecx + 0x14]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x14]
push 1
push eax
mov eax, dword [ecx + 0x18]
call fcn.00449070
add esp, 0xc
mov ebx, eax
jmp 0x449ae6
test al, 0x40
je 0x449914
mov edi, dword [ecx + 0x10]
mov esi, dword [ecx + 0x30]
push 0x10
call dword [0x489dac]
xor ebx, ebx
add esp, 4
cmp eax, ebx
jne 0x4498ed
mov ebx, 0x1b
jmp 0x449ae6
mov ecx, dword [esp + 0x10]
mov dword [eax], ebx
mov dword [eax + 8], esi
mov dword [eax + 4], 2
mov dword [esp + 0x10], eax
cmp ecx, ebx
je 0x449907
mov dword [ecx], eax
add dword [esp + 0x14], edi
adc dword [esp + 0x18], ebx
jmp 0x449ae6
mov ebx, dword [ecx + 0xc]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x14]
push 1
push eax
mov eax, dword [ecx + 0x10]
call fcn.00449070
add esp, 0xc
mov ebx, eax
jmp 0x449ae6
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0xc]
push edx
push 0x4785a4
call fcn.004448b0
add esp, 8
test eax, eax
je 0x449955
call fcn.00451c5e
jmp 0x44996a
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0xc]
push 0x47bd1c
push ecx
call fcn.00452c4b
add esp, 8
mov ebp, eax
test ebp, ebp
je 0x449ab9
call fcn.00451c5e
push ebp
cmp ebp, eax
je 0x449a06
call fcn.0044f665
mov edx, dword [esp + 0x20]
mov edi, dword [edx + 0xc]
push 0x10
call dword [0x489dac]
mov esi, eax
add esp, 8
test esi, esi
jne 0x4499a7
lea ebx, [eax + 0x1b]
jmp 0x449ae6
mov eax, dword [esp + 0x10]
mov dword [esi], 0
mov dword [esi + 8], edi
mov dword [esi + 4], 3
mov dword [esp + 0x10], esi
test eax, eax
je 0x4499c5
mov dword [eax], esi
mov eax, dword [esi + 8]
push eax
push 0x4785a4
call fcn.004448b0
add esp, 8
test eax, eax
jne 0x4499ff
mov edx, dword [esi + 8]
lea ecx, [esp + 0x3c]
push ecx
push edx
call fcn.00453901
add esp, 8
test eax, eax
jne 0x4499ff
mov eax, dword [esp + 0x54]
add dword [esp + 0x14], eax
mov ecx, dword [esp + 0x58]
adc dword [esp + 0x18], ecx
xor ebx, ebx
jmp 0x449ae6
push 0x200
lea edx, [esp + 0x7c]
push 1
push edx
call fcn.0044fab1
mov esi, eax
add esp, 0x10
test esi, esi
je 0x449ae6
xor ebx, ebx
push 0x10
call dword [0x489dac]
mov edi, eax
add esp, 4
test edi, edi
je 0x449ab2
lea eax, [esi + 1]
push eax
mov dword [edi], 0
call dword [0x489dac]
add esp, 4
mov dword [edi + 8], eax
test eax, eax
je 0x449aa8
push esi
lea ecx, [esp + 0x78]
push ecx
push eax
call fcn.0044fdf0
mov edx, dword [edi + 8]
add esp, 0xc
cmp dword [esp + 0x10], 0
mov dword [edi + 0xc], esi
mov byte [esi + edx], 0
mov dword [edi + 4], 1
je 0x449a7e
mov eax, dword [esp + 0x10]
mov dword [eax], edi
add dword [esp + 0x14], esi
push ebp
push 0x200
adc dword [esp + 0x20], 0
lea ecx, [esp + 0x7c]
push 1
push ecx
mov dword [esp + 0x20], edi
call fcn.0044fab1
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x449a26
jmp 0x449ae6
push edi
call dword [0x489db0]
add esp, 4
mov ebx, 0x1b
jmp 0x449ae6
mov eax, dword [esp + 0x34]
test eax, eax
je 0x449ad7
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0xc]
push ecx
push str.couldnt_open_file___s__n
push eax
call fcn.00438480
add esp, 0xc
mov edx, dword [esp + 0x30]
mov dword [edx], 0
mov ebx, 0x1a
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x449b08
test ebx, ebx
jne 0x449b99
mov esi, dword [esp + 0x20]
mov ebp, eax
jmp 0x449710
test ebx, ebx
jne 0x449b99
mov edi, dword [esp + 0x20]
cmp dword [edi + 0x24], ebx
je 0x449b41
mov esi, dword [esp + 0x2c]
push esi
lea ecx, [esp + 0x14]
push str._r_n___s__
push ecx
lea ebx, [esp + 0x20]
call fcn.00449170
push esi
mov ebx, eax
call dword [0x489db0]
add esp, 0x10
test ebx, ebx
jne 0x449bbc
mov eax, dword [edi]
mov dword [esp + 0x20], eax
test eax, eax
je 0x449bb8
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
jmp 0x449623
lea edx, [esp + 0x28]
push edx
call fcn.00449280
mov eax, dword [esp + 0x28]
push eax
call dword [0x489db0]
add esp, 8
mov eax, 0x1b
jmp 0x449c38
lea ecx, [esp + 0x28]
push ecx
call fcn.00449280
mov edx, dword [esp + 0x28]
push edx
call dword [0x489db0]
add esp, 8
mov eax, ebx
jmp 0x449c38
lea eax, [esp + 0x28]
push eax
call fcn.00449280
mov ecx, dword [esp + 0x28]
push ecx
call dword [0x489db0]
add esp, 8
mov eax, ebx
jmp 0x449c38
test ebx, ebx
je 0x449bd8
lea edx, [esp + 0x28]
push edx
call fcn.00449280
mov eax, dword [esp + 0x28]
push eax
call dword [0x489db0]
add esp, 8
mov eax, ebx
jmp 0x449c38
mov edi, dword [esp + 0x24]
push edi
lea ecx, [esp + 0x14]
push str._r_n___s___r_n
push ecx
lea ebx, [esp + 0x20]
call fcn.00449170
mov esi, eax
add esp, 0xc
test esi, esi
je 0x449c11
lea edx, [esp + 0x28]
push edx
call fcn.00449280
push edi
call dword [0x489db0]
add esp, 8
mov eax, esi
jmp 0x449c38
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push edi
mov dword [eax], ecx
mov dword [eax + 4], edx
call dword [0x489db0]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
mov dword [ecx], eax
mov eax, esi
add esp, 4
mov ecx, dword [esp + 0x274]
pop ebx
pop ebp
pop edi
pop esi
xor ecx, esp
call fcn.0044e030
add esp, 0x268
ret