Function at 0x42e330
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x4430
call fcn.004307c0
mov eax, dword [0x49c33c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x4420], ecx
push esi
push edi
mov ecx, dword [ebx + 8]
xor edi, edi
mov dword [ebp - 0x4418], ebx
mov byte [ebp - 0x4411], 0
mov dword [ebp - 0x441c], edi
mov eax, dword [ecx]
call dword [eax + 0x20]
mov dword [ebx + 0x20], eax
mov ecx, ebx
call fcn.0042e1c0
lea esi, [ebp - 0x4410]
xor bl, bl
lea edi, [ebp + edi - 0x4410]
cmp esi, edi
jne 0x42e3dc
mov eax, dword [ebp - 0x4418]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x4420]
mov edx, dword [ecx]
push dword [eax + 0x1dc]
push dword [eax + 0x1d8]
mov eax, 0x3fff
sub eax, dword [ebp - 0x441c]
push eax
push 5
push edi
call dword [edx]
test eax, eax
js 0x42e9c3
cmp eax, 5
jl 0x42e602
mov edi, dword [ebp - 0x441c]
add edi, eax
mov dword [ebp - 0x441c], edi
jmp 0x42e3e2
mov edi, dword [ebp - 0x441c]
cmp edi, 0x4000
jae 0x42ea70
lea edx, [ebp - 0x4410]
add edx, edi
mov byte [edx], 0
mov al, byte [esi]
mov cl, al
test al, al
je 0x42e415
cmp bl, 0xa
jne 0x42e40a
cmp al, 0xd
je 0x42e415
inc esi
mov bl, al
mov al, byte [esi]
mov cl, al
test al, al
jne 0x42e401
test cl, cl
jne 0x42e421
cmp esi, edx
je 0x42e382
mov ebx, dword [ebp - 0x4418]
cmp cl, 0xd
jne 0x42ea06
cmp byte [esi + 1], 0xa
jne 0x42ea06
mov ah, byte [ebp - 0x4410]
lea edi, [ebp - 0x4410]
add esi, 2
mov dword [ebp - 0x4430], bind
test ah, ah
je 0x42e495
mov al, ah
nop dword [eax]
and al, 0xdf
xor ecx, ecx
cmp al, 0x43
jne 0x42e484
mov dl, 0x63
nop word [eax + eax]
test dl, dl
je 0x42e484
mov dl, byte [ecx + 0x4895e9]
inc ecx
mov al, byte [ecx + edi]
xor al, dl
test al, 0xdf
je 0x42e470
cmp byte [ecx + str.content_length:], 0
je 0x42e497
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x42e460
xor edi, edi
lea ebx, [ebp - 0x4410]
mov dword [ebp - 0x442c], ebx
test ah, ah
je 0x42e4eb
mov al, ah
nop dword [eax]
and al, 0xdf
xor ecx, ecx
cmp al, 0x43
jne 0x42e4d4
mov dl, al
nop word [eax + eax]
test dl, dl
je 0x42e4d4
mov dl, byte [ecx + 0x4895fd]
inc ecx
mov al, byte [ecx + ebx]
xor al, dl
test al, 0xdf
je 0x42e4c0
cmp byte [ecx + str.Connection:_keep_alive], 0
je 0x42e4f5
mov al, byte [ebx + 1]
inc ebx
mov dword [ebp - 0x442c], ebx
test al, al
jne 0x42e4b0
mov dword [ebp - 0x442c], 0
lea ebx, [ebp - 0x4410]
test ah, ah
je 0x42e539
nop
and ah, 0xdf
xor ecx, ecx
cmp ah, 0x48
jne 0x42e524
mov dl, 0x68
nop dword [eax]
test dl, dl
je 0x42e524
mov dl, byte [ecx + 0x489615]
inc ecx
mov al, byte [ecx + ebx]
xor al, dl
test al, 0xdf
je 0x42e510
cmp byte [ecx + str.host:], 0
je 0x42e61b
mov ah, byte [ebx + 1]
inc ebx
test ah, ah
jne 0x42e500
xor ebx, ebx
test edi, edi
je 0x42e557
lea eax, [ebp - 0x4430]
push eax
lea eax, [edi + 0xf]
push 0x49524c
push eax
call fcn.004011d0
add esp, 0xc
push 4
lea eax, [ebp - 0x4410]
push str.GET
push eax
call fcn.004615e0
add esp, 0xc
test eax, eax
lea eax, [ebp - 0x4410]
jne 0x42e871
push 0x2f
push eax
call fcn.00434ea0
mov edi, eax
add esp, 8
test edi, edi
je 0x42ea00
inc edi
cmp byte [edi], 0x2f
jne 0x42e5bf
test ebx, ebx
lea eax, [edi + 1]
push 0x2f
cmovne eax, ebx
mov ebx, eax
lea eax, [ebp - 0x4410]
push eax
call fcn.00434ea0
mov edi, eax
add esp, 8
test edi, edi
je 0x42ea00
mov byte [edi], 0
inc edi
push 0x20
push edi
call fcn.00434ea0
mov cx, word [0x48962c]
add esp, 8
movq xmm0, qword [str.index.html]
mov word [ebp - 8], cx
mov cl, byte [0x48962e]
mov dword [ebp - 0x4424], eax
movq qword [ebp - 0x10], xmm0
mov byte [ebp - 6], cl
test eax, eax
je 0x42ea00
cmp eax, edi
jne 0x42e648
lea edi, [ebp - 0x10]
jmp 0x42e64b
mov ebx, dword [ebp - 0x4418]
mov ecx, ebx
push str.HTTP_1.1_200_OK_r_nConnection:_close_r_n_r_n_HTML__HEAD__TITLE_Invalid_request_to_the_database__TITLE__r_n__HEAD__BODY__n_r_H1_200_OK__H1__n_r__BODY___HTML__r_n_r_n
call fcn.0042d8a0
mov cl, byte [esi]
jmp 0x42e427
test ebx, ebx
je 0x42e53b
mov al, byte [ebx + 6]
add ebx, 6
mov ecx, ebx
cmp al, 0xa
je 0x42e640
nop
cmp al, 0xd
je 0x42e640
test al, al
je 0x42e640
mov al, byte [ecx + 1]
inc ecx
cmp al, 0xa
jne 0x42e630
mov byte [ecx], 0
jmp 0x42e53b
mov byte [eax], 0
test ebx, ebx
mov eax, str.localhost
push 0x3f
cmovne eax, ebx
push edi
mov dword [ebp - 0x4428], eax
call fcn.00434ea0
add esp, 8
test eax, eax
je 0x42e6c7
mov ebx, dword [ebp - 0x4418]
lea ecx, [ebp - 0x4411]
push ecx
push dword [ebp - 0x4428]
mov ecx, dword [ebp - 0x4420]
inc eax
push dword [ebp - 0x4424]
push eax
push ebx
call fcn.0042df00
test al, al
jne 0x42e977
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x42e6a7
mov eax, dword [ecx]
push 1
call dword [eax + 0x28]
mov al, byte [ebp - 0x4411]
pop edi
pop esi
mov dword [ebx + 8], 0
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0042f865
mov esp, ebp
pop ebp
ret 4
mov cl, byte [edi]
mov edx, edi
mov ebx, edi
test cl, cl
je 0x42e6fc
lea edx, [edx + 1]
cmp cl, 0x25
jne 0x42e6e1
mov cl, byte [edx + 1]
sub cl, 0x30
jmp 0x42e6f3
cmp cl, 0x2b
jne 0x42e6ea
mov cl, 0x20
jmp 0x42e6f3
cmp cl, 0x2e
jne 0x42e6f3
cmp byte [edx], cl
je 0x42e6fc
mov byte [ebx], cl
inc ebx
mov cl, byte [edx]
test cl, cl
jne 0x42e6d1
push 0x489630
push edi
mov byte [ebx], 0
call fcn.0044afd5
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x42e791
lea eax, [ebp - 0x10]
mov cl, byte [edi]
cmp cl, byte [eax]
jne 0x42e736
test cl, cl
je 0x42e732
mov cl, byte [edi + 1]
cmp cl, byte [eax + 1]
jne 0x42e736
add edi, 2
add eax, 2
test cl, cl
jne 0x42e716
xor eax, eax
jmp 0x42e73b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x42e9cb
mov ecx, str.pagedefaultPage
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42e750
mov ebx, dword [ebp - 0x4418]
lea eax, [ebp - 0x4411]
push eax
push dword [ebp - 0x4428]
sub ecx, edx
lea eax, [ecx + str.pagedefaultPage]
mov ecx, dword [ebp - 0x4420]
push eax
push str.pagedefaultPage
push ebx
call fcn.0042df00
test al, al
je 0x42e699
jmp 0x42e977
push 2
push 0
push ebx
call fcn.0044bc57
push ebx
call fcn.004656c6
push 0
push 0
push ebx
mov edi, eax
call fcn.0044bc57
mov eax, dword [ebp - 0x4420]
mov ecx, str.Keep_Alive
cmp byte [eax + 0x1e0], 0
mov eax, str.close
cmove ecx, eax
lea eax, [ebp - 0x410]
push ecx
push edi
push str.HTTP_1.1_200_OK_r_nContent_Length:__u_r_nContent_Type:_text_html_r_nConnection:__s_r_n_r_n
push eax
call fcn.00406100
mov ecx, dword [ebp - 0x4418]
lea eax, [ebp - 0x410]
add esp, 0x2c
push eax
call fcn.0042d8a0
mov ecx, dword [ebp - 0x4418]
push edi
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x4424], eax
call fcn.0042dcd0
mov dword [ebp - 0x4428], eax
test eax, eax
je 0x42e9ec
mov ecx, dword [ebp - 0x4424]
push ebx
push edi
add ecx, eax
push 1
push ecx
call fcn.00464e36
add esp, 0x10
cmp eax, edi
jne 0x42e9d8
push ebx
call fcn.0044b8b1
mov ebx, dword [ebp - 0x4418]
add esp, 4
mov ecx, dword [ebx + 8]
push dword [ebx + 0x14]
push dword [ebp - 0x4428]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
test al, al
je 0x42ea2c
mov eax, dword [ebp - 0x4420]
cmp byte [eax + 0x1e0], 0
je 0x42ea2c
jmp 0x42e977
push 5
push str.POST
push eax
call fcn.004615e0
add esp, 0xc
test eax, eax
jne 0x42ea63
mov edi, dword [ebp - 0x441c]
mov edx, esi
mov dword [ebp - 0x4424], edx
nop word [eax + eax]
mov ecx, dword [ebp - 0x4430]
mov eax, edi
sub eax, esi
lea edi, [ebp - 0x4410]
add edi, eax
cmp ecx, edi
cmovl edi, ecx
sub edi, 1
js 0x42e8d6
nop dword [eax]
mov al, byte [esi]
cmp al, 0xd
je 0x42e8d2
cmp al, 0xa
je 0x42e8d2
inc esi
sub edi, 1
jns 0x42e8c0
jmp 0x42e8d6
test edi, edi
jns 0x42e935
mov eax, esi
sub eax, edx
cmp eax, ecx
je 0x42e935
mov edi, dword [ebp - 0x441c]
cmp edi, 0x3fff
jae 0x42ea56
mov eax, dword [ebp - 0x4418]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x4420]
mov edx, dword [ecx]
push dword [eax + 0x1dc]
push dword [eax + 0x1d8]
mov eax, 0x3fff
sub eax, edi
push eax
push 1
push esi
call dword [edx]
test eax, eax
js 0x42e9c3
mov edx, dword [ebp - 0x4424]
add edi, eax
mov dword [ebp - 0x441c], edi
jmp 0x42e8a0
test ebx, ebx
lea ecx, [ebp - 0x4411]
push ecx
mov ecx, dword [ebp - 0x4420]
mov eax, str.localhost
cmovne eax, ebx
mov ebx, dword [ebp - 0x4418]
push eax
push esi
push edx
push ebx
call fcn.0042df00
test al, al
je 0x42e699
test edi, edi
js 0x42e977
mov al, byte [esi]
cmp al, 0xa
je 0x42e971
cmp al, 0xd
jne 0x42e977
inc esi
sub edi, 1
jns 0x42e967
cmp dword [ebp - 0x442c], 0
je 0x42ea2c
mov edi, dword [ebp - 0x441c]
lea ecx, [ebp - 0x4410]
mov eax, esi
sub eax, ecx
cmp eax, edi
jge 0x42e9b6
mov eax, ecx
sub eax, esi
add edi, eax
mov eax, ecx
push edi
push esi
push eax
mov dword [ebp - 0x441c], edi
call fcn.004323f0
add esp, 0xc
jmp 0x42e373
xor edi, edi
mov dword [ebp - 0x441c], edi
jmp 0x42e373
mov ebx, dword [ebp - 0x4418]
jmp 0x42ea2c
mov ebx, dword [ebp - 0x4418]
push str.HTTP_1.1_404_File_Not_Found_r_nConnection:_close_r_n_r_n_HTML__HEAD__TITLE_Invalid_request_to_the_database__TITLE__r_n__HEAD__BODY__n_r_H1_404_File_Not_Found__H1__n_r__BODY___HTML__r_n_r_n
jmp 0x42ea0b
mov ebx, dword [ebp - 0x4418]
mov ecx, ebx
call fcn.0042e1c0
push str.HTTP_1.1_500_Internal_server_error_r_nConnection:_close_r_n_r_n_HTML__HEAD__TITLE_Invalid_request_to_the_database__TITLE__r_n__HEAD__BODY__n_r_H1_500_Internal_server_error__H1__n_r__BODY___HTML__r_n_r_n
jmp 0x42ea0b
mov ebx, dword [ebp - 0x4418]
mov ecx, ebx
call fcn.0042e1c0
push str.HTTP_1.1_413_Request_Entity_Too_Large_r_nConnection:_close_r_n_r_n_HTML__HEAD__TITLE_Invalid_request_to_the_database__TITLE__r_n__HEAD__BODY__n_r_H1_413_Request_Entity_Too_Large__H1__n_r__BODY___HTML__r_n_r_n
jmp 0x42ea0b
mov ebx, dword [ebp - 0x4418]
push str.HTTP_1.1_400_Bad_Request_r_nConnection:_close_r_n_r_n_HTML__HEAD__TITLE_Invalid_request_to_the_database__TITLE__r_n__HEAD__BODY__n_r_H1_400_Bad_Request__H1__n_r__BODY___HTML__r_n_r_n
mov ecx, ebx
call fcn.0042d8a0
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x42ea41
push dword [ebx + 0x14]
mov eax, dword [ecx]
push dword [ebx + 0xc]
call dword [eax + 4]
mov ecx, dword [ebx + 8]
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x42ea3a
mov eax, dword [ecx]
push 1
call dword [eax + 0x28]
mov dword [ebx + 8], 0
mov ecx, dword [ebp - 4]
mov al, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0042f865
mov esp, ebp
pop ebp
ret 4
mov ebx, dword [ebp - 0x4418]
push str.HTTP_1.1_413_Request_Entity_Too_Large_r_nConnection:_close_r_n_r_n_HTML__HEAD__TITLE_Invalid_request_to_the_database__TITLE__r_n__HEAD__BODY__n_r_H1_413_Request_Entity_Too_Large__H1__n_r__BODY___HTML__r_n_r_n
jmp 0x42ea0b
mov ebx, dword [ebp - 0x4418]
push str.HTTP_1.1_405_Method_not_allowed_r_nConnection:_close_r_n_r_n_HTML__HEAD__TITLE_Invalid_request_to_the_database__TITLE__r_n__HEAD__BODY__n_r_H1_405_Method_not_allowed__H1__n_r__BODY___HTML__r_n_r_n
jmp 0x42ea0b
call fcn.0043024a
int3