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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x140
mov edi, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
cmp byte [edi + 8], 2
jne 0x10031bff
lea eax, [edx + 0x30]
push esi
push eax
call fcn.10054291
mov edx, dword [ebp + 8]
add esp, 8
test al, al
je 0x10031bff
mov eax, dword [0x1017e714]
mov eax, dword [eax]
test eax, eax
je 0x10031fe5
mov ecx, edi
call fcn.1002c587
jmp 0x10032590
mov eax, dword [0x1017e714]
mov eax, dword [eax]
test eax, eax
je 0x10031edd
movups xmm0, xmmword [edi]
movups xmm1, xmmword [edi + 0xc]
movups xmmword [esp + 0x6c], xmm1
movaps xmmword [esp + 0x60], xmm0
lea eax, [edx + 0x50]
push esi
mov dword [esp + 0xe0], eax
push eax
call fcn.10054af6
add esp, 8
test eax, eax
je 0x100320d2
mov edi, eax
mov eax, dword [edi + 0xc]
test eax, eax
je 0x100320b4
mov ecx, dword [edi + 8]
lea edx, [ecx + 1]
mov ebx, dword [edi]
cmp edx, ebx
mov edx, dword [edi + 4]
mov esi, 0
cmovb ebx, esi
neg ebx
add ebx, ecx
inc ebx
mov dword [edi + 8], ebx
dec eax
mov dword [edi + 0xc], eax
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x5c], eax
mov bl, byte [eax + 0x40]
test bl, bl
jne 0x10031d84
mov al, byte [esp + 0x79]
movzx ecx, word [esp + 0x7a]
mov byte [esp + 0x79], 2
cmp al, 2
je 0x100325e6
movups xmm0, xmmword [esp + 0x69]
movups xmmword [esp + 0xe9], xmm0
movaps xmm0, xmmword [esp + 0x60]
movaps xmmword [esp + 0xe0], xmm0
mov byte [esp + 0xf9], al
mov word [esp + 0xfa], cx
lea eax, [esp + 0xe0]
push eax
lea esi, [esp + 0x24]
push esi
call fcn.10021018
add esp, 8
cmp byte [esp + 0x55], 2
je 0x10031cfe
cmp byte [esp + 0x79], 2
je 0x10031ce6
lea ecx, [esp + 0x60]
call fcn.1002c587
movups xmm0, xmmword [esp + 0x20]
movups xmm1, xmmword [esp + 0x2c]
movups xmmword [esp + 0x6c], xmm1
movaps xmmword [esp + 0x60], xmm0
lea esi, [esp + 0x3c]
movups xmm0, xmmword [esi]
movups xmm1, xmmword [esi + 0xc]
movups xmmword [esp + 0x12c], xmm1
movaps xmmword [esp + 0x120], xmm0
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x20], eax
add eax, 8
lea ecx, [esp + 0x120]
push ecx
push eax
lea eax, [esp + 0x10c]
push eax
call fcn.10028e66
add esp, 0xc
lea ecx, [esp + 0x20]
call fcn.1002b606
cmp byte [esp + 0x11d], 2
mov al, byte [esp + 0x79]
jne 0x10031d5d
cmp al, 2
jne 0x10031c3d
jmp 0x100320ae
cmp al, 2
je 0x10031d6a
lea ecx, [esp + 0x60]
call fcn.1002c587
movups xmm0, xmmword [esp + 0x104]
movups xmm1, xmmword [esp + 0x110]
movups xmmword [esp + 0x6c], xmm1
movaps xmmword [esp + 0x60], xmm0
mov eax, dword [0x1017e714]
mov eax, dword [eax]
test eax, eax
mov esi, dword [0x1017d8cc]
je 0x10031dab
test bl, bl
je 0x10031c3d
lea ecx, [esp + 0x5c]
call fcn.1002b606
jmp 0x10031c3d
mov al, byte [esi + 8]
movzx ecx, al
lea edx, [ecx - 1]
cmp edx, 2
jae 0x10031ebf
movzx eax, al
push eax
push dword [esi]
call fcn.1008c89d
add esp, 8
test al, al
je 0x10031d95
mov eax, dword [esi]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x100325f7
mov edx, dword [eax + 0x1c]
mov esi, dword [eax + 0x24]
mov dword [esp + 4], esi
mov esi, dword [eax + 0x28]
mov dword [esp], esi
mov dword [esp + 0xc0], edx
mov dword [esp + 0xc4], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp]
mov dword [esp + 0xcc], ecx
add eax, 0x1c
xor ecx, ecx
mov dword [esp + 0xd0], ecx
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], fcn.1002d6ad
mov dword [esp + 0x20], 0x10107c18
xor edx, edx
inc edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x88]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
lea ecx, [esp + 0xc0]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 0x10106db0
lea ecx, [esp + 8]
push ecx
push eax
lea eax, [esp + 0x98]
push eax
call fcn.100779c8
add esp, 0xc
mov eax, dword [esp + 0x98]
mov dword [esp + 0xb8], eax
movsd xmm0, qword [esp + 0x90]
movsd qword [esp + 0xb0], xmm0
lea eax, [esp + 0xb0]
push eax
mov eax, dword [0x1017d8cc]
push dword [eax]
call fcn.1008cd25
add esp, 8
jmp 0x10031d95
test ecx, ecx
je 0x10031d95
push esi
call fcn.100ff6f5
add esp, 4
test al, al
jne 0x10031dbd
jmp 0x10031d95
mov ebx, dword [0x1017d8d0]
mov al, byte [ebx + 8]
movzx ecx, al
lea edx, [ecx - 1]
cmp edx, 2
mov edx, dword [ebp + 8]
jae 0x10031fc4
movzx eax, al
push eax
push dword [ebx]
call fcn.1008c89d
mov edx, dword [ebp + 8]
add esp, 8
test al, al
je 0x10031c0e
mov eax, dword [ebx]
mov edx, dword [eax + 0x20]
test edx, edx
je 0x10032608
mov ebx, dword [eax + 0x1c]
mov esi, dword [eax + 0x24]
mov ecx, dword [eax + 0x28]
mov dword [esp], ecx
lea ecx, [esp + 0xc0]
mov dword [ecx], ebx
mov dword [ecx + 4], edx
mov dword [ecx + 8], esi
mov edx, dword [esp]
mov dword [ecx + 0xc], edx
xor edx, edx
mov dword [ecx + 0x10], edx
lea esi, [esp + 0x20]
mov dword [esi], str.put__add_idle_connection_for
xor ebx, ebx
inc ebx
mov dword [esi + 4], ebx
mov dword [esi + 0x10], edx
lea edx, [esp + 0xb0]
mov ebx, dword [ebp + 0xc]
mov dword [edx], ebx
mov dword [edx + 4], fcn.1002d6ad
mov dword [esi + 8], edx
xor edx, edx
inc edx
mov dword [esi + 0xc], edx
lea edx, [esp + 0x60]
mov dword [edx], ecx
mov dword [edx + 4], esi
add eax, 0x1c
mov dword [edx + 8], 0x10106db0
lea esi, [esp + 8]
push edx
push eax
push esi
call fcn.100779c8
add esp, 0xc
mov eax, dword [esi + 8]
lea ecx, [esp + 0x90]
mov dword [ecx + 8], eax
movsd xmm0, qword [esi]
mov esi, ebx
movsd qword [ecx], xmm0
push ecx
mov eax, dword [0x1017d8d0]
push dword [eax]
call fcn.1008cd25
add esp, 8
mov edx, dword [ebp + 8]
jmp 0x10031c0e
test ecx, ecx
je 0x10031c0e
push ebx
call fcn.100ff6f5
mov edx, dword [ebp + 8]
add esp, 4
test al, al
jne 0x10031ef8
jmp 0x10031c0e
mov ebx, dword [0x1017d8d4]
mov al, byte [ebx + 8]
movzx ecx, al
lea edx, [ecx - 1]
cmp edx, 2
jae 0x100324ec
movzx eax, al
push eax
push dword [ebx]
call fcn.1008c89d
add esp, 8
test al, al
je 0x10031bf3
mov eax, dword [ebx]
mov edx, dword [eax + 0x20]
test edx, edx
je 0x10032616
mov ebx, dword [eax + 0x1c]
mov esi, dword [eax + 0x24]
mov ecx, dword [eax + 0x28]
mov dword [esp], ecx
lea ecx, [esp + 0xc0]
mov dword [ecx], ebx
mov dword [ecx + 4], edx
mov dword [ecx + 8], esi
mov edx, dword [esp]
mov dword [ecx + 0xc], edx
xor edx, edx
mov dword [ecx + 0x10], edx
lea esi, [esp + 0x20]
mov dword [esi], str.put__existing_idle_HTTP_2_connection_for
xor ebx, ebx
inc ebx
mov dword [esi + 4], ebx
mov dword [esi + 0x10], edx
lea edx, [esp + 0x90]
mov ebx, dword [ebp + 0xc]
mov dword [edx], ebx
mov dword [edx + 4], fcn.1002d6ad
mov dword [esi + 8], edx
xor edx, edx
inc edx
mov dword [esi + 0xc], edx
lea edx, [esp + 0x60]
mov dword [edx], ecx
mov dword [edx + 4], esi
add eax, 0x1c
mov dword [edx + 8], 0x10106db0
lea esi, [esp + 8]
push edx
push eax
push esi
call fcn.100779c8
add esp, 0xc
push esi
mov esi, ebx
mov eax, dword [0x1017d8d4]
push dword [eax]
call fcn.1008cd25
add esp, 8
jmp 0x10031bf3
cmp dword [edi + 0xc], 0
jne 0x100320d2
lea esi, [esp + 0x20]
push dword [ebp + 0xc]
push dword [esp + 0xe0]
push esi
call fcn.100549cc
add esp, 0xc
mov ecx, esi
call fcn.1002bb8d
cmp byte [esp + 0x79], 2
jne 0x100321b2
mov eax, dword [0x1017e714]
mov eax, dword [eax]
test eax, eax
mov esi, dword [ebp + 0xc]
jne 0x10032590
mov edi, dword [0x1017d8c0]
mov al, byte [edi + 8]
movzx ecx, al
lea edx, [ecx - 1]
cmp edx, 2
jae 0x100324ce
movzx eax, al
push eax
push dword [edi]
call fcn.1008c89d
add esp, 8
test al, al
je 0x10032590
mov eax, dword [edi]
mov edx, dword [eax + 0x20]
test edx, edx
je 0x1003260f
mov edi, dword [eax + 0x1c]
mov ebx, dword [eax + 0x24]
mov esi, dword [eax + 0x28]
lea ecx, [esp + 0xc0]
mov dword [ecx], edi
mov dword [ecx + 4], edx
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], esi
xor edx, edx
mov dword [ecx + 0x10], edx
lea esi, [esp + 0x20]
mov dword [esi], str.put__found_waiter_for
xor edi, edi
inc edi
mov dword [esi + 4], edi
mov dword [esi + 0x10], edx
lea edx, [esp + 0xb0]
mov ebx, dword [ebp + 0xc]
mov dword [edx], ebx
mov dword [edx + 4], fcn.1002d6ad
mov dword [esi + 8], edx
mov dword [esi + 0xc], edi
lea edx, [esp + 8]
mov dword [edx], ecx
mov dword [edx + 4], esi
add eax, 0x1c
mov dword [edx + 8], 0x10106db0
lea esi, [esp + 0x90]
push edx
push eax
push esi
call fcn.100779c8
add esp, 0xc
push esi
mov esi, ebx
mov eax, dword [0x1017d8c0]
push dword [eax]
call fcn.1008cd25
add esp, 8
jmp 0x10032590
movups xmm0, xmmword [esp + 0x6c]
movups xmmword [esp + 0xcc], xmm0
movaps xmm0, xmmword [esp + 0x60]
movaps xmmword [esp + 0xc0], xmm0
mov eax, dword [ebp + 8]
add eax, 0x30
mov dword [esp], eax
mov esi, dword [ebp + 0xc]
movzx edi, byte [esi]
test edi, edi
je 0x100321ed
cmp edi, 1
jne 0x100321f1
movzx eax, byte [esi + 1]
shl eax, 8
jmp 0x1003221d
mov eax, edi
jmp 0x1003221d
call fcn.10067ebe
mov ebx, eax
mov eax, dword [esi + 4]
lea ecx, [eax + 0xc]
mov edx, dword [eax]
push dword [eax + 8]
push dword [eax + 4]
push ecx
lea eax, [esp + 0x2c]
push eax
call dword [edx]
add esp, 0x10
lea eax, [esp + 0x20]
movups xmm0, xmmword [eax]
movups xmmword [ebx], xmm0
xor eax, eax
or eax, edi
lea ecx, [esp + 0x10]
mov dword [ecx - 8], eax
mov dword [ecx - 4], ebx
lea eax, [esi + 0x14]
mov edx, dword [esi + 8]
push dword [esi + 0x10]
push dword [esi + 0xc]
push eax
push ecx
call dword [edx]
add esp, 0x10
lea eax, [esp + 8]
lea edi, [esp + 0x20]
push eax
push dword [esp + 4]
push edi
call fcn.1005412d
add esp, 0xc
mov al, byte [edi]
cmp al, 3
jne 0x10032291
lea ecx, [esp + 0x20]
mov eax, dword [ecx + 0x14]
mov dword [esp + 0xa3], eax
movups xmm0, xmmword [ecx + 4]
movups xmmword [esp + 0x93], xmm0
mov edx, dword [ecx + 0x18]
mov esi, dword [ecx + 0x1c]
mov ebx, dword [ecx + 0x20]
mov dword [ecx + 0x10], eax
movaps xmmword [ecx], xmm0
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], edx
mov dword [ecx + 0x1c], ebx
call fcn.10044a7c
jmp 0x100322f9
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 0x9f], xmm0
movups xmm0, xmmword [esp + 0x21]
movaps xmmword [esp + 0x90], xmm0
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
movsd xmm0, qword [esp + 0x9f]
movsd qword [esp + 0x30], xmm0
movaps xmm0, xmmword [esp + 0x90]
movups xmmword [esp + 0x21], xmm0
mov byte [esp + 0x20], al
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], 8
mov dword [esp + 0x40], eax
push edi
push esi
push ecx
push edx
call fcn.1005575b
add esp, 0x10
mov esi, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x78]
cmp eax, dword [esi - 4]
mov eax, dword [0x1017e714]
mov eax, dword [eax]
jbe 0x100323ef
cmp eax, 1
ja 0x10032512
mov ebx, dword [0x1017d8c4]
mov al, byte [ebx + 8]
movzx ecx, al
lea edx, [ecx - 1]
cmp edx, 2
jae 0x1003250a
movzx eax, al
push eax
push dword [ebx]
call fcn.1008c89d
add esp, 8
test al, al
je 0x10032512
mov eax, dword [ebx]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x1003261d
mov edx, dword [eax + 0x1c]
mov ebx, dword [eax + 0x24]
mov dword [esp + 4], ebx
mov ebx, dword [eax + 0x28]
mov dword [esp], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp]
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], 0x10107c7c
xor edx, edx
inc edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x88]
mov ebx, dword [ebp + 0xc]
mov dword [ecx], ebx
mov dword [ecx + 4], fcn.1002d6ad
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
lea ecx, [esp + 0x90]
lea edx, [esp + 8]
mov dword [ecx], edx
mov dword [ecx + 4], edi
add eax, 0x1c
mov dword [ecx + 8], 0x10106db0
lea edi, [esp + 0xb0]
push ecx
push eax
push edi
call fcn.100779c8
add esp, 0xc
push edi
mov eax, dword [0x1017d8c4]
push dword [eax]
call fcn.1008cd25
add esp, 8
jmp 0x10032512
test eax, eax
je 0x10032404
lea ecx, [esp + 0xc0]
call fcn.1002c587
jmp 0x1003258d
mov esi, dword [0x1017d8c8]
mov al, byte [esi + 8]
movzx ecx, al
lea edx, [ecx - 1]
cmp edx, 2
jae 0x100325b2
movzx eax, al
push eax
push dword [esi]
call fcn.1008c89d
add esp, 8
test al, al
je 0x100323f3
mov eax, dword [esi]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x10032624
mov edx, dword [eax + 0x1c]
mov ebx, dword [eax + 0x24]
mov esi, dword [eax + 0x28]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], esi
xor ecx, ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], 0x10107cc0
mov dword [esp + 0x24], 2
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x88]
mov edx, dword [ebp + 0xc]
mov dword [ecx], edx
mov dword [ecx + 4], fcn.1002d6ad
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x90]
lea edx, [esp + 8]
mov dword [ecx], edx
mov dword [ecx + 4], edi
add eax, 0x1c
mov dword [esp + 0x2c], 1
mov dword [ecx + 8], 0x10106db0
lea esi, [esp + 0xb0]
push ecx
push eax
push esi
call fcn.100779c8
add esp, 0xc
push esi
mov eax, dword [0x1017d8c8]
push dword [eax]
call fcn.1008cd25
add esp, 8
jmp 0x100323f3
test ecx, ecx
je 0x10032590
push edi
call fcn.100ff6f5
add esp, 4
test al, al
jne 0x10032107
jmp 0x10032590
test ecx, ecx
je 0x10031bf3
push ebx
call fcn.100ff6f5
add esp, 4
test al, al
jne 0x10031ffd
jmp 0x10031bf3
test ecx, ecx
jne 0x100325d0
movups xmm0, xmmword [esp + 0xcc]
movups xmmword [esp + 0x30], xmm0
movaps xmm0, xmmword [esp + 0xc0]
movups xmmword [esp + 0x24], xmm0
call fcn.10090d50
mov dword [esp], eax
mov edi, edx
mov ebx, ecx
mov eax, dword [esi - 4]
cmp eax, dword [esi - 0xc]
jne 0x10032550
lea ecx, [esi - 0xc]
push eax
push ecx
call fcn.1001aa4e
add esp, 8
mov eax, dword [esi - 4]
mov edx, dword [ebp + 8]
lea eax, [eax + eax*2]
shl eax, 4
mov ecx, dword [esi - 8]
mov dword [ecx + eax + 4], edi
mov edi, dword [esp]
mov dword [ecx + eax], edi
mov dword [ecx + eax + 8], ebx
movups xmm0, xmmword [esp + 0x20]
movups xmm1, xmmword [esp + 0x30]
movups xmmword [ecx + eax + 0xc], xmm0
movups xmmword [ecx + eax + 0x1c], xmm1
inc dword [esi - 4]
push dword [ebp + 0x14]
push edx
call fcn.10031b34
add esp, 8
mov esi, dword [ebp + 0xc]
mov ecx, esi
call fcn.10017f90
lea eax, [esi + 0x14]
mov ecx, dword [esi + 8]
push dword [esi + 0x10]
push dword [esi + 0xc]
push eax
call dword [ecx + 0xc]
add esp, 0xc
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
test ecx, ecx
je 0x100323f3
push esi
call fcn.100ff6f5
add esp, 4
test al, al
jne 0x1003241c
jmp 0x100323f3
push ebx
call fcn.100ff6f5
add esp, 4
test al, al
jne 0x10032330
jmp 0x10032512
push 0x10107bd4
push 0x12
push str.value_already_sent
call fcn.10101180
push 0x10107be4
push 0x22
push 0x10106d54
call fcn.10101180
push 0x10107b88
jmp 0x100325fc
push 0x10107c20
jmp 0x100325fc
push 0x10107cd0
jmp 0x100325fc
push 0x10107c50
jmp 0x100325fc
push 0x10107c84
jmp 0x100325fc