Function at 0x46e140
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x264
mov eax, dword [0x526a28]
xor eax, esp
mov dword [esp + 0x260], eax
mov eax, dword [esp + 0x26c]
mov ecx, dword [esp + 0x268]
mov edx, dword [esp + 0x274]
push esi
mov esi, dword [esp + 0x274]
push edi
xor edi, edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x24], edi
mov dword [ecx], edi
cmp eax, edi
jne 0x46e1af
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x260]
xor ecx, esp
call fcn.00431c7a
add esp, 0x264
ret
push ebp
call fcn.0046e0d0
mov ebp, eax
mov dword [esp + 0x18], ebp
cmp ebp, edi
jne 0x46e1dc
pop ebp
pop edi
mov eax, 0x1b
pop esi
mov ecx, dword [esp + 0x260]
xor ecx, esp
call fcn.00431c7a
add esp, 0x264
ret
cmp esi, edi
jne 0x46e1e5
mov esi, str.Content_Type:_multipart_form_data
push ebx
push ebp
push esi
lea eax, [esp + 0x18]
push str._s__boundary_s_r_n
push eax
xor ebx, ebx
call fcn.0046dd70
mov esi, eax
add esp, 0x10
test esi, esi
je 0x46e213
push ebp
call dword [0x527c20]
add esp, 4
mov eax, esi
jmp 0x46e83d
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x24], ecx
jmp 0x46e220
or edi, dword [esp + 0x18]
je 0x46e24a
lea edx, [esp + 0x10]
push 0x5192cc
push edx
lea ebx, [esp + 0x1c]
call fcn.0046dd70
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x46e797
mov ebp, dword [esp + 0x1c]
push ebp
lea eax, [esp + 0x14]
push str.___s_r_n
push eax
lea ebx, [esp + 0x20]
call fcn.0046dd70
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x46e797
lea ecx, [esp + 0x10]
push str.Content_Disposition:_form_data__name_
push ecx
lea ebx, [esp + 0x1c]
call fcn.0046dd70
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x46e797
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.0046dc70
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x46e797
lea ecx, [esp + 0x10]
push 0x4f188c
push ecx
lea ebx, [esp + 0x1c]
call fcn.0046dd70
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x46e797
mov edx, dword [esp + 0x20]
cmp dword [edx + 0x24], eax
je 0x46e305
call fcn.0046e0d0
push eax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x14]
push str._r_nContent_Type:_multipart_mixed__boundary_s_r_n
push eax
lea ebx, [esp + 0x20]
call fcn.0046dd70
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x46e797
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], ecx
lea ecx, [ecx]
mov edi, dword [esp + 0x20]
cmp dword [edi + 0x24], 0
je 0x46e3e9
mov ebp, dword [esp + 0x28]
xor esi, esi
cmp dword [ebp + 0x2c], esi
jne 0x46e394
mov eax, dword [ebp + 0xc]
push eax
call dword [0x527c28]
mov esi, eax
add esp, 4
test esi, esi
je 0x46e778
push 0x2f
push esi
mov ebx, esi
call fcn.00448520
push 0x5c
push esi
mov edi, eax
call fcn.00448520
add esp, 0x10
test edi, edi
je 0x46e36c
test eax, eax
je 0x46e367
cmp edi, eax
jbe 0x46e370
mov eax, edi
jmp 0x46e370
lea ebx, [edi + 1]
jmp 0x46e373
test eax, eax
je 0x46e373
lea ebx, [eax + 1]
push ebx
call dword [0x527c28]
push esi
mov edi, eax
call dword [0x527c20]
add esp, 8
mov esi, edi
test edi, edi
je 0x46e778
mov edi, dword [esp + 0x20]
mov eax, dword [ebp + 0x2c]
test eax, eax
jne 0x46e39d
mov eax, esi
mov edx, dword [esp + 0x2c]
push eax
push edx
lea eax, [esp + 0x18]
push str._r_n___s_r_nContent_Disposition:_attachment__filename__s_
push eax
lea ebx, [esp + 0x24]
call fcn.0046dd70
add esp, 0x10
mov ebx, eax
test esi, esi
je 0x46e3c9
push esi
call dword [0x527c20]
add esp, 4
test ebx, ebx
je 0x46e43b
lea ecx, [esp + 0x24]
push ecx
call fcn.0046de80
mov edx, dword [esp + 0x20]
push edx
call dword [0x527c20]
mov eax, ebx
jmp 0x46e83a
test byte [edi + 0x28], 0x51
je 0x46e437
cmp dword [edi + 0x2c], 0
jne 0x46e401
mov eax, dword [edi + 0xc]
call fcn.0046dec0
mov esi, eax
jmp 0x46e403
xor esi, esi
mov eax, dword [edi + 0x2c]
test eax, eax
jne 0x46e40c
mov eax, esi
push eax
lea ecx, [esp + 0x14]
push str.__filename__s_
push ecx
lea ebx, [esp + 0x20]
call fcn.0046dd70
add esp, 0xc
mov ebx, eax
test esi, esi
je 0x46e433
push esi
call dword [0x527c20]
add esp, 4
test ebx, ebx
jne 0x46e3cd
mov ebp, dword [esp + 0x28]
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x46e463
push eax
lea edx, [esp + 0x14]
push str._r_nContent_Type:__s
push edx
lea ebx, [esp + 0x20]
call fcn.0046dd70
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x46e3cd
mov esi, dword [ebp + 0x20]
test esi, esi
je 0x46e49c
lea ebx, [ebx]
mov eax, dword [esi]
push eax
lea ecx, [esp + 0x14]
push str._r_n_s
push ecx
lea ebx, [esp + 0x20]
call fcn.0046dd70
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x46e797
mov esi, dword [esi + 4]
test esi, esi
jne 0x46e470
jmp 0x46e4a4
test ebx, ebx
jne 0x46e797
lea edx, [esp + 0x10]
push str._r_n_r_n
push edx
lea ebx, [esp + 0x1c]
call fcn.0046dd70
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x46e3cd
mov eax, dword [edi + 0x28]
test al, 3
jne 0x46e55a
test al, 0x10
je 0x46e4fc
mov ebx, dword [edi + 0x14]
lea eax, [esp + 0x14]
push eax
mov eax, dword [edi + 0x18]
push 1
lea ecx, [esp + 0x18]
push ecx
call fcn.0046dc70
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x46e3cd
jmp 0x46e6ea
test al, 0x40
je 0x46e546
mov eax, dword [esp + 0x20]
mov edi, dword [eax + 0x10]
mov esi, dword [eax + 0x30]
push 0x10
call dword [0x527c1c]
xor ebx, ebx
add esp, 4
cmp eax, ebx
je 0x46e745
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 0x46e539
mov dword [ecx], eax
add dword [esp + 0x14], edi
adc dword [esp + 0x18], ebx
jmp 0x46e6ea
mov ebx, dword [edi + 0xc]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x14]
push 1
push eax
mov eax, dword [edi + 0x10]
jmp 0x46e4e5
mov ecx, dword [ebp + 0xc]
push ecx
push 0x4e7d8c
call fcn.00469ca0
add esp, 8
test eax, eax
je 0x46e576
call fcn.00439984
jmp 0x46e58b
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0xc]
push 0x4f17b4
push eax
call fcn.00470a4d
add esp, 8
mov ebp, eax
test ebp, ebp
je 0x46e816
call fcn.00439984
push ebp
cmp ebp, eax
je 0x46e623
call fcn.00436b57
mov ecx, dword [esp + 0x2c]
mov edi, dword [ecx + 0xc]
push 0x10
call dword [0x527c1c]
mov esi, eax
add esp, 8
test esi, esi
je 0x46e759
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 0x46e5e2
mov dword [eax], esi
mov edx, dword [esi + 8]
push edx
push 0x4e7d8c
call fcn.00469ca0
add esp, 8
test eax, eax
jne 0x46e61c
mov ecx, dword [esi + 8]
lea eax, [esp + 0x38]
push eax
push ecx
call fcn.004713f1
add esp, 8
test eax, eax
jne 0x46e61c
mov edx, dword [esp + 0x50]
add dword [esp + 0x14], edx
mov eax, dword [esp + 0x54]
adc dword [esp + 0x18], eax
xor ebx, ebx
jmp 0x46e6ea
push 0x200
lea ecx, [esp + 0x78]
push 1
push ecx
call fcn.00436f88
mov edi, eax
add esp, 0x10
test edi, edi
je 0x46e6ea
xor ebx, ebx
push 0x10
call dword [0x527c1c]
mov esi, eax
add esp, 4
test esi, esi
je 0x46e759
mov dword [esi], 0
test edi, edi
jne 0x46e679
lea edi, [esp + 0x70]
lea ecx, [edi + 1]
lea esp, [esp]
mov al, byte [edi]
inc edi
test al, al
jne 0x46e670
sub edi, ecx
lea edx, [edi + 1]
push edx
call dword [0x527c1c]
add esp, 4
mov dword [esi + 8], eax
test eax, eax
je 0x46e74f
push edi
lea ecx, [esp + 0x74]
push ecx
push eax
call fcn.0043ab90
mov edx, dword [esi + 8]
add esp, 0xc
cmp dword [esp + 0x10], 0
mov dword [esi + 0xc], edi
mov byte [edi + edx], 0
mov dword [esi + 4], 1
je 0x46e6be
mov eax, dword [esp + 0x10]
mov dword [eax], esi
add dword [esp + 0x14], edi
push ebp
push 0x200
adc dword [esp + 0x20], 0
lea ecx, [esp + 0x78]
push 1
push ecx
mov dword [esp + 0x20], esi
call fcn.00436f88
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x46e643
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x24]
mov dword [esp + 0x28], eax
test eax, eax
jne 0x46e310
mov edi, dword [esp + 0x20]
cmp dword [edi + 0x24], eax
je 0x46e72e
mov esi, dword [esp + 0x2c]
push esi
lea eax, [esp + 0x14]
push str._r_n___s__
push eax
lea ebx, [esp + 0x20]
call fcn.0046dd70
push esi
mov ebx, eax
call dword [0x527c20]
add esp, 0x10
test ebx, ebx
jne 0x46e797
mov eax, dword [edi]
mov dword [esp + 0x20], eax
test eax, eax
je 0x46e7b3
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
jmp 0x46e220
mov ebx, 0x1b
jmp 0x46e3cd
push esi
call dword [0x527c20]
add esp, 4
lea edx, [esp + 0x24]
push edx
call fcn.0046de80
mov eax, dword [esp + 0x20]
push eax
call dword [0x527c20]
mov eax, 0x1b
jmp 0x46e83a
lea ecx, [esp + 0x24]
push ecx
call fcn.0046de80
mov edx, dword [esp + 0x20]
push edx
call dword [0x527c20]
mov eax, 0x1b
jmp 0x46e83a
lea eax, [esp + 0x24]
push eax
call fcn.0046de80
mov ecx, dword [esp + 0x20]
push ecx
call dword [0x527c20]
mov eax, ebx
jmp 0x46e83a
test ebx, ebx
jne 0x46e797
mov edi, dword [esp + 0x1c]
push edi
lea edx, [esp + 0x14]
push str._r_n___s___r_n
push edx
lea ebx, [esp + 0x20]
call fcn.0046dd70
mov esi, eax
add esp, 0xc
test esi, esi
je 0x46e7ed
lea eax, [esp + 0x24]
push eax
call fcn.0046de80
push edi
call dword [0x527c20]
mov eax, esi
jmp 0x46e83a
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push edi
mov dword [eax], ecx
mov dword [eax + 4], edx
call dword [0x527c20]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
mov dword [ecx], eax
add esp, 4
mov eax, esi
jmp 0x46e83d
lea edx, [esp + 0x24]
push edx
call fcn.0046de80
mov eax, dword [esp + 0x20]
push eax
call dword [0x527c20]
mov ecx, dword [esp + 0x38]
mov dword [ecx], 0
mov eax, 0x1a
add esp, 8
mov ecx, dword [esp + 0x270]
pop ebx
pop ebp
pop edi
pop esi
xor ecx, esp
call fcn.00431c7a
add esp, 0x264
ret