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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x148
call 0x10087a64
pop eax
mov edi, edx
mov ebx, ecx
mov dword [esp + 0x2c], eax
mov eax, dword [0x104debf8]
cmp eax, 5
jb 0x10087a7c
mov eax, dword [0x104debfc]
mov eax, dword [0x104d53e8]
mov dword [esp + 4], edi
dec eax
cmp eax, 5
jb 0x10087b8a
mov ecx, dword [0x104d4630]
test ecx, ecx
je 0x10087b8a
mov al, 1
cmp ecx, 1
je 0x10087aaf
cmp ecx, 2
jne 0x100880ba
mov al, 2
movzx edx, al
mov ecx, 0x104d4630
call fcn.10109d10
test al, al
je 0x10087b8a
mov ecx, dword [0x104d4634]
mov eax, dword [ecx + 0x30]
test eax, eax
je 0x10088263
mov edx, dword [ecx + 0x2c]
mov esi, dword [ecx + 0x34]
mov edi, dword [ecx + 0x38]
mov dword [esp + 8], 0
mov dword [esp + 0x98], 0x1041ccc0
mov dword [esp + 0x9c], 2
mov dword [esp + 0xa0], 0
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edi
mov edi, dword [esp + 4]
lea edx, [esp + 0x48]
lea esi, [esp + 8]
lea eax, [ebx + 0xc]
mov dword [esp + 0xa8], edx
lea edx, [esp + 0x98]
mov dword [esp + 0x78], esi
lea esi, [esp + 0x78]
mov dword [esp + 0xac], 2
mov dword [esp + 0x7c], edx
lea edx, [ecx + 0x2c]
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], 1
mov dword [esp + 0x80], 0x10419960
mov dword [esp + 0x68], edx
lea edx, [esp + 0x60]
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], fcn.1002c1c0
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 0x10010ea0
call fcn.1010a570
mov eax, dword [0x1041baa0]
movsd xmm0, qword [0x1041ba98]
movsd xmm1, qword [0x1041ba90]
lea edx, [esp + 0x60]
mov ecx, edi
mov dword [esp + 0x70], eax
movsd qword [esp + 0x68], xmm0
movsd qword [esp + 0x60], xmm1
call fcn.100230c0
test al, al
mov dword [esp + 0x28], ebx
jne 0x10087c62
mov eax, dword [0x10407ccc]
movsd xmm0, qword [0x10407cc4]
movsd xmm1, qword [0x10407cbc]
lea edx, [esp + 0x78]
mov ecx, edi
mov dword [esp + 0x88], eax
movsd qword [esp + 0x80], xmm0
movsd qword [esp + 0x78], xmm1
call fcn.100230c0
test al, al
jne 0x10087c62
mov eax, dword [0x10408eb8]
movsd xmm0, qword [0x10408eb0]
movsd xmm1, qword [0x10408ea8]
lea edx, [esp + 0x48]
mov ecx, edi
mov dword [esp + 0x58], eax
movsd qword [esp + 0x50], xmm0
movsd qword [esp + 0x48], xmm1
call fcn.100230c0
test al, al
jne 0x10087c62
mov ecx, edi
mov edx, str.keep_aliveclient_tx_closedrequest_canceled
push 0xa
call fcn.10023210
add esp, 4
test al, al
jne 0x10087c62
mov ecx, edi
mov edx, 0x10408e60
push 0x10
call fcn.10023210
add esp, 4
test al, al
je 0x10087f4d
mov eax, dword [0x104debf8]
cmp eax, 4
jb 0x10087c71
mov eax, dword [0x104debfc]
mov eax, dword [0x104d53e8]
mov bl, 7
add eax, 0xfffffffe
cmp eax, 4
jb 0x10087d61
mov ecx, dword [0x104d4c0c]
test ecx, ecx
je 0x10087d61
mov al, 1
cmp ecx, 1
je 0x10087ca4
cmp ecx, 2
jne 0x100880d1
mov al, 2
movzx edx, al
mov ecx, 0x104d4c0c
call fcn.10109d10
test al, al
je 0x10087d61
mov ecx, dword [0x104d4c10]
mov eax, dword [ecx + 0x30]
test eax, eax
je 0x10088274
mov edx, dword [ecx + 0x2c]
mov esi, dword [ecx + 0x34]
mov edi, dword [ecx + 0x38]
mov dword [esp + 8], 0
mov dword [esp + 0x98], 0x103fd494
mov dword [esp + 0x9c], 1
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa8], str.formatter_errorfailed_to_write_whole_buffer
mov dword [esp + 0xac], 0
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], esi
lea esi, [esp + 8]
lea edx, [esp + 0x98]
mov dword [esp + 0x18], edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], edx
lea esi, [esp + 0x34]
lea edx, [ecx + 0x2c]
mov dword [esp + 0x3c], 0x103eee6c
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], edx
lea edx, [esp + 0x1c]
call fcn.1010a570
mov edi, dword [esp + 4]
xor ecx, ecx
test cl, cl
je 0x1008812b
xor eax, eax
cmp byte [edi + 0x40], 0xb
lea ecx, [edi + 0x40]
cmovne eax, ecx
je 0x10087d85
movzx ecx, byte [eax]
cmp ecx, 9
jae 0x10087f3f
cmp dword [edi + 0x60], 0
je 0x10087d9e
mov eax, dword [edi + 0x58]
mov bl, 3
add eax, 0x27
cmp eax, 0x3f9c
ja 0x1008812b
cmp dword [edi + 0x70], 0
je 0x10087db7
mov eax, dword [edi + 0x68]
mov bl, 3
add eax, 0x2a
cmp eax, 0x3f9c
ja 0x1008812b
cmp dword [edi + 0x80], 0
je 0x10087dd3
mov eax, dword [edi + 0x78]
mov bl, 3
add eax, 0x25
cmp eax, 0x3f9c
ja 0x1008812b
xor ebx, ebx
cmp dword [edi + 0x28], 0
mov dword [esp], 0
sete bl
add ebx, ebx
nop word cs:[eax + eax]
nop
cmp ebx, 2
jne 0x10087e10
mov eax, dword [esp]
lea ecx, [eax + 1]
cmp ecx, dword [edi + 0x28]
jae 0x10087e60
mov esi, dword [edi + 0x20]
mov eax, ecx
mov dword [esp], ecx
jmp 0x10087e6c
mov edx, dword [edi + 0x28]
cmp edx, dword [esp]
jbe 0x1008823c
mov esi, dword [edi + 0x20]
test ebx, ebx
je 0x10087e69
mov edx, dword [edi + 0x34]
mov ecx, dword [esp + 0x30]
cmp edx, ecx
jbe 0x10088246
mov ebx, dword [edi + 0x2c]
lea edx, [ecx + ecx*8]
xor eax, eax
cmp dword [ebx + edx*4 + 0x1c], 1
lea edi, [ebx + edx*4]
lea ecx, [ebx + edx*4 + 0x20]
mov ebx, 2
sete al
sub ebx, eax
jmp 0x10087e88
xor ecx, ecx
mov ebx, 2
jmp 0x10087e94
mov ecx, dword [esp]
imul eax, ecx, 0x38
xor edx, edx
mov ebx, 2
cmp dword [esi + eax + 0x28], 1
lea ecx, [esi + eax + 0x2c]
lea edi, [esi + eax + 0x14]
sete dl
sub ebx, edx
mov eax, dword [ecx]
imul ecx, dword [esp], 0x38
add ecx, esi
mov dword [esp + 0x30], eax
test ecx, ecx
je 0x10087eba
call fcn.10012d40
mov ecx, dword [edi + 4]
mov edi, dword [esp + 4]
lea eax, [eax + ecx + 0x20]
cmp eax, 0x3f9c
jbe 0x10087df0
mov bl, 3
jmp 0x1008812b
mov edx, dword [ebp + 0xc]
mov edi, dword [esp + 4]
mov eax, dword [edx + 8]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov bh, byte [edi + 0x9c]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], edx
cmp dword [eax + 0x38], ecx
jbe 0x10088255
mov eax, dword [eax + 0x30]
imul ecx, ecx, 0xf0
cmp dword [eax + ecx], 1
jne 0x10088255
cmp dword [eax + ecx + 0x30], edx
jne 0x10088255
movzx esi, byte [eax + ecx + 0x34]
mov bl, 1
cmp esi, 5
ja 0x1008812b
mov edx, dword [esp + 0x2c]
mov dword [esp], eax
lea eax, [eax + ecx + 0x34]
and bh, 1
add edx, dword [esi*4 + 0x100882dc]
mov esi, eax
jmp edx
je 0x100880e8
mov ecx, dword [eax + 8]
jmp 0x100880f5
mov eax, dword [0x10408ee4]
movsd xmm0, qword [0x10408edc]
movsd xmm1, qword [0x10408ed4]
lea edx, [esp + 8]
mov ecx, edi
mov dword [esp + 0x18], eax
movsd qword [esp + 0x10], xmm0
movsd qword [esp + 8], xmm1
call fcn.1001e7c0
mov bl, 0xd
mov cl, 1
test eax, eax
je 0x10087d63
cmp dword [eax + 4], 8
jne 0x10087fb3
mov eax, dword [eax]
cmp eax, str.trailers
je 0x10087d63
mov edx, 0x69617274
mov esi, 0x7372656c
xor edx, dword [eax]
xor esi, dword [eax + 4]
or esi, edx
je 0x10087d63
mov eax, dword [0x104debf8]
cmp eax, 4
jb 0x10087fc2
mov eax, dword [0x104debfc]
mov eax, dword [0x104d53e8]
mov bl, 7
add eax, 0xfffffffe
cmp eax, 4
jb 0x10087d61
mov ecx, dword [0x104d4c18]
test ecx, ecx
je 0x10087d61
mov al, 1
cmp ecx, 1
je 0x10087ff5
cmp ecx, 2
jne 0x10088225
mov al, 2
movzx edx, al
mov ecx, 0x104d4c18
call fcn.10109d10
test al, al
je 0x10087d61
mov ecx, dword [0x104d4c1c]
mov eax, dword [ecx + 0x30]
test eax, eax
je 0x100882c8
mov edx, dword [ecx + 0x2c]
mov esi, dword [ecx + 0x34]
mov edi, dword [ecx + 0x38]
mov dword [esp + 0x34], 0
mov dword [esp + 0x98], 0x103fd494
mov dword [esp + 0x9c], 1
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa8], str.formatter_errorfailed_to_write_whole_buffer
mov dword [esp + 0xac], 0
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], esi
lea esi, [esp + 0x34]
lea edx, [esp + 0x98]
mov dword [esp + 0x44], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], edx
lea esi, [esp + 0x1c]
lea edx, [ecx + 0x2c]
mov dword [esp + 0x24], 0x103eee6c
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], 1
mov dword [esp + 0x94], edx
lea edx, [esp + 0x8c]
jmp 0x10087d58
mov ecx, 0x104d4630
call fcn.10109c60
test al, al
jne 0x10087aaf
jmp 0x10087b8a
mov ecx, 0x104d4c0c
call fcn.10109c60
test al, al
jne 0x10087ca4
jmp 0x10087d61
movzx ecx, byte [eax + 0x10]
cmp ecx, 0x10
jae 0x100882b4
add ecx, 0x27
mov bl, 3
cmp ecx, 0x3f9c
jbe 0x10087d85
jmp 0x1008812b
mov ecx, edi
call fcn.10081360
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, 0x104d4c18
call fcn.10109c60
test al, al
jne 0x10087ff5
jmp 0x10087d61
mov ecx, dword [esp]
push 0x1041979c
jmp 0x1008824b
push 0x104197ac
call fcn.10008300
add esp, 4
ud2
lea ecx, [esp + 0x98]
call fcn.10018f40
ud2
mov ecx, 0x1041992d
mov edx, 0x22
push 0x1041ccd0
jmp 0x10088283
mov ecx, 0x1041992d
mov edx, 0x22
push 0x103fd49c
call fcn.1000a730
add esp, 4
ud2
mov edx, 0xf
push 0x104084b4
call fcn.100088f0
add esp, 4
ud2
mov ecx, 0x1041992d
mov edx, 0x22
push 0x103fd4ac
jmp 0x10088283