Function at 0x10040900
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x268
mov eax, dword [0x100ce350]
xor eax, esp
mov dword [esp + 0x264], eax
mov eax, dword [esp + 0x270]
push ebx
movzx ebx, word [esp + 0x284]
push ebp
mov ebp, dword [esp + 0x274]
push esi
mov esi, dword [esp + 0x288]
push edi
mov edi, dword [esp + 0x288]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x284]
push 0x200
mov dword [esp + 0x18], eax
lea eax, [esp + 0x78]
push 0
push eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x4c], edi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x48], ebx
call fcn.1007eb10
movzx eax, bx
xorps xmm0, xmm0
mov dword [esp + 0x44], eax
lea eax, [esp + 0x54]
push 0xa
push eax
lea eax, [esp + 0x28]
movq qword [esp + 0x5c], xmm0
push eax
mov word [esp + 0x68], 0
mov dword [esp + 0x4c], 0
call fcn.10041480
add esp, 0x18
test eax, eax
je 0x100409b6
push str.Excessive_alt_svc_header__ignoring.
push ebp
call fcn.1003e6b0
add esp, 8
jmp 0x10040e4f
lea eax, [esp + 0x48]
push str.clear
push eax
call fcn.100421b0
add esp, 8
test eax, eax
je 0x100409e0
push ebx
push esi
push edi
push dword [esp + 0x38]
call fcn.10041110
add esp, 0x10
jmp 0x10040e4f
mov edi, dword [esp + 0x14]
cmp byte [edi], 0x3d
jne 0x10040e4f
nop dword [eax]
lea eax, [esp + 0x48]
push 0x100ae194
push eax
call fcn.100421b0
add esp, 8
test eax, eax
je 0x10040a10
mov dword [esp + 0x20], 8
jmp 0x10040a53
lea eax, [esp + 0x48]
push 0x100ae198
push eax
call fcn.100421b0
add esp, 8
test eax, eax
je 0x10040a30
mov dword [esp + 0x20], 0x10
jmp 0x10040a53
lea eax, [esp + 0x48]
push 0x100ae19c
push eax
call fcn.100421b0
add esp, 8
mov ebp, eax
neg ebp
sbb ebp, ebp
and ebp, 0x20
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x1c]
cmp byte [edi + 1], 0x22
jne 0x10040e4f
lea edx, [edi + 2]
mov dword [esp + 0x24], 0x100c5878
xor al, al
mov byte [esp + 0x13], 1
mov edi, edx
mov dword [esp + 0x28], eax
xor bl, bl
mov ecx, 0x15180
mov byte [esp + 0x12], bl
mov dword [esp + 0x44], ecx
mov al, byte [edi]
cmp al, 0x3a
je 0x10040b15
mov esi, edx
test al, al
je 0x10040ac6
mov ecx, edx
cmp al, 0x30
jl 0x10040a9e
cmp al, 0x39
jle 0x10040ab8
cmp al, 0x61
jl 0x10040aa6
cmp al, 0x7a
jle 0x10040ab8
cmp al, 0x41
jl 0x10040aae
cmp al, 0x5a
jle 0x10040ab8
cmp al, 0x2e
je 0x10040ab8
mov esi, ecx
cmp al, 0x2d
jne 0x10040ac6
mov al, byte [ecx + 1]
lea edi, [ecx + 1]
mov ecx, edi
mov esi, edi
test al, al
jne 0x10040a96
mov ebx, edi
sub ebx, edx
je 0x10040afc
cmp ebx, 0x200
jae 0x10040afc
push ebx
push edx
lea eax, [esp + 0x7c]
push eax
call fcn.1007e3f0
lea eax, [esp + 0x80]
mov byte [esp + ebx + 0x80], 0
mov bl, byte [esp + 0x1e]
add esp, 0xc
mov dword [esp + 0x24], eax
jmp 0x10040b1b
push str.Excessive_alt_svc_host_name__ignoring.
push ebp
call fcn.1003e6b0
mov bl, byte [esp + 0x1a]
add esp, 8
mov byte [esp + 0x13], 0
jmp 0x10040b1b
mov dword [esp + 0x24], esi
mov esi, edx
cmp byte [edi], 0x3a
jne 0x10040b83
mov al, byte [esi + 1]
lea edi, [esi + 1]
cmp al, 0x30
jl 0x10040b6c
cmp al, 0x39
jg 0x10040b6c
push 0xa
lea eax, [esp + 0x1c]
push eax
push edi
call fcn.10086048
add esp, 0xc
test eax, eax
je 0x10040b70
cmp eax, 0xffff
ja 0x10040b70
mov ecx, dword [esp + 0x18]
cmp ecx, edi
je 0x10040b70
cmp byte [ecx], 0x22
jne 0x10040b70
push eax
call fcn.10040110
mov edi, dword [esp + 0x1c]
add esp, 4
movzx ebp, ax
mov dword [esp + 0x38], ebp
jmp 0x10040b83
mov dword [esp + 0x18], edi
push str.Unknown_alt_svc_port_number__ignoring.
push ebp
call fcn.1003e6b0
add esp, 8
mov byte [esp + 0x13], 0
mov al, byte [edi]
inc edi
cmp al, 0x22
jne 0x10040e4f
mov esi, edi
mov al, byte [edi]
cmp al, 0x20
je 0x10040b9a
cmp al, 9
jne 0x10040b9f
lea edi, [esi + 1]
jmp 0x10040b8e
cmp al, 0x3b
jne 0x10040d25
mov al, byte [esi + 1]
lea edi, [esi + 1]
mov dword [esp + 0x14], edi
mov esi, edi
test al, al
je 0x10040d25
cmp al, 0xa
je 0x10040d25
cmp al, 0xd
je 0x10040d25
push 0x20
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.10041480
movzx ecx, byte [esp + 0x60]
xor edx, edx
mov edi, dword [esp + 0x20]
add esp, 0xc
test eax, eax
cmovne ecx, edx
mov byte [esp + 0x54], cl
mov al, byte [edi]
test al, al
je 0x10040c10
nop dword [eax]
cmp al, 0x20
je 0x10040c08
cmp al, 9
jne 0x10040c10
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x10040c00
cmp byte [edi], 0x3d
jne 0x10040e4f
mov al, byte [edi + 1]
inc edi
test al, al
je 0x10040e4f
mov ebp, edi
cmp al, 0x20
je 0x10040c2f
cmp al, 9
jne 0x10040c40
mov al, byte [ebp + 1]
lea edi, [ebp + 1]
mov ebp, edi
test al, al
jne 0x10040c27
jmp 0x10040e4f
mov al, byte [edi]
test al, al
je 0x10040e4f
cmp al, 0x22
jne 0x10040c5a
lea edi, [ebp + 1]
mov byte [esp + 0x12], 1
mov ebp, edi
jmp 0x10040c5e
test bl, bl
je 0x10040c8d
mov al, byte [edi]
mov ecx, ebp
test al, al
je 0x10040c7c
mov edx, ebp
mov ecx, edx
cmp al, 0x22
je 0x10040c7c
mov al, byte [edx + 1]
lea edi, [edx + 1]
mov edx, edi
mov ecx, edi
test al, al
jne 0x10040c68
mov al, byte [edi]
lea edi, [ecx + 1]
test al, al
je 0x10040e4f
mov esi, edi
jmp 0x10040cb0
mov ecx, ebp
nop
mov esi, ecx
cmp al, 0x20
je 0x10040cb0
cmp al, 9
je 0x10040cb0
cmp al, 0x3b
je 0x10040cb0
cmp al, 0x2c
je 0x10040cb0
mov al, byte [ecx + 1]
lea edi, [ecx + 1]
mov ecx, edi
mov esi, edi
test al, al
jne 0x10040c90
push 0xa
lea eax, [esp + 0x1c]
push eax
push ebp
call fcn.10086048
add esp, 0xc
mov ebx, eax
cmp dword [esp + 0x18], ebp
je 0x10040d1c
cmp ebx, 0xffffffff
jae 0x10040d1c
lea eax, [esp + 0x54]
push eax
push 0x100ae2fc
call fcn.100421b0
add esp, 8
test eax, eax
je 0x10040cf0
mov dword [esp + 0x44], ebx
mov bl, byte [esp + 0x12]
jmp 0x10040b90
lea eax, [esp + 0x54]
push eax
push str.persist
call fcn.100421b0
add esp, 8
test eax, eax
je 0x10040d1c
mov eax, dword [esp + 0x28]
cmp ebx, 1
movzx eax, al
mov ecx, 1
cmove eax, ecx
mov dword [esp + 0x28], eax
mov bl, byte [esp + 0x12]
jmp 0x10040b90
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x10040e07
cmp byte [esp + 0x13], 0
je 0x10040e07
mov ecx, dword [esp + 0x34]
mov eax, ecx
inc ecx
mov dword [esp + 0x34], ecx
test eax, eax
jne 0x10040d63
push dword [esp + 0x3c]
push dword [esp + 0x34]
push dword [esp + 0x48]
push dword [esp + 0x38]
call fcn.10041110
add esp, 0x10
mov eax, dword [esp + 0x38]
movzx ebp, ax
mov eax, dword [esp + 0x3c]
push ebp
movzx eax, ax
push eax
push ebx
push dword [esp + 0x4c]
push dword [esp + 0x34]
push dword [esp + 0x44]
call fcn.10041060
mov ebx, eax
add esp, 0x18
test ebx, ebx
je 0x10040e07
push 0
call fcn.100894bd
add eax, dword [esp + 0x48]
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0x2c]
adc edx, 0
mov byte [ebx + 0x20], al
lea eax, [ebx + 0x28]
push eax
mov eax, dword [esp + 0x34]
push ebx
mov dword [ebx + 0x1c], edx
push dword [eax + 8]
add eax, 4
push eax
call fcn.100451f0
mov ecx, dword [esp + 0x34]
add esp, 0x14
cmp ecx, 8
je 0x10040de8
cmp ecx, 0x10
je 0x10040de1
cmp ecx, 0x20
mov eax, 0x100c5878
mov ecx, 0x100ae19c
cmove eax, ecx
jmp 0x10040ded
mov eax, 0x100ae198
jmp 0x10040ded
mov eax, 0x100ae194
push eax
push ebp
push dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
push str.Added_alt_svc:__s:_d_over__s
push ebp
call fcn.1003e6b0
add esp, 0x14
jmp 0x10040e0b
mov ebp, dword [esp + 0x1c]
cmp byte [edi], 0x2c
jne 0x10040e31
push 0xa
lea eax, [esp + 0x4c]
inc esi
push eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], esi
push eax
call fcn.10041480
add esp, 0xc
test eax, eax
jne 0x10040e4f
mov edi, dword [esp + 0x14]
mov al, byte [edi]
test al, al
je 0x10040e4f
cmp al, 0x3b
je 0x10040e4f
cmp al, 0xa
je 0x10040e4f
cmp al, 0xd
je 0x10040e4f
mov esi, dword [esp + 0x30]
cmp al, 0x3d
je 0x100409f0
mov ecx, dword [esp + 0x274]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1007c2ab
add esp, 0x268
ret