Function at 0x544150
Capabilities:
Check http status code
Check if file exists
Get file attributes
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x7f4
cmp dword [ebp + 0x24], 0
mov eax, dword [ebp + 0x28]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
sete byte [esp + 0x1a]
test eax, eax
push edi
je 0x544182
mov ecx, dword [eax]
test ecx, ecx
je 0x544182
mov byte [ecx], 0
mov dword [eax + 4], 0
mov eax, dword [ebx]
mov edx, dword [eax + 0x2c]
mov ecx, ebx
call edx
fldz
mov eax, dword [ebx]
mov edx, dword [eax + 0x24]
sub esp, 8
mov ecx, ebx
fstp qword [esp]
call edx
mov eax, dword [ebp + 0x14]
lea ecx, [esp + 0x20]
push ecx
lea edi, [esp + 0x6fc]
mov dword [esp + 0x24], eax
call fcn.00558ad0
mov edx, edi
push str.HTTPS
push edx
call fcn.006adcb9
mov esi, dword [esp + 0x28]
add esp, 8
mov edi, eax
neg edi
sbb edi, edi
lea eax, [esp + 0x5f0]
and edi, 0xfffffe95
push eax
add edi, 0x1bb
push 0x706ad8
cmp edi, 0x1bb
push esi
sete byte [esp + 0x2b]
call fcn.0057d450
add esi, eax
cmp byte [esi], 0x3a
mov dword [esp + 0x20], esi
jne 0x544233
cmp byte [esi], 0
je 0x54420b
add esi, 1
lea ecx, [esp + 0x2e0]
push ecx
push esi
mov dl, 0x2f
call fcn.0057d530
lea edx, [esp + 0x2e0]
add esi, eax
push edx
mov dword [esp + 0x24], esi
call fcn.0069e33e
add esp, 4
mov edi, eax
lea esi, [esp + 0x80]
call fcn.0054d5b0
push 0x104
lea eax, [esp + 0x2e4]
push eax
push 0xffffffffffffffff
lea ecx, [esp + 0x5fc]
push ecx
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0x9c40
push edi
lea edx, [esp + 0x2e8]
push edx
push ebx
lea eax, [esp + 0x50]
push eax
mov eax, esi
mov word [esp + 0x4fa], 0
call fcn.00499c30
mov eax, dword [esp + 0x40]
test eax, eax
je 0x5442ef
mov esi, dword [ebp + 8]
mov dword [esi], eax
lea eax, [esp + 0x80]
call fcn.0054d640
mov ecx, dword [esp + 0xc0]
push ecx
call fcn.0069c8fa
mov eax, dword [esp + 0xa4]
add esp, 4
cmp eax, 0xffffffff
je 0x5442c4
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov edx, dword [esp + 0x90]
push edx
call fcn.0069c8fa
mov eax, dword [esp + 0x84]
add esp, 4
push eax
call fcn.0069c8fa
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x28
cmp byte [esp + 0x1f], 0
je 0x544326
lea esi, [esp + 0x80]
call fcn.0054dcc0
test al, al
jne 0x544326
mov edi, dword [ebp + 8]
lea esi, [esp + 0x80]
mov dword [edi], 2
call fcn.00499ba0
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x28
mov edx, dword [ebx]
fld qword [0x723640]
mov eax, dword [edx + 0x24]
sub esp, 8
mov ecx, ebx
fstp qword [esp]
call eax
cmp byte [esp + 0x1e], 0
je 0x544362
mov esi, dword [ebp + 0x20]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x544306
mov eax, esi
call fcn.00401cc0
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x544374
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 4]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], 0
mov eax, dword [ebp + 0x10]
mov edi, str.POST
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
mov byte [esp + 0x4e8], 0
je 0x5443a3
mov esi, eax
mov edi, 0x6e9ec8
mov ecx, 4
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x5443c2
mov ecx, dword [ebp + 0x2c]
cmp byte [ecx], 0
je 0x5443c2
mov edx, ecx
push edx
push str.Content_Type:__s_r_n
lea eax, [esp + 0x4f0]
call fcn.00553f00
add esp, 8
push 0x1000
call fcn.0069c0de
xor esi, esi
add esp, 4
cmp eax, esi
mov dword [esp + 0x4c], eax
jne 0x5443df
mov dword [esp + 0x54], esi
jmp 0x5443ea
mov byte [eax], 0
mov dword [esp + 0x54], 0x1000
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
cmp ecx, esi
mov dword [esp + 0x50], esi
je 0x5443fc
cmp byte [ecx], 0
jne 0x544403
mov edi, 0x6bc0ce
jmp 0x544408
mov edi, 0x6ce230
mov edx, dword [ebp + 0x1c]
mov eax, dword [edx]
cmp eax, esi
je 0x544416
cmp byte [eax], 0
jne 0x54441d
mov edx, 0x6bc0ce
jmp 0x544422
mov edx, 0x6ce230
cmp ecx, esi
jne 0x54442b
mov ecx, 0x6bc0ce
cmp eax, esi
jne 0x544434
mov eax, 0x6bc0ce
push edi
mov edi, dword [esp + 0x3c]
push ecx
push edi
lea ecx, [esp + 0x4f4]
push ecx
mov ecx, dword [ebp + 0x10]
push edx
push eax
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x608]
push edx
push eax
push ecx
push str._s__s_HTTP_1.1_r_nHost:__s_r_n_s_s_sContent_Length:__d_r_n_r_n_s_s
lea eax, [esp + 0x74]
call fcn.00552e70
mov eax, dword [esp + 0x74]
add esp, 0x28
cmp eax, esi
jne 0x544474
mov eax, 0x6bc0ce
push 0x9c40
push eax
mov eax, dword [esp + 0x58]
push ebx
lea edx, [esp + 0x40]
push edx
lea ecx, [esp + 0x90]
call fcn.0054d6a0
mov eax, dword [esp + 0x34]
cmp eax, esi
mov dword [esp + 0x40], eax
je 0x5444c5
mov edi, dword [ebp + 8]
mov dword [edi], eax
mov eax, dword [esp + 0x4c]
push eax
call fcn.0069c8fa
add esp, 4
lea esi, [esp + 0x80]
call fcn.00499ba0
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x28
fld qword [0x723610]
mov edx, dword [ebx]
mov eax, dword [edx + 0x24]
fst qword [esp + 0x70]
sub esp, 8
mov ecx, ebx
fstp qword [esp]
call eax
push 0x8000
call fcn.0069c0de
mov edx, dword [esp + 0x40]
mov dword [esp + 0x48], eax
mov eax, edx
mov ecx, edx
and eax, 0x7fffffff
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], eax
fild qword [esp + 0x5c]
and ecx, 0x80000000
mov dword [esp + 0x60], ecx
mov dword [esp + 0x5c], esi
fild qword [esp + 0x5c]
add esp, 4
cmp byte [esp + 0x1e], 0
fchs
mov dword [esp + 0x60], edi
faddp st(1)
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], esi
fmul qword [0x723c10]
mov dword [esp + 0x24], 0xffffffff
fadd qword [0x723600]
fdivr qword [0x723c08]
fstp qword [esp + 0x78]
je 0x5445c3
mov ecx, dword [ebp + 0x20]
push 0x3e8
push ecx
lea esi, [esp + 0x2c]
call fcn.00402140
test al, al
jne 0x5445b3
mov eax, dword [esp + 0x24]
cmp eax, 0xffffffff
mov edi, dword [ebp + 8]
mov dword [edi], 2
je 0x544582
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [esp + 0x44]
push edx
call fcn.0069c8fa
mov eax, dword [esp + 0x50]
add esp, 4
push eax
call fcn.0069c8fa
add esp, 4
lea esi, [esp + 0x80]
call fcn.00499ba0
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x28
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x20], ecx
xor esi, esi
jmp 0x5445d8
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
cmp eax, esi
mov dword [esp + 0x20], eax
jne 0x5445d8
mov dword [esp + 0x20], 0x6bc0ce
cmp edx, esi
ja 0x5445e4
cmp edi, esi
jbe 0x544732
cmp dword [esp + 0x64], 0
jb 0x544600
ja 0x5445f7
cmp dword [esp + 0x60], 0x8000
jbe 0x544600
mov esi, 0x8000
xor edi, edi
jmp 0x544608
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
cmp byte [esp + 0x1e], 0
je 0x544631
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
push 0
lea ecx, [esp + 0x38]
push ecx
push esi
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [esp + 0x34], esi
jne 0x544771
mov ecx, dword [esp + 0x20]
push 0x1d4c0
push ecx
push ebx
lea edx, [esp + 0x64]
push edx
mov eax, esi
lea ecx, [esp + 0x90]
call fcn.0054d6a0
mov eax, dword [esp + 0x58]
test eax, eax
mov dword [esp + 0x40], eax
jne 0x544732
cmp byte [esp + 0x1e], al
jne 0x544669
add dword [esp + 0x20], esi
sub dword [esp + 0x60], esi
fld qword [esp + 0x78]
fadd qword [esp + 0x70]
mov eax, dword [ebx]
mov edx, dword [eax + 0x24]
sbb dword [esp + 0x64], edi
sub esp, 8
fst qword [esp + 0x78]
mov ecx, ebx
fstp qword [esp]
call edx
cmp byte [esp + 0x1e], 0
je 0x54471a
add dword [esp + 0x68], esi
adc dword [esp + 0x6c], edi
cmp dword [esp + 0x3c], 0
ja 0x5446b0
cmp dword [esp + 0x38], 0x10000
jbe 0x5446e8
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x68]
shrd eax, ecx, 0xa
shr ecx, 0xa
push ecx
push eax
mov eax, dword [esp + 0x74]
shrd edx, eax, 0xa
shr eax, 0xa
push eax
push edx
push str.Uploading_File...___llu_of__llu_KB_
lea edx, [esp + 0x2f4]
call fcn.00401000
add esp, 0x14
jmp 0x544707
xor eax, eax
lea ebx, [ebx]
movzx ecx, word [eax + str.Uploading_File...]
mov word [esp + eax + 0x2e0], cx
add eax, 2
test cx, cx
jne 0x5446f0
mov edx, dword [ebx]
mov edx, dword [edx + 0x20]
push 1
lea eax, [esp + 0x2e4]
push eax
mov ecx, ebx
call edx
cmp dword [esp + 0x64], 0
ja 0x5445f7
jb 0x544732
cmp dword [esp + 0x60], 0
ja 0x5445e4
cmp byte [esp + 0x1e], 0
je 0x544742
lea esi, [esp + 0x24]
call fcn.0068cf60
mov eax, dword [esp + 0x40]
test eax, eax
je 0x5447aa
mov edi, dword [ebp + 8]
mov dword [edi], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xffffffff
je 0x54475f
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [esp + 0x44]
push edx
call fcn.0069c8fa
add esp, 4
jmp 0x5444a1
lea esi, [esp + 0x24]
call fcn.0068cf60
mov eax, dword [esp + 0x24]
cmp eax, 0xffffffff
mov edi, dword [ebp + 8]
mov dword [edi], 2
je 0x544793
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x44]
push eax
call fcn.0069c8fa
mov ecx, dword [esp + 0x50]
add esp, 4
push ecx
jmp 0x5444a6
lea ecx, [esp + 0x80]
push ecx
xor esi, esi
push ebx
lea edx, [esp + 0x40]
push edx
mov edi, 0x124f80
lea eax, [esp + 0x34]
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
call fcn.00499e50
mov eax, dword [eax]
cmp eax, esi
mov dword [esp + 0x40], eax
jne 0x544984
mov eax, dword [esp + 0x28]
cmp eax, esi
mov esi, eax
jne 0x5447f1
mov esi, 0x6bc0ce
call fcn.00542470
cmp eax, 0xc8
jl 0x544804
cmp eax, 0x12c
jl 0x54480c
mov dword [esp + 0x40], 2
cmp dword [ebp + 0x28], 0
je 0x544980
mov byte [esp + 0x1e], 0
mov dword [esp + 0x20], 0
mov byte [esp + 0x1f], 0
jmp 0x544830
lea edx, [esp + 0x80]
push edx
push ebx
lea eax, [esp + 0x60]
push eax
mov edi, 0x9c40
lea eax, [esp + 0x34]
call fcn.00499e50
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x544984
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x544865
mov eax, 0x6bc0ce
push 0x10
push str.Content_Length:
push eax
call fcn.006addf9
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x28]
jne 0x54489d
test eax, eax
jne 0x544886
mov eax, 0x6bc0ce
add eax, 0x10
push eax
call fcn.0069e33e
add esp, 4
mov dword [esp + 0x20], eax
mov byte [esp + 0x1e], 1
jmp 0x5448e3
test eax, eax
jne 0x5448a6
mov eax, 0x6bc0ce
push 0x13
push str.Transfer_Encoding:
push eax
call fcn.006addf9
add esp, 0xc
test eax, eax
jne 0x5448e3
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x5448c7
mov eax, 0x6bc0ce
push 7
add eax, 0x13
push str.chunked
push eax
call fcn.006addf9
add esp, 0xc
test eax, eax
jne 0x5448e3
mov byte [esp + 0x1f], 1
mov eax, dword [esp + 0x28]
test eax, eax
je 0x5448f4
cmp byte [eax], 0
jne 0x544830
cmp byte [esp + 0x1e], 0
je 0x5449d8
mov edi, dword [esp + 0x20]
mov esi, dword [ebp + 0x28]
lea edx, [edi + 1]
push edx
call fcn.00552ef0
test edi, edi
jbe 0x544974
lea eax, [esp + 0x80]
push eax
push ebx
lea ecx, [esp + 0x60]
push ecx
mov ebx, esi
mov ecx, dword [ebx]
mov eax, 0xea60
call fcn.00499da0
mov esi, dword [esp + 0x58]
test esi, esi
je 0x544976
mov ecx, ebx
call fcn.00552e50
mov edx, dword [ebp + 8]
mov dword [edx], esi
mov eax, dword [esp + 0x28]
push eax
call fcn.0069c8fa
mov eax, dword [esp + 0x28]
add esp, 4
cmp eax, 0xffffffff
je 0x544960
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0069c8fa
mov edx, dword [esp + 0x50]
add esp, 4
push edx
jmp 0x5449b8
mov ebx, esi
mov eax, dword [ebx]
mov ecx, dword [esp + 0x20]
mov byte [ecx + eax], 0
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x28]
mov ecx, dword [ebp + 8]
push edx
mov dword [ecx], eax
call fcn.0069c8fa
mov eax, dword [esp + 0x28]
add esp, 4
cmp eax, 0xffffffff
je 0x5449a6
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x44]
push eax
call fcn.0069c8fa
mov ecx, dword [esp + 0x50]
add esp, 4
push ecx
call fcn.0069c8fa
add esp, 4
lea esi, [esp + 0x80]
call fcn.00499ba0
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x28
cmp byte [esp + 0x1f], 0
je 0x544bd0
lea edx, [esp + 0x80]
push edx
push ebx
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x34]
call fcn.00499e50
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x544b10
mov eax, dword [esp + 0x28]
test eax, eax
mov dword [esp + 0x20], 0
jne 0x544a1b
mov eax, 0x6bc0ce
lea ecx, [esp + 0x20]
push ecx
push 0x706cf8
push eax
call fcn.0069e906
add esp, 0xc
cmp eax, 1
jne 0x544b78
mov eax, dword [esp + 0x20]
test eax, eax
sete byte [esp + 0x1f]
test eax, eax
jbe 0x544ab6
jmp 0x544a50
cmp eax, 0x1000
mov edi, 0x1000
ja 0x544a5e
mov edi, eax
push edi
lea esi, [esp + 0x2c]
call fcn.00552ef0
mov edx, dword [esp + 0x28]
push 0x9c40
push edx
lea eax, [esp + 0x88]
push eax
push ebx
lea ecx, [esp + 0x48]
push ecx
lea esi, [esp + 0x6c]
mov dword [esp + 0x6c], 0
call fcn.0054e330
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x544bb5
mov edx, dword [esp + 0x28]
mov eax, dword [ebp + 0x28]
push edx
call fcn.00552d30
mov eax, dword [esp + 0x20]
sub eax, edi
mov dword [esp + 0x20], eax
jne 0x544a50
cmp byte [esp + 0x1f], 0
jne 0x544b1a
lea eax, [esp + 0x80]
push eax
push ebx
lea ecx, [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x34]
mov eax, 0x9c40
mov edi, 2
call fcn.00499da0
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x34], eax
jne 0x544b10
lea edx, [esp + 0x80]
push edx
push ebx
lea eax, [esp + 0x3c]
push eax
mov edi, 0x9c40
lea eax, [esp + 0x34]
call fcn.00499e50
mov eax, dword [esp + 0x34]
test eax, eax
je 0x544a06
mov edx, dword [ebp + 8]
mov dword [edx], eax
jmp 0x544943
lea ecx, [esp + 0x80]
push ecx
push ebx
lea edx, [esp + 0x40]
push edx
mov edi, 0x9c40
lea eax, [esp + 0x34]
call fcn.00499e50
mov eax, dword [eax]
test eax, eax
jne 0x544984
lea eax, [esp + 0x28]
call fcn.00552c00
test al, al
jne 0x544980
lea eax, [esp + 0x80]
push eax
push ebx
lea ecx, [esp + 0x40]
push ecx
mov edi, 0x9c40
lea eax, [esp + 0x34]
call fcn.00499e50
mov eax, dword [eax]
test eax, eax
je 0x544b40
jmp 0x544984
mov ecx, dword [esp + 0x28]
mov eax, dword [ebp + 8]
push ecx
mov dword [eax], 2
call fcn.0069c8fa
mov eax, dword [esp + 0x28]
add esp, 4
cmp eax, 0xffffffff
je 0x544b9e
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [esp + 0x44]
push edx
call fcn.0069c8fa
mov eax, dword [esp + 0x50]
add esp, 4
push eax
jmp 0x5449b8
mov ecx, dword [esp + 0x28]
mov edi, dword [ebp + 8]
push ecx
mov dword [edi], eax
call fcn.0069c8fa
add esp, 4
jmp 0x54474f
lea eax, [esp + 0x80]
push eax
push ebx
lea ecx, [esp + 0x40]
push ecx
mov edi, 0x9c40
lea eax, [esp + 0x34]
call fcn.00499e50
cmp dword [esp + 0x38], 1
je 0x544c0f
mov eax, dword [ebp + 0x28]
lea edi, [esp + 0x28]
call fcn.00552df0
mov eax, edi
call fcn.00552c00
test al, al
je 0x544bd0
jmp 0x544980
mov ecx, dword [ebp + 0x28]
call fcn.00552e50
mov edx, dword [ebp + 8]
mov dword [edx], 1
jmp 0x544943